比方说,我在predis连接池中有N个服务器。我发现当其中一台服务器宕机时,predis无法工作(例如,新的predis/客户端(s1、s2等))如果服务器S1中的任何一个停机,则不会成功返回)。首先,需要手动删除出现故障的服务器的条目,并且仅在此predis恢复其工作之后。既然predis声称正在使用一致的散列,那么predis不应该自动检测哪个服务器没有响应(&发生了故障),并将存储在故障服务器上的密钥分发给其他正常工作的服务器吗?
发布于 2011-09-26 11:17:57
Predis确实使用一致的散列,但它留给您来确保池中的所有服务器都正常运行并做出响应。一致性散列本质上并不意味着监视服务器可用性。
您可以在尝试连接之前检查每台服务器,并根据检查修改您的连接池。您可以将池的可用服务器列表存储在其他位置,并让一些其他进程不断监视和修改可用服务器列表。您可以假设它们总是处于运行状态,并且只检查在出现故障时需要删除哪些,或者您可以使用上述方法的任意组合。底线是,predis目前不会为你做这件事。
https://stackoverflow.com/questions/7475815
复制相似问题