【问题标题】:Brutis and memcached FailOverBrutus 和 memcached 故障转移
【发布时间】:2013-12-14 22:23:08
【问题描述】:

我正在做一些实验来确定 Memcached 在出现不同类型的错误(Memcached 节点崩溃、高延迟......)时的态度。在崩溃的情况下,failOver 不是我所期望的。

对我来说,当 memcached 客户端崩溃并激活某些选项时,memcached 服务器应该在一段时间后停止使用失效节点并仅使用剩余节点。

在实验开始时,我使用了两个 memcached 客户端和一个带有请求生成器的服务器,我在其中存储了 10000 个请求,并且请求在客户端节点之间平均分配。

然后我在一个节点上注入崩溃,其余节点将不会从死节点获得请求。我想要新的集合并在剩余的节点中完成。

请求生成器是brutis,它每次进行一次set和9次get:set从1到10000和get相同,但是set因为之前的重新分区而变慢。

使用的选项是 (OPT_REMOVE_FAILED_SERVERS, true)。

我用的是libmemcached-1.0.16,memcached-1.4.15,memcached的php版本是2.1.0。

我怎样才能获得一旦被驱逐,散列函数只发送到活节点?

谢谢

【问题讨论】:

    标签: php memcached


    【解决方案1】:

    您必须使用一致的散列: $memcache->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);

    我目前正在测试这个,针对 php5-memcached:2.0.1 和 libmemcached:1.0.8,但我在测试故障转移选项时遇到了很多问题。

    但是,作为开始,在设置一致性哈希时,在死服务器上两次命中后,死服务器的所有密钥都分布在其他服务器上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多