2013-06-27 4 views
0

В настоящее время я пытаюсь настроить кластер cassandra (4 узла с 2 семенами) в нашем производстве env. Когда я соединяюсь с разделенным именем и портом хоста, он работает нормально.cassandra: как подключить кластер cassandra с помощью lb?

cluster = HFactory.getOrCreateCluster("Test Cluster", "host1:9160,host2:9160,host3:9160,host4:9160"); 

Но когда я настроил имя кластера в фунтах соединительных к individaul узлам и настроен так же в клиенте бережливости Hector. Но я получил ниже eception,

cluster = HFactory.getOrCreateCluster("Test Cluster", "lbname"); 

СИЛЬНЫЙ: me.prettyprint.hector.api.exceptions.HectorException: Все бассейны хозяева отмечены вниз. Бремя повторной подачи выдается клиенту.

me.prettyprint.hector.api.exceptions.HectorException: All host pools marked down. Retry burden pushed out to client. 
     at me.prettyprint.cassandra.connection.HConnectionManager.getClientFromLBPolicy(HConnectionManager.java:393) 
     at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:249) 
     at me.prettyprint.cassandra.service.AbstractCluster.describeKeyspace(AbstractCluster.java:199) 
     at com.july.storage.cassandra.util.CassandraDBUtil.getDb(CassandraDBUtil.java:107) 
     at com.july.storage.cassandra.util.CassandraDBUtil.hasTable(CassandraDBUtil.java:91) 
     at com.july.storage.cassandra.action.CassandraHandler.getCall(CassandraHandler.java:65) 
     at com.july.storage.service.StorageService.GET(StorageService.java:58) 
     at com.july.storage.cassandra.action.CassandraHandler.main(CassandraHandler.java:571) 

ответ

2

Не используйте балансировку нагрузки перед Кассандрой. Пусть ваш клиент подключается ко всем узлам. Балансировщик нагрузки просто будет одной точкой отказа и добавит ненужную задержку.

+0

Если я хочу добавить больше узлов позже, мне нужно пойти и изменить каждого клиента, который использует кластер. Есть ли другие возможности? – user2527312

+1

Большинство драйверов имеют автоматическое обнаружение одноранговых узлов, поэтому им нужен только узел-узел для подключения, а затем соединение со всеми другими узлами (или некоторые, в зависимости от конфигурации). Для прокрутки Hector до «Using Node Auto Discovery» в руководстве пользователя: https://github.com/rantav/hector/wiki/User-Guide – Theo

+0

Я использую cassandra 1.2.5. Кластер имеет 4 узла. В кластере есть два семенных узла. Я включил AutoDiscoverHosts и использовал семенной узел для создания кластера в моем клиенте. Если этот узел семени вверх, я могу писать/читать данные во всех узлах кластера. но если он не работает, «все пулы хостов помечены.« Бросьте нагрузку, выталкиваемую клиенту », бросает. Ничего не происходит. (i) Обязательно ли предоставлять все узлы при создании кластера из клиентского события, хотя мы включаем AutoDiscoverHosts? – user2527312