6

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

一旦选出领导者——

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

1 回答 1

5

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

第一种方法(转发给领导者)对客户来说是更好的体验。一定要限制客户端的转发跳数和超时。

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

于 2014-08-12T15:32:06.367 回答