【问题标题】:Preventing Cassandra Node from Being Overwhelemed防止 Cassandra 节点不堪重负
【发布时间】:2018-02-13 23:25:59
【问题描述】:

在 Java 中,我创建了一个 Cassandra 集群构建器,我提供了多个 Cassandra 节点的列表,如下所示:

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

但据我了解,连接器仅连接到列表中可用的第一个主机,该主机成为我到 Cassandra 集群的连接点。

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

有没有办法配置我的连接,使其使用 Cassandra 的多个节点进行读/写?常见的做法是什么?

【问题讨论】:

    标签: cassandra datastax-java-driver database nosql


    【解决方案1】:

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

    如果您担心节点不堪重负,请使用 RoundRobinLoadBalancingPolicy(如果有多个 DC,则 DC 可识别),它将在所有节点之间平均分配。如果您有数据热点并使用 TokenAware 政策,您可能会遇到不平衡的情况,但您不必担心。

    【讨论】:

    • 那么,即使我在 Cassandra 集群中有 400 个节点,连接器也会连接到所有主机?还是在需要时连接?
    • 它将连接到所有 400
    猜你喜欢
    • 2021-12-03
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 2019-04-28
    • 2016-08-07
    • 1970-01-01
    相关资源
    最近更新 更多