cassandra集群ping丢失

时间:2017-12-24 14:23:38

标签: ping cassandra-3.0 loss

我们有3个节点Cassandra集群。 2个节点在EU(种子)中,1个节点在US中。有时我们遇到网络问题 - 欧盟和美国的节点之间的 ping丢失。网络问题后的影响是美国节点上缺少某些数据。我们需要手动启动nodetool repair来修复损失。是否有人可以建议我如何处理这种情况?

以下是我们的密钥空间创建:

CREATE KEYSPACE test WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '1'}  AND durable_writes = false;

dc1 - 欧盟服务器 - 2个节点

dc2 - 美国服务器 - 1个节点

2 个答案:

答案 0 :(得分:0)

我们通过自动化cassandra修复解决了类似的问题。

我们从cassandra操作机器运行一个cron作业(一台不属于集群的机器,但我们可以从中运行指向正在考虑的集群的nodetool命令)。

cron作业每隔午夜运行一次nodetool修复。它每天都会进行增量修复,除非每个月的第1天进行全面修复。您可以根据自己的需要决定时间表。

我没有看到任何其他解决方案。当节点面临最基本的问题时,你可以做些什么 - ping丢失。

您还可以做的是重新考虑拥有多区域群集的决定。尝试考虑使用多区域(节点位于不同的物理位置但位于区域内)群集。

答案 1 :(得分:0)

我们的问题似乎在$(function () { var counter = 0, divs = $('#div1, #div2, #div3'); function showDiv () { divs.hide() // hide all divs .filter(function (index) { return index == counter % 3; }) // figure out correct div to show .show('fast'); // and show it counter++; }; // function to loop through divs and show correct div showDiv(); // show first div setInterval(function () { showDiv(); // show next div }, 10 * 1000); // do this every 10 seconds }); 。我们的表格如下:

gc_grace_seconds

似乎如果USA节点为DOWN,则default_time_to_live = 7200 gc_grace_seconds = 60期间数据无法同步。我们尝试将gc_grace_seconds的值增加到7200,并且似乎当USA节点为UP时,数据是同步的。