首页 > 解决方案 > Nodetool describecluster 列出所有无法访问的节点

问题描述

我在两个公共网络上部署 cassandra,当节点启动时,我可以看到所有节点都加入了环。还nodetool describecluster显示所有节点都可以访问。

一段时间后,我看到节点无法相互连接,并nodetool describecluster在无法访问的列表中显示所有节点。

仅供参考,我使用 public_ip 作为 BROADCAST_ADDRESS 和 RPC_ADDRESS。监听地址是private_ip。

标签: cassandracassandra-3.0nodetool

解决方案


发生这种情况的一个原因是防火墙有时被配置为查找并终止空闲连接。Linux 内核具有默认的 TCP “keepalive”设置,可用于刷新长时间运行的连接。可以使用以下命令查看这些设置的默认值sysctl

$ sudo sysctl -a | grep keepalive
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200

为了解决这个问题,DataStax 建议在生产部署中调整这些值:

$ sudo sysctl -w \
net.ipv4.tcp_keepalive_time=60 \
net.ipv4.tcp_keepalive_probes=3 \
net.ipv4.tcp_keepalive_intvl=10

您还可以将这些值中的每一个添加到系统的/etc/sysctl.conf文件等效项(减去反斜杠)并通过以下方式实现sysctl

sudo sysctl -p /etc/sysctl.conf

推荐阅读