Cassandra双中心节点要配置keepalive

在低流量的间隔,防火墙的设置会把长时间闲置的链接关闭,导致本地节点和其它datacenter的节点之间失去联系。链接闲置超时时间一般被网络管理员设置为60分钟。

所以Cassandra在创建双中心的时候,中间传输数据会经常超时,如果你不设置系统的keepalive的话。

配置系统的keepalive,首先通过

sysctl -A | grep net.ipv4

查看系统内核参数:

net.ipv4.tcp_keepalive_time:链接闲置多久之后开始探测链接(秒),也可以理解为keepalive发送第一个请求的间隔时间。

net.ipv4.tcp_keepalive_probes:链接发送探测请求多少次之后认为链接失效

net.ipv4.tcp_keepalive_intvl:每次发送探测请求中间间隔多久(秒)

你可以使用以下命令临时更改系统内核参数(重启失效)

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

也可以编辑/etc/sysctl.conf 文件之后,使用sysctl -p 命令让配置永久生效。

这个命令把keepalive的超时时间设为了60秒,间隔10秒探测3次。这个设置可以在90s(60+10+10+10)后探测到死链接。这里不需要会产生担心额外的流量,因为这点流量是我不足道的,而且你长期保持这样的设置也应该不是问题。

参考:http://docs.datastax.com/en/cassandra/2.1/cassandra/troubleshooting/trblshootIdleFirewall.html

留言

提示:你的email不会被公布,欢迎留言^_^

*

验证码 *