【问题标题】:Spymemcached, configure for failoverSpymemcached,配置故障转移
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2013-02-27
    • 2019-01-02
    相关资源
    最近更新 更多