标签: reliability

强制memcached写入池中的所有服务器

我已经考虑过如何确保将特定密钥分发给池中的所有memcached服务器.

我当前未经测试的解决方案是创建另一个memcached实例,如下所示:

$cluster[] = array('host' => '192.168.1.1', 'port' => '11211', 'weight' => 50);

$this->tempMemcached = new Memcached;
$this->tempMemcached->addServers($cluster);

foreach ($this->cluster() as $cluster) {    

    $this->tempMemcached->setByKey($cluster, $key, $value, $this->compress, $expireTime);

}

$this->tempMemcache->close();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,当某些密钥需要存储在所有服务器上以确保可靠性时,常识是什么?

php memcached reliability

4
推荐指数
1
解决办法
2735
查看次数

以编程方式将自定义 WCF 标头添加到端点以获得可靠的会话

我正在构建 WCF 路由器,而我的客户端使用可靠会话。在这种情况下,当客户端打开一个通道时,会发送一条消息(建立可靠会话?)。其内容如下:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
  <s:Header>
    <a:Action s:mustUnderstand="1">http://docs.oasis-open.org/ws-rx/wsrm/200702/CreateSequence</a:Action>
    <a:MessageID>urn:uuid:1758f794-c5d3-4573-b252-7a07344cc257</a:MessageID>
    <a:To s:mustUnderstand="1">http://localhost:8010/RouterService</a:To>
  </s:Header>
  <s:Body>
    <CreateSequence xmlns="http://docs.oasis-open.org/ws-rx/wsrm/200702">
      <AcksTo>
        <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
      </AcksTo>
      <Offer>
        <Identifier>urn:uuid:64a12658-71d9-4967-88ec-9bb0610f7ecb</Identifier>
        <Endpoint>
          <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
        </Endpoint>
        <IncompleteSequenceBehavior>DiscardFollowingFirstGap</IncompleteSequenceBehavior>
      </Offer>
    </CreateSequence>
  </s:Body>
</s:Envelope>
Run Code Online (Sandbox Code Playgroud)

这里的问题是标头不包含我可以用来查找将消息路由到哪个服务的任何信息。在 Busatmante 的路由器示例代码中,她通过向端点添加标头来解决这个问题:

  <client>
    <endpoint address="http://localhost:8010/RouterService" binding="ws2007HttpBinding"
      bindingConfiguration="wsHttp"
      contract="localhost.IMessageManagerService" >
      <headers>
        <Route xmlns="http://www.thatindigogirl.com/samples/2008/01" >http://www.thatindigogirl.com/samples/2008/01/IMessageManagerService</Route>
      </headers>
    </endpoint>
  </client>
Run Code Online (Sandbox Code Playgroud)

打开可靠会话时,消息包含此自定义标头。

<Route a:IsReferenceParameter="true" xmlns="http://www.thatindigogirl.com/samples/2008/01">http://www.thatindigogirl.com/samples/2008/01/IMessageManagerService</Route>
Run Code Online (Sandbox Code Playgroud)

这很棒; 但是,我需要以编程方式配置客户端。我认为 ChannelFactory 端点会有一个 Header 对象,我可以手动向其中添加自定义标头。不幸的是它没有。因此,我进行了一些搜索,并找到了一些通过实现 IClientMessageInspector 添加我的标头并将其作为行为添加到我的端点来扩展 WCF 的建议。

public class ContractNameMessageInspector : IClientMessageInspector {

    private const string HEADER_NAME = "ContractName";
    private readonly string _ContractName;

