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();
4

1 回答 1

0

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

于 2011-11-02T05:33:31.083 回答