首页 文章

两个Cassandra DC逐渐在nodetool describecluster中变得无法访问

提问于
浏览
0

我 Build 了一个由两个DC组成的Cassandra集群,一个在美国东部,一个在美国西部 . 没有VPN /网关 . 每次重新启动整个集群时,nodetool describecluster都会报告所有正常情况,并且具有一致级别ALL的长读取工作正常 .

但是,几分钟后,每个节点上的“describeculster”显示一个UNREACHABLE:[xxx.xxx,...],无法访问的集合逐渐增加,直到两个DC无法相互访问 . 并且读取请求在ReadTimeoutException上失败 .

但是每个节点上的任何“nodetool status”运行都会报告所有节点Up和normal . 并且ssh到节点并ping其他DC工作正常 .

增加read_request_timeout_in_ms,调整GC并不能解决问题 .

任何想法为什么会这样?

casandra.yaml:listen_address:{} rpc_address:0.0.0.0 broadcast_rpc_address:{} broadcast_address:{}

1 回答

  • 0

    经过几轮搜索和调整 . 我现在主要可以缓解这个问题 .

    • GC调整 .

    • 将read_request_timetout_in_ms增加到更高级别,但这只能最好地隐藏问题 .

    • 这个应该是关键的一个 . 当流量较低时,您的基础架构提供商的防火墙设置可能会休眠空闲连接 . 所以保持tcp更长时间 . 每个DataStax,

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

    我的系统默认设置为75,9和300. http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/troubleshooting/trblshootIdleFirewall.html

    其他调整,如DC之间的安装网关和vnet2vnet vpn连接没有帮助 .

相关问题