cassandra - Nodetool describecluster 列出所有无法访问的节点
问题描述
我在两个公共网络上部署 cassandra,当节点启动时,我可以看到所有节点都加入了环。还nodetool describecluster
显示所有节点都可以访问。
一段时间后,我看到节点无法相互连接,并nodetool describecluster
在无法访问的列表中显示所有节点。
仅供参考,我使用 public_ip 作为 BROADCAST_ADDRESS 和 RPC_ADDRESS。监听地址是private_ip。
解决方案
发生这种情况的一个原因是防火墙有时被配置为查找并终止空闲连接。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
推荐阅读
- javascript - 如何在 typescript 或 javascript 中访问变量数据
- excel - 通过公式将 0 值转换为空 ("") 单元格的选项
- javascript - 对象属性未定义(javascript)
- automation - 无法使用 G1ANT Robot 在 UI-Windows 树上单击指定元素
- reactjs - 有什么好方法可以简化由多个功能包装的组件?
- vba - 为什么我的 CalcWorkingDays VBA 函数在同一时期给我两个不同的结果?
- javascript - 从反应js中的对象中删除键值
- unity3d - 如何从三星 Gear vr 上、下、左、右触摸触摸板?
- android - 我收到消息 import SVG with ERROR@
不支持 - python - 从python中的列表中删除元素