Apache zookeeper领导人选举:它只能在两个节点上工作吗?

问题描述 投票:0回答:1

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

动物园管理员的领导者选举能力看起来足够了;整个临时和顺序znode方法在纸上看起来都不错。我以为,例如,面对节点故障,我还需要在每个节点上运行一个zookeeper服务以实现冗余。

但是文档指出了多个动物园管理员要求至少3个实例以确保在所有其他动物园管理员中选举主要动物园管理员的法定人数的问题。因为我只有两个节点,所以这看起来像个破坏交易的角色。

因此,在放弃Zookeeper方法之前,我想过我要问Zookeeper是否有一些配置选项可以使两个节点的系统正常工作。否则,我会去寻找下一个最适合我的问题的方式。

redhat apache-zookeeper leader-election
1个回答
0
投票

您可以仅使用两个实例来运行Zookeeper。但是,它没有容错的好处,因为在这种情况下仲裁达到2。其中任何一个失败都会导致Zookeeper集成拒绝客户端请求。这就是为什么默认配置要有3个实例的原因,因为拥有2个实例并不比1个更好,那么为什么还要创建2个实例呢?实际上,它会创建更多的故障点,因为当任何一个实例死亡时,您的Zookeeper合奏都将停止,并且使两个故障之一发生故障更有可能只有一个故障。

© www.soinside.com 2019 - 2024. All rights reserved.