从被Overwhelemed

问题描述:

防止卡桑德拉节点当在Java中,我创建了一个卡桑德拉集群建设者,我提供多个卡桑德拉节点列表,如下图所示:从被Overwhelemed

Cluster cluster = Cluster.builder().addContactPoint(host1, host2, host3, host4).build(); 

但是从我个人理解,连接器只连接到列表中的第一个主机可用,并且该主机成为我与Cassandra集群的连接点。

现在,我的问题是,如果我的Java应用程序从/向Cassandra读取/写入大量数据,那么我的Java应用程序不会覆盖它所连接的节点?

有没有一种方法来配置我的连接,使它使用Cassandra的多个节点进行读/写操作?常用的做法是什么?

它使用联系点查找群集中的其余节点,然后创建一个到所有主机的连接池,并在它们之间平衡请求。它不仅连接到您提供的主机,除非您使用白名单负载平衡策略或自定义策略。

如果您担心压倒性节点使用RoundRobinLoadBalancingPolicy(如果有多个DC,则可以感知DC),并且它将均匀分配给所有节点。如果您有数据热点并使用TokenAware策略,则可能会使其不均衡,但您不必担心。

+0

因此,连接器连接到所有主机,即使我有例如Cassandra群集中的400个节点?或者当需求出现时连接? – user1888243

+0

它将连接到所有400 –