【发布时间】:2011-06-24 20:30:33
【问题描述】:
我有一个 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();
【问题讨论】:
-
你不喜欢做什么?为什么你觉得你需要 spymemcached 和 moxi (后者是一种设计为像前者一样工作的工具,你没有长期存在的进程)?
-
我需要使用 moxi,以便它可以在 membase 集群中分发密钥。 AFAIK 有一个 spymemcached beta 版本,它增加了对这个和其他 membase 功能的支持,但我们不想使用 beta 版本。我们在 membase 中有一个 vbucket,希望让 moxi 进程完成分片。但是我们还希望在客户端有一个故障转移机制,这样如果正在使用的 moxi 死亡,它可以从一个 moxi 跳转到另一个 moxi 而不会丢失队列中的数据。
标签: java memcached spymemcached