【发布时间】:2017-06-28 23:12:04
【问题描述】:
我建立了一个由两个 DC 组成的 Cassandra 集群,一个在美国东部,一个在美国西部。没有VPN/网关。每次我重新启动整个集群时,nodetool describecluster 都会报告一切正常,并且具有一致级别 ALL 的长读取工作正常。
然而,几分钟后,每个节点上的“describeculster”显示一个UNREACHABLE: [xxx.xxx, ...],unreachable set逐渐增加,直到两个DC互不可达。并且读取请求在 ReadTimeoutException 上失败。
但是每个节点上的任何“nodetool status”运行都会报告所有节点正常。 ssh 到节点并 ping 另一个 DC 也可以正常工作。
增加read_request_timeout_in_ms,调GC并不能解决问题。
任何想法为什么会发生这种情况?
casandra.yaml: 监听地址:{{private_ip}} rpc_address:0.0.0.0 广播rpc_address:{{public_ip}} 广播地址:{{public_ip}}
【问题讨论】:
-
日志中有错误吗?
-
没有错误。仅警告 jmx 端口未打开。并且在启动时说 gc pause 大于 Cassandra-env.sh 中的 jvm 设置,但没有将节点标记为关闭。然后所有日志都清理干净。我想我需要打开更多日志。你能推荐一些我应该尝试的东西吗?
-
最后这一行 system.log 将我引向这个问题stackoverflow.com/questions/42477913/… 和我自己的答案:INFO [SharedPool-Worker-4] 2017-06-30 16:33:27,772 Message.java: 536 - 请求期间出现意外异常;频道 = [id: 0x4c8011ee, L:/10.2.1.100:9042 ! R:/167.220.0.104:57169] io.netty.channel.unix.Errors$NativeIoException: readAddress() failed: Connection timed out at io.netty.channel.unix.Errors.newIOException(Errors.java:117) ~[ netty-all-4.0.44.Final.jar:4.0.44.Final]
标签: cassandra