我有一个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();
发布于 2011-11-02 05:33:31
我不确定,但是您不能在spymemcached配置中指定多个moxi服务器吗?据我所知,moxi支持memcached协议,spymemcached允许与多个memcached服务器对话。这意味着spymemcached将根据一致的散列算法选择一个moxi服务器,这并不重要,因为最终memcached服务器将由moxi进程选择。如果其中一个moxi进程终止,spymemcached将自动切换到另一个moxi进程。
https://stackoverflow.com/questions/4957456
复制