Spymemcached, настроить для отработки отказа - PullRequest
4 голосов
/ 10 февраля 2011

У меня есть кластер мембранных хостов, и у меня также есть набор процессов 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();

1 Ответ

0 голосов
/ 02 ноября 2011

Я не уверен, но вы не можете указать несколько серверов moxi в конфигурациях spymemcached?Насколько я знаю, moxi поддерживает протокол memcached, а spymemcached позволяет общаться с несколькими серверами memcached.Это означает, что spymemcached выберет один из серверов moxi, основанный на согласованном алгоритме хеширования, что на самом деле не имеет значения, поскольку в конечном итоге сервер moci будет в любом случае выбран сервером moci.Если один из процессов moxi умирает, spymemcached автоматически переключится на другой процесс moxi.

...