Predis - 从连接池中删除服务器

时间:2011-09-19 18:50:02

标签: redis distributed failover predis

说,我在predis连接池中有N台服务器。我发现当其中一个服务器关闭时,predis不起作用(即,如果任何服务器Si关闭,则新的predis / client(s1,s2,...)不会成功返回)。首先,需要手动删除该失败服务器的条目,并且只有在此predis恢复其工作之后。 因为,predis声称使用一致性散列,所以不应该是predis自动检测哪个服务器没有响应(&失败),并将存储在故障服务器上的密钥分发给其他工作服务器的情况?

1 个答案:

答案 0 :(得分:0)

Predis确实使用了一致性散列,但您需要确保池中的所有服务器都已启动并响应。监视服务器可用性并不一致暗示一致的散列。

您可以在尝试连接之前检查每个服务器,并根据您的检查修改连接池。您可以在其他位置存储池的可用服务器列表,并让其他进程持续监视和修改可用的服务器列表。您可以假设它们始终都是全部,并且只检查在故障时需要删除哪些,或者您可以使用上述任意组合。最重要的是,普雷斯目前不会为你做这件事。