0

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

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

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

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

请求生成器是brutis,它每次执行一组和九次获取:设置从 1 到 10000 和获取相同,但是由于之前的重新分区,设置速度较慢。

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

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

一旦被驱逐,我怎么能得到这个哈希函数只发送到活节点?

谢谢

4

1 回答 1

0

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

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

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

于 2013-12-14T14:23:08.007 回答