Spymemcached,配置故障转移

4
我有一组Membase主机,还有一组在不同盒子上运行的moxi进程,都配置为与该集群通信。
我的客户端正在使用spymemcached,我正在尝试配置一个MemcachedClient,使其知道所有可用的moxi进程。这样,如果其中一个进程死亡,我希望spymemcached使用另一个moxi并继续向集群发送数据。
理想情况下,所有这些都应该在不丢失队列信息的情况下完成。
我正在尝试使用两个moxi进程进行操作,但无法实现所需功能。
我已经查看了http://groups.google.com/group/spymemcached/browse_thread/thread/d33ca15c0a928d37#http://groups.google.com/group/spymemcached/browse_thread/thread/f7cc37fc509b70a6/cbb967e824a0ab04?hl=en&lnk=gst&q=redistribute#cbb967e824a0ab04,但没有找到答案。
请问在spymemcached中是否可以实现?如果可以,应该如何配置?
我正在尝试不同的ConnectionFactoryBuilder配置。
ConnectionFactoryBuilder builder = new ConnectionFactoryBuilder();
builder.setFailureMode(FailureMode.Redistribute);
builder.setProtocol(Protocol.BINARY);
builder.setLocatorType(Locator.CONSISTENT);

builder.setMaxReconnectDelay(1);
builder.setTimeoutExceptionThreshold(2);

ConnectionFactory cf = builder.build();

1
你不喜欢它做了什么?为什么你觉得需要同时使用spymemcached和moxi(后者是一个工具,旨在像前者一样工作,但你没有长期运行的进程)? - Dustin
我需要使用一个moxi来在membase集群中分布键。据我所知,有一个正在添加对此功能和其他membase功能支持的spymemcached beta版本发布,但我们不想使用beta版本。我们在membase中只有一个vbucket,并希望让moxi进程来完成分片工作。但我们也希望在客户端有一个故障转移机制,这样如果正在使用的moxi死掉,就可以跳到另一个moxi上而不会丢失队列中的数据。 - Iker Jimenez
1个回答

0

我不确定,但是在spymemcached配置中不能指定多个moxi服务器吗?据我所知,moxi支持memcached协议,而spymemcached允许与多个memcached服务器通信。这意味着spymemcached将根据一致性哈希算法选择一个moxi服务器,这并不重要,因为最终memcached服务器将由moxi进程选择。如果其中一个moxi进程停止运行,spymemcached将自动切换到另一个moxi进程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接