    public ContractNameMessageInspector(string contractName) { …
Run Code Online (Sandbox Code Playgroud)

session wcf header reliability

3
推荐指数
1
解决办法
1万
查看次数

如何在不运行PostgreSQL服务器的情况下初始化PostgreSQL数据库

在初始化脚本中,我想初始化PostgreSQL目录,但在此阶段不需要(也不想要)正在运行的PostgreSQL服务器.

如果我只是创建集群(作为用户postgres),这将是一个明智的做法:

initdb -D ...
Run Code Online (Sandbox Code Playgroud)

但是,我还需要创建PostgreSQL角色,创建数据库并添加一些扩展(也作为用户postgres):

createuser someuser
createdb -O someuser somedb
echo 'CREATE EXTENSION xyz;' | psql somedb
Run Code Online (Sandbox Code Playgroud)

后面的命令需要运行PostgreSQL服务器.所以整件事情变得非常混乱:

initdb -D ...

# Start PostgreSQL server in background
... &

# Wait in a loop until PostgreSQL server is up and running
while ! psql -f /dev/null template1; do
    sleep 0.5
done

createuser someuser
createdb -O someuser somedb
echo 'CREATE EXTENSION xyz;' | psql somedb

# Kill PostgreSQL server
kill ...

# Wait until the …
Run Code Online (Sandbox Code Playgroud)

database postgresql initialization reliability

3
推荐指数
1
解决办法
4419
查看次数

迭代相同的 freezeset 是否保证始终以相同的顺序生成项目?(Python 3)

例如,当我执行frozen = frozenset(('kay', 'snow queen')),然后tuple(frozen),我得到('kay', 'snow queen')。(何时/如何)是否有可能(如果有的话)以iter(frozen)不同的顺序生产物品?(何时/如何)将tuple(frozen)返回('snow queen', 'kay')

我几乎一直在使用 Python 3,但我也对 Python 2 感到好奇。

python iterator set reliability persistent-storage

3
推荐指数
1
解决办法
1201
查看次数

为什么 PodDisruptionBudget 有 minAvailable 和 maxUnavailable 选项?

虽然我在一定程度上理解 minAvailable 和 maxUnavailable 的使用,但我想知道为什么这两个选项似乎是另一个选项的补充时公开。

鉴于 PDB 是不可变的,很少对这些参数进行更改(通过重新部署 PDB)。

有什么我想在这里意识到的吗?

reliability kubernetes kubernetes-pod

3
推荐指数
1
解决办法
605
查看次数

使用敏捷构建生命关键系统

看看我在使用敏捷建造飞机的问题中的评论总趋势,除成本之外的最大问题似乎是安全性.

人们是否觉得使用敏捷建立一个安全系统(或证明它是安全的)是不可能的?并非所有的迭代测试都能缓解这个问题吗?使用敏捷开发的软件是否可能永远不会像瀑布那样可靠?

agile unit-testing reliability

2
推荐指数
1
解决办法
1118
查看次数

最好在依赖网络的代码中使用IP地址或主机名?

如果您正在编写一个大量使用网络的应用程序(例如ping,dns解析等),那么在代码中使用IP地址是否更好(例如,如果在服务器上创建文件夹路径 - //192.183.181.182/test/test1例如)或主机名?

我假设IP地址,因为它们在企业中往往是静态的,并且主机名可以在单个IP地址上具有别名等.这是偏好IP地址的正当理由吗?

谢谢

c# ip dns networking reliability

2
推荐指数
1
解决办法
2209
查看次数

MySQL主从复制的可靠性

我有一个应用程序需要一个大约30个表的主目录,需要将其复制到应用程序的许多(100+)个从属副本.从站可能位于其自己的数据库实例中,或者在单个数据库实例中可能有多个从站.对主目录的任何更改都需要在合理的时间内(大约5分钟)复制到从属目录.我们的基础架构都是AWS EC2,我们使用MySQL.主服务器和从服务器都将驻留在单个AWS区域内.

我曾计划使用Master-Slave复制,但我看到有关MySQL复制的报告有时不可靠,我不确定这是由于特定实现中固有的失败还是MySQL本身的失败.我们需要一个高度自动化和可靠的系统,可能我们必须开发监控脚本,允许从站连续监控其相对于主站的目录.

任何观察?

mysql replication monitoring reliability master-slave

2
推荐指数
1
解决办法
1655
查看次数

如何使我的Windows Azure应用程序能够抵御Azure数据中心的灾难性事件?

AFAIK亚马逊AWS提供所谓的"区域"和"可用区域",以降低部分或完全数据中心中断的风险.看起来如果我在两个"区域"中有我的应用程序的副本,并且一个"区域"关闭,我的应用程序仍然可以继续工作,好像什么也没发生.

Windows Azure有类似的东西吗?如何使用Windows Azure解决数据中心灾难性中断的风险?

cloud reliability azure

1
推荐指数
1
解决办法
954
查看次数