gpt4 book ai didi

java - Datastax java 驱动程序的自动故障转移不适用于 OutOfMemoryError 节点故障

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:53 25 4
gpt4 key购买 nike

我不确定我是否遗漏了一些东西,但是每当 cassandra 节点由于 OutOfMemoryError 而关闭时,我的 DataStax Java 驱动程序就不会检测到它,并且仍然向它发送读取请求。如果我手动关闭节点,它工作正常。我使用重新连接和重试策略的默认值:

LoadBalancingPolicy loadBalancingPolicy;
if (datacenter != null) {
loadBalancingPolicy = new DCAwareRoundRobinPolicy(datacenter);
} else {
loadBalancingPolicy = new RoundRobinPolicy();
}
loadBalancingPolicy = new TokenAwarePolicy(loadBalancingPolicy);
loadBalancingPolicy = LatencyAwarePolicy.builder(loadBalancingPolicy).build();

Builder builder = Cluster.builder().addContactPoints(endpoints).withLoadBalancingPolicy(loadBalancingPolicy);

有什么建议吗?

最佳答案

whenever a cassandra node is going down due to OutOfMemoryError my DataStax Java driver is not detecting it and still sending read requests to it.

根据您的描述,我推测 Cassandra 节点 OOM,但并没有真正停止运行(进程没有退出),我怀疑如果它真的停止运行,驱动程序会检测到它。如果是这种情况,我认为这是服务器的错误行为,并且 Cassandra 确实没有在 OOM 上尽快(或根本)死亡,请参阅 CASSANDRA-7507 .

也就是说,当 Cassandra 行为不当时,驱动程序应该更好地保护您,这将通过 JAVA-426 得到改善。 .

关于java - Datastax java 驱动程序的自动故障转移不适用于 OutOfMemoryError 节点故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25399439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com