多节点 cassandra 集群 - load_balancing_policy

Posted

技术标签:

【中文标题】多节点 cassandra 集群 - load_balancing_policy【英文标题】:multi node cassandra cluster - load_balancing_policy 【发布时间】:2020-04-12 17:33:39 【问题描述】:

您好,从我的 python 连接器连接我的 cassandra 时遇到一些问题

Connotor.py 包含以下代码

from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
from cassandra import ReadTimeout
import os

class CassandraConnection():

    def getConnection():
        auth_provider = PlainTextAuthProvider(username ='admin', password='Dog2019')
        cluster=Cluster(['a5ad8e558c23e9a524-1196365.us-west-2.elb.amazonaws.com'], auth_provider=auth_provider)

        session = cluster.connect()
        session.set_keyspace('tonnage')
        cluster.connect()

        return session

在运行我的 python 代码时出现此错误

警告:

cassandra.cluster:Cluster.init 使用 contact_points 调用 指定,但没有 load_balancing_policy。在下一个主要版本中, 这将引发错误;请指定负载平衡策略。 (联系点= ['a5ad8e558c23e9a524-1196365.us-west-2.elb.amazonaws.com'],lbp = 无)

警告:

cassandra.pool:尝试重新连接到 100.100.0.3 时出错, 在 4.0 秒内安排重试:[Errno None] 尝试连接到 [('100.100.0.3',9042)]。最后一个错误:超时

警告:

cassandra.pool:尝试重新连接到 100.100.0.2 时出错, 计划在 128.0 秒内重试:[Errno None] 尝试连接到 [('100.100.0.2',9042)]。最后一个错误:超时

警告:

cassandra.pool:尝试重新连接到 100.100.0.2 时出错, 在 4.0 秒内安排重试:[Errno None] 尝试连接到 [('100.100.0.2',9042)]。最后一个错误:超时

INFO:cassandra.policies:使用数据中心“datacenter1”进行 DCAwareRoundRobinPolicy(通过主机“34.217.153.0”);如果不正确,请给构造函数指定一个local_dc,或者将接触点限制在本地集群节点 INFO:cassandra.cluster:发现新的 Cassandra 主机 INFO:cassandra.cluster:发现新的 Cassandra 主机 INFO:cassandra.cluster:Cassandra 主机 52.26.34.69 已移除

【问题讨论】:

【参考方案1】:

此错误的最可能原因如下(我不能 100% 确定,因为我们需要有关您的设置的更多信息) - 您将负载平衡器作为联系点,此名称已解析为多个 IP属于不同 Cassandra 数据中心的 Cassandra 节点的地址。通常这不是推荐的设置 - 您需要改为指向节点。您仍然可以使用不同数据中心中节点的 IP 地址,但在这种情况下,您需要将 local_dc 参数传递给 Cluster 构造函数(如上一条消息中所述)。

在消息中看到的另一个问题是,一些节点正在宣布私有 AWS 地址,而不是使用公共 IP 地址进行广播(如 described here)。

【讨论】:

我已经使用 BITNAMI CASSANDRA STACK HELM CHARTS [Cassandra] (bitnami.com/stack/cassandra/containers) 配置了 cassandra 集群

以上是关于多节点 cassandra 集群 - load_balancing_policy的主要内容,如果未能解决你的问题,请参考以下文章

Apache Cassandra随笔之多节点跨数据中心集群配置以及日常操作

多节点 cassandra 集群 - load_balancing_policy

在Cassandra 3.0多节点集群中回收磁盘空间的最佳实践

多节点cassandra集群:连接错误:('无法连接到任何服务器')

cassandra集群缩容与剔除问题节点

Cassandra教程---- 节点间交互(gossip)