apache-zookeeper - Zookeeper Quorum 和非 Quorum
问题描述
动物园管理员专家。
我问的问题对你来说可能是基本的,但我是 ZK 的新手,我还没有掌握这个工具,所以请原谅我。考虑到这一点,这是我的问题。
假设我有一个由 5 个服务器组成的 ZK 集群,并且我的法定人数为 3。现在这可以保证服务器不会进入裂脑场景,如果它们位于两个物理上独立的 DC 或机器中。
但是,我想知道的是,如果 Quorum 设置为 3,这意味着 Leader 服务器,将需要等待至少 2 个服务器复制写入的数据,总共 3 个复制数据。但是,如果客户端连接到不属于 Quorum 的任何 2 台服务器的服务器怎么办,这不是意味着它获取旧数据吗?
解决方案
首先,您不能“设置”法定人数。它是从配置中自动计算出来的,使用N/2+1
(大多数)其中 N 是 zookeeper 服务器的数量 *。
不属于 Quorum 的 Zookeeper 服务器变得不可用,并且无法将数据提供给客户端,因此没有看到旧数据的风险。
推荐阅读
- php - 如何从单个 mysql 查询中选择第一行然后选择其他行?
- gcc - 我可以在 gcc/clang 的寄存器分配阶段强制只使用一个寄存器吗?
- android - 意图 ACTION_GET_CONTENT 即使对于已删除的文件也会返回 uri
- sql - 通过循环创建 UNION ALL 语句
- php - 检查文件是否被并发进程锁定
- c - Sqlite 给出相同的输出并且不考虑 where 子句顺序
- shopify - My Shopify 商店中的问题 - 示例产品从订单摘要中消失
- node.js - 如何从 VS Code 启动和调试 Outlook Web 插件?
- c# - 更改父级的大小而不影响其子级的大小
- c# - 如何从 C# 调用 Delphi DLL(方法的类型签名不是 PInvoke 兼容错误)?