同行与成员 - 领事

Peers vs Members - Consul

Peer set - The peer set is the set of all members participating in log replication. For Consul's purposes, all server nodes are in the peer set of the local datacenter.

~ 引用自官方文档

  1. 那么同行和会员有什么区别呢?
  2. 那为什么会有下面两个API呢? (一个够吗?)

      i. /status/peers  
     ii. /agent/members
    
  3. 能否说明一下内部细节?

  4. 是否存在上述API结果不一致的可能性?

这里是 /agent/members/status/peers/catalog/nodes 的比较。

可能的响应差异是因为每个 API 端点从不同来源获取数据。

  1. /catalog/nodes:任何代理收到的请求被重定向到leader,leader提供响应from catalog.
  2. /agent/members/:代理收到请求,return从八卦获得会员信息。这可能与 catalog 端点不同(从日志复制机制可以看出(Consul 使用 Raft Prorocol))。
  3. /status/peers/ : 这个 API return 节点参与 'log replication'.
    理想情况下,这应该与 /catalog/node 相同。但是如果集群中存在分区,则有可能在集群恢复之前,所有成员都没有参与日志复制。在这种情况下 /catalog/nodes//status/peers/ 可以给出不同的结果。

要正确理解这一点,您需要正确了解 raft 协议。 Reference.