Membase? Как это работает? - PullRequest
0 голосов
/ 02 марта 2012

Когда я добавляю IP-адрес и устанавливаю соединение, получает ли клиент все доступные IP-адреса сервера?

Или клиент должен знать как минимум 2 IP-адреса, когда один из них выходит из строя?

Это код, с которым я тестировал (JAVA)

List addrList = new ArrayList();
 addrList.add("192.168.20.105:11211");
 addrList.add("192.168.20.106:11211");
 addrList.add("192.168.20.101:11211");

try {

List addr = AddrUtil.getAddresses(addrList);
 mbsClnt = new MemcachedClient (new BinaryConnectionFactory() , addr);

Если я добавил только один IP-адрес, и в то время как я выполнял операции получения и установки, и сервер отключился. Сможет ли клиент подключиться к другим доступным серверам? потому что, если я добавлю наблюдателя и увижу доступные серверы, я не увижу ни одного (если я добавлю в список только один сервер) Означает ли это, что мне нужно добавить как можно больше IP-адресов, чтобы избежать сбоев соединения?

Другой вопрос заключается в том, что, когда я добавляю IP-адрес, я должен указать номер PORT, связанный с конкретным vBucket. Это переполняет все клиенты, которые смотрят один и тот же vbucket? Если да, то как мне сбалансировать клиентов, чтобы они смотрели разные vBuckets?

Извините, если Мой английский на самом деле не доходит до вас, T ^ T.

Любые советы или ответы будут очень благодарны! Спасибо!

1 Ответ

0 голосов
/ 03 марта 2012

Проблема в том, что вы используете конструкторы memcached в MemcachedClient. Если вы используете версию 2.7.x или ниже, вы хотите использовать конструктор, который принимает список URI, имя сегмента и пароль. Этот конструктор подключится к узлу Membase / Couchbase и получит список всех серверов в кластере. Затем, если вы перебалансируете или восстановите отказоустойчивые узлы, Spymemcached сделает правильные действия и подключится к новым узлам или сбросит соединения с узлами, выходящими из кластера.

В Spymemcached 2.8.x и более поздних версиях мы фактически удалили эту функциональность и поместили ее в новый проект под названием Couchbase Client. В этом проекте вы найдете только тот конструктор, о котором я упоминал выше. Это должно сделать это более очевидным для того, что вы должны делать. Couchbase Client 1.0.1 в настоящее время не поддерживает представления, но это будет добавлено в следующем выпуске. Также Couchbase Client совместим со всеми версиями Membase.

Еще одна вещь. Вам нужно предоставить только один URI, чтобы получить список всех узлов в кластере, но рекомендуется добавить столько URI, сколько у вас есть серверов в кластере. Причина этого заключается в том, что если узел, указанный вами в URI, выйдет из строя, вы потеряете соединение с кластером, поскольку вы не сможете получать обновления кластера. Если вы укажете более одного URI, тогда Spymemcached / Couchbase Client попытается подключиться к следующему узлу в списке URI.

...