我有一个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();
答案 0 :(得分:0)
我不确定,但是你不能在spymemcached配置中指定多个moxi服务器吗? 据我所知,moxi支持memcached协议,spymemcached允许与多个memcached服务器通信。这意味着spymemcached将基于一致的散列算法选择一个moxi服务器,这并不重要,因为最终moc进程将选择memcached服务器。如果其中一个moxi进程死掉,spymemcached将自动切换到另一个moxi进程。