当前位置: 首页 > 知识库问答 >
问题:

卡桑德拉 节点发生故障时自动故障转移延迟

马欣荣
2023-03-14

我是卡珊德拉的新成员。

我在两台 Debian VMware 机器上创建了 2 个 cassandra 2.1 节点。在 asp.net mvc 中,我使用了 datastax 驱动程序 2.1.5,实际上没有任何问题,但是当我关闭或禁用其中一个节点上的网络时,应用程序似乎有 5 或 10 秒的延迟来自动连接其他节点。

当两个节点启动时,查询在c00:00:00.0620413秒内运行,当一个节点关闭时,查询则在00:00:10.0607187秒内运行。每次刷新页面延迟10秒,当两个节点运行时,查询将在1秒以下执行。

我的代码:

Cluster cluster = Cluster.Builder()
            .AddContactPoints("192.168.0.1", "192.168.0.")
            .WithRetryPolicy(DowngradingConsistencyRetryPolicy.Instance)
            .WithReconnectionPolicy(new FixedReconnectionPolicy(0, 10))
            .WithLoadBalancingPolicy(
                new TokenAwarePolicy(new DCAwareRoundRobinPolicy()))
            .Build();

我在两个节点上的配置:cluster_name:'测试集群'num_tokens:256seed_provider:-class_name:org.apache.cassandra.locator.SimpleSeedProviderhtml" target="_blank">参数:-种子:"192.168.0.1,192.168.0.2"endpoint_snitch:SimpleSnitch

在节点1中:listen_address:192.168.0.1 rpc_address:292.168.01

在节点2:listen_address:192.168.0.2rpc_address:192.168.0.2

my key space:CREATE key space my key space WITH REPLICATION = { ' class ':' simple strategy ',' REPLICATION _ factor ':2 };

共有2个答案

楚意
2023-03-14

我出现了同样的症状,问题原来是cassandra.yaml文件中指定的两个节点上的broadcast_rpc_address,它指向另一个集群,给我的解决方案是把这个IP改成当前集群中其中一个节点的公共IP。

程鸿煊
2023-03-14

您的一致性水平是多少?如果一致性级别为 1。您应该会看到失败,因为其中一个节点在 50% 的情况下关闭。但由于 datastax 驱动程序中的重试策略,它主要是在读取超时后获取数据

但是,要发生读取超时,它首先必须向down节点发送请求,因此我认为延迟增加了。

因为默认的读取超时是10秒,所以您会看到10秒的延迟。如果这种情况对你来说很常见,我会说你应该减少这种情况。

协调器应等待读取操作完成的时间read_request_timeout_in_ms:10000

 类似资料:
  • 问题内容: 在简单情况下,如果3台服务器具有1个主服务器和2个从属服务器而没有分片。是否有使用Java和Jedis的经过验证的解决方案,该解决方案没有单点故障,并且将自动处理单个服务器(无论是主服务器还是从服务器)(自动故障转移)。例如,提升主机并在故障后重置,而不会丢失任何数据。 在我看来,这似乎应该是一个已解决的问题,但是我找不到关于它的任何代码,而仅是对实现此方法的高级描述。 谁实际覆盖并在

  • 我正在尝试用6台机器实现一个Redis集群。我有一个由六台机器组成的流浪集群: 运行redis服务器 我编辑了上述所有服务器的/etc/redis/redis.conf文件,添加了这个 然后我在六台机器中的一台上运行了这个程序; Redis集群已启动并运行。我通过在一台机器上设置值手动检查它显示在其他机器上。 我的问题是,当我关闭或停止任何一台主机上的redis server时,整个集群都会停止运

  • 我使用的是Spring Kafka 1.2.2版。我有一个Kafka Listener作为消费者,它监听一个主题并在弹性中索引文档。我的自动提交偏移量属性设置为true//default。

  • 我想知道是否可以在Kafka制作程序中配置2个不同的Kafka集群。 目前我正试图让我的制片人 我正在使用Apache Kafka 2.8和Python 3.7的confluent_kafka==1.8.2包。 生产商代码下方: 当我杀死clusterB时,我得到了以下错误消息。

  • 我们使用MQ作为传递消息的主要路径。这是我们的制度运作不可或缺的一部分。消息代理有时会失败,所有相关的队列也会随之失败。在camel中,有没有一种方法可以启动故障切换,并在其启动时恢复到主故障切换?

  • 蓝鲸故障自愈,是腾讯蓝鲸推出的一款SaaS服务,目前可以支持和open-falcon无缝对接了,通过接入蓝鲸故障自愈系统,可以帮助使用open-falcon的用户,做到告警无人值守。 具体的配置非常简单: open-falcon接入蓝鲸 腾讯蓝鲸故障自愈的使用案例参考:蓝鲸故障自愈案例 那些年我们想做的无人值守