2012-03-02 5 views
0

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

Или клиент должен знать как минимум 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.

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

ответ

0

Проблема в том, что вы используете конструкторы 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 попытается подключиться к следующему узлу в списке URI.

+0

Ну, мне пришлось использовать Membase .. не couchbase .. для начала Я добавил наблюдателя к коду и попытался увидеть getAvailableServers. Однако, если я добавлю только один URI, он отображает только один доступный сервер. Поэтому я все еще смущен тем, что клиент получает список всех серверов в кластере. Есть ли способ проверить это? Кроме того, я видел различные варианты развертывания Membase. У меня возникла путаница в отношении «мокси на стороне клиента». Я вроде как не получаю это определение ... будет здорово, если я смогу увидеть какие-либо примеры или как это работает. THX: D –

+0

Переместите это обсуждение на форум Couchbase, так как я не думаю, что stackoverflow хорошо подходит для такого обсуждения. http://www.couchbase.com/forums/thread/wondering-how-couchbase-works-situation – mikewied

+0

Хм это уместно? Мне было интересно, совместимость между couchbase и membase. они полностью точны? включая apis? Разница между этими двумя - это БД? –

 Смежные вопросы

  • Нет связанных вопросов^_^