问题标签 [leader-election]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
676 浏览

redhat - Apache zookeeper Leader Election:只能使用两个节点吗?

我有一个两个节点的 redhat 系统,每个系统都有一组相同的服务。我正在寻找一种方法来确定哪个服务是“负责”,哪个是“运行备份”。例如,例如;service-A 存在并在两个节点上运行,但只有一个节点应该在处理数据,而另一个节点则处于休眠状态,直到第一个节点崩溃。集合中的其他服务也是如此。

Zookeeper 的领导选举能力看起来就足够了;整个短暂和顺序的 znode 方法在纸面上看起来不错。例如,我想象我还需要在每个节点上运行一个 zookeeper 服务,以在节点故障时实现冗余。

但是文档指出了多个 zookeeper 需要至少 3 个实例才能保证在所有其他 zookeeper 中选举出领导 zookeeper 的法定人数的问题。由于我只有两个节点,这看起来像一个交易破坏者。

所以在我放弃 zookeeper 方法之前,我想我问一下 zookeeper 是否有一些配置选项来允许两个节点系统工作。否则我要去寻找下一个最适合我的问题的方法。

0 投票
2 回答
2105 浏览

java - 使用 Zookeeper 进行 Java 领导者选举

我阅读了有关使用 Zookeeper 的 Java 领导者选举实现。我很清楚这里描述的算法。但我有一个关于算法的微妙问题要问。

在解释的算法中,节点选择“/election”节点的所有子节点,并选择最小的节点作为领导者。

在那种情况下,他们如何决定哪些节点在,哪些不在。我想知道的是什么条件决定阻止一个迟到的节点创建其子节点并参与领导者选举。是超时吗?如果是这样,它是如何以及在哪里计算的?

0 投票
2 回答
426 浏览

amazon-web-services - EKS / AWS 中的 Hazelcast 主节点选举是可能的吗?

我们有一个在物理盒子中运行的 Spring Boot 应用程序。计划迁移到 EKS (AWS)。我们已将榛树用于下面列出的多种用途。

是否可以在 AWS 中使用 hazelcast 本身来使用相同的功能。?
或者我应该使用任何其他技术而不是使用 hazelcast 本身?

Hazelcast 用于:
1. (机器的)主选举
2. 缓存(有时主要保留一些文件到 websocket 消息并在需要时传输这些文件)

Master Election :用于从 4 个框中选择任何一台机器,以执行特定工作,直到下一次重新启动/重新部署。

使用的 Hazelcast 版本:com.hazelcast.hazelcast:3.4.2

参考:hazelcast 使用什么算法来查找主节点

注意:之前我提到过作为领导者(实际上在 Hazelcast 的情况下是主人)

0 投票
2 回答
344 浏览

hyperledger-fabric - 领导者没有选择 hyperLedger 织物筏订购服务

在此处输入图像描述

当我尝试部署织物筏订购服务时,它会显示这些日志。它在不选举领导者的情况下重复开始选举。我尝试将心跳时间更改为 1 秒,将选举时间更改为 10 秒,但这不起作用。然后我试图改变GODEBUG=netdns=go,但这也不起作用。

0 投票
1 回答
54 浏览

algorithm - 当 UID 不是整数时的领导人选举

我是分布式系统的新手,目前正在研究 Nancy lynch 的分布式算法一书。现在,在完成关于领导人选举问题和学习 LCR、HS 等算法的部分之后,我想到了一个问题:
如果 UID 不是正整数怎么办?
基本上在我阅读的所有部分中,UID 都是正整数。当我考虑编写这种算法时,我想到了用于比较的对象。例如,在编程中,我们可能有不同的对象(如苹果和橙子!)。所以问题会是这样的:
如果例如 A、B、C、... 是节点的 UID,我该如何选举领导者?


我的一个大问题是我们不能简单地比较对象!就像我们可以说A==A但没有办法没有说 A>B or A<B(就像说苹果比橙子大还是不?)

预先感谢

0 投票
1 回答
153 浏览

consensus - 存在分区时的 Raft 算法领导者选举

假设您有三台服务器 A、B 和 C

A 和 C 之间存在网络分区。

在领导人选举期间,可能会发生以下步骤:

a) A 遇到超时并开始新的任期 1 的选举。B 响应投票请求,A 成为领导者。

b) 一段时间后,C 开始新的任期 1 选举,但由于 B 已经在任期 1 投票给 A,它拒绝投票给 C,并且由于超时而导致 C 的领导选举失败。

c) C 发生另一个超时,它开始进行第 2 任期的领导人选举。在这种情况下,B 接受 C 作为领导人,因为它有更高的任期,而 C 成为领导人。

d) 同样,稍后 A 开始并进行第 3 学期的选举,领导层在 A 和 C 之间交替。

这个摊位不会进步吗?我在这里错过了什么吗?

0 投票
1 回答
473 浏览

apache-kafka - Kafka领导人选举Zookeeper失败

当当前的领导者死亡时,控制器从 ISR 中为一个分区选择一个新的领导者。我的理解是这些数据保存在 Zookeeper 中。当 Zookeeper 节点在此写入期间死亡时会发生什么?这是否意味着一些经纪人可能仍然是新领导者选举分区的不同领导者?

我尝试挖掘文档,但找不到任何令人满意的东西。

0 投票
1 回答
267 浏览

apache-zookeeper - Apache Curator:没有领导者被间歇性选择

我在我的应用程序中使用 Apache Curator Leader Election Recipe:https ://curator.apache.org/curator-recipes/leader-election.html 。

Zookeeper 版本:3.5.7 策展人:4.0.1

以下是步骤顺序: 1. 每当我的 tomcat 服务器实例启动时,我创建一个 CuratorFramework 实例(每个 tomcat 服务器一个实例)并启动它:

  1. 创建一个 LSAdapter 的实例并启动它:

下面是我的 LSAdapter 类:

  1. 当服务器实例关闭时,关闭 LSAdapter 实例(正在使用的应用程序)并关闭创建的 CuratorFramework 客户端

我面临的问题是,有时当服务器重新启动时,没有领导者被选举出来。我通过跟踪 takeLeadership() 中的日志来检查这一点。我有两个带有上述代码的 tomcat 服务器实例,连接到同一个 zookeeper quorum,并且大多数情况下,其中一个实例成为领导者,但是当这个问题发生时,它们都成为追随者。请建议我做错了什么。

0 投票
1 回答
104 浏览

mongodb - MONGO 选举初选

我有一个包含 5 个 mongo 节点的副本集,我关闭了 3 个节点进行 DR 测试,并向副本添加了一个新节点。但是,即使一个节点具有更高的优先级,我仍然有 3 个辅助节点并且没有主节点。你知道为什么,应该怎么做我该如何解决它

0 投票
1 回答
417 浏览

kubernetes - Kubernetes 为所有 Pod 提供服务,另一个只为领导者提供服务

在 Kubernetes 中,是否可以为单个部署提供 2 个服务,一个是“标准”服务,在所有准备好的 pod 前面代理,另一个服务只发送选定的领导者?如果有怎么办?我正在使用client-go进行领导者选举。这些是第 4 层服务。

我知道服务可以使用标签作为选择器,但 client-go 使用注释来标记领导者。使用没有选择器的服务并在领导者回调中创建/删除端点似乎是 hacky/buggy。谢谢你。