对等集 - 对等集是参与日志复制的所有成员的集合。对于 Consul 而言,所有服务器节点都位于本地数据中心的对等集中。
~ 引用来自官方文档
- 那么同行和成员之间有什么区别呢?
那为什么我们有以下两个 API?(一个就够了?)
i. /status/peers ii. /agent/members
能否介绍一下内部细节?
- 上述 API 的结果是否存在不一致的可能性?
这是/agent/members/
和status/peers/
的比较catalog/nodes
。
响应的可能差异是因为每个 API 端点都从不同的来源获取数据。
/catalog/nodes
: 任何代理收到的请求都会重定向到领导者,领导者提供来自目录的响应。/agent/members/
: Agent 接收请求,返回从 gossip中获取的成员信息。这可能与catalog
端点不同(从日志复制机制很明显(Consul 使用 Raft Prorocol))。/status/peers/
:此 API 返回参与“日志复制”的节点。/catalog/node
。但是如果集群中存在分区,则有可能在集群恢复之前,所有成员都不会参与日志复制。在这种情况下/catalog/nodes/
,/status/peers/
可以给出不同的结果。要正确理解这一点,您需要正确了解 raft 协议。参考。