我目前正在尝试在我们的生产环境中设置cassandra集群(4个节点,包含2个种子)。 当我用逗号分隔的主机名和端口连接时,它工作正常。
cluster = HFactory.getOrCreateCluster("Test Cluster", "host1:9160,host2:9160,host3:9160,host4:9160");
但是当我在lb上配置了一个连接到个别节点的集群名称,并在Hector thrift客户端中配置了相同的名称。但我得到了以下的观点,
cluster = HFactory.getOrCreateCluster("Test Cluster", "lbname");
SEVERE: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)
答案 0 :(得分:2)
不要在Cassandra面前使用负载均衡器。让您的客户端连接到所有节点。负载均衡器只是一个单点故障,并增加了不必要的延迟。