2011-02-10 158 views
4

我有一个membase主机集群,我也有一套moxi进程,运行在不同的盒子上,全部配置为与这个集群交谈。Spymemcached,配置为故障转移

我的客户端正在使用spymemcached,我正在尝试配置一个MemcachedClient,以便了解所有可用的moxi进程。这样,如果其中一个进程死亡,我希望spymemcached使用不同的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 2011-02-10 17:09:36

回答

0

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