我的理解是,当在“一致散列”模式下使用memcached时,当一个节点宕机时,客户端将使用algo重新映射键。
假设我有两个客户端(A,B)和两个服务器(C,D)
如果客户端A认为服务器C已停机,但B认为服务器C还活着,该怎么办?
所以A将继续使用C& D,而B将只使用D。如何解决这种情况下产生的数据不一致?
发布于 2013-10-29 20:17:25
发布于 2013-11-02 06:56:31
我使用一个中央“可用性”服务器,它运行自己的memcached守护进程,并提供一个名为"avail_servers“的键,它返回所有可用memcached服务器的数组。这是不断刷新的。
我的get服务器首先连接到这个中央服务器,从它获取可用服务器的列表,然后使用它来存储/检索值。您可以编写一些额外的检查,以便如果您的"A“服务器仍然在”可用“列表中看到某个服务器已关闭,它将停止提供服务,直到问题得到解决。
https://stackoverflow.com/questions/19637414
复制相似问题