我正在做一些实验来确定Memcached在不同类型错误( Memcached节点崩溃,高延迟...)的情况下的态度。在崩溃的情况下,failOver不是我所期望的。
对我来说,当memcached客户端崩溃并激活了一些选项时,memcached服务器应该在一段时间后停止使用失效的节点,而只使用剩余的节点。
在实验开始时,我使用了两个memcached客户端和一个带有请求生成器的服务器,我在其中存储了10000个请求,并且请求在客户端节点之间平均分配。
然后,我将崩溃注入到一个节点上,剩余的节点将不会从失效的节点获得请求。我希望在剩余的节点中完成新的set和get。
请求生成器是brutis,它每次执行一个set和九个get : set从1到10000,get也是如此,但是由于之前的重新划分,set会变慢。
使用的选项是(OPT_REMOVE_FAILED_SERVERS,true)。
我使用的是libmemcached-1.0.16,memcached-1.4.15,而memcached的php版本是2.1.0。
如何才能获得被逐出后仅发送给活动节点的散列函数?
谢谢
发布于 2013-12-14 22:23:08
你必须使用一致的散列:$memcache->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
我目前正在对php5-memcached:2.0.1和libmemcached:1.0.8进行测试,但我在测试故障转移选项时遇到了很多问题。
但是,作为开始,当设置一致的散列时,在故障服务器上两次命中之后,故障服务器的所有密钥都分布在其他服务器上。
https://stackoverflow.com/questions/17783257
复制相似问题