Raft 中的领导地址/位置

Sou*_*nta 5 discovery consensus raft

这可能是一个非常简单的问题,但我还没有找到一个好的答案。也许有人可以帮助我。

一旦选举出领导人——

  1. 客户端只会将所有请求发送给领导者。这样对吗?
  2. 鉴于领导者的位置(实际上是 IP 地址)是动态的,客户端如何知道集群中的这个 IP 地址?

Mic*_*uff 5

客户端尝试向集群中的任何主机提交请求。如果客户端猜错了,服务器要么将请求转发给领导者,要么返回一个错误,其中包含它认为是领导者的地址。

第一种方法(转发给leader)是客户端更好的体验。请务必限制客户端上的转发跳数和超时数。

第二种方法(领导地址错误)更容易实现。由于领导者通常是长期存在的,除非遇到麻烦,因此通常只需重试一次即可将请求发送给领导者。