0

比如说,我在 predis 连接池中有 N 个服务器。我发现当其中一台服务器停机时,predis 不起作用(即,如果任何服务器 Si 停机,则 new predis/client(s1,s2,...) 不会成功返回)。首先,需要手动删除该故障服务器的条目,并且只有在此 predis 恢复其工作之后。既然 predis 声称使用了一致的哈希,那么 predis 不应该自动检测哪个服务器没有响应( & 已失败),并将存储在故障服务器上的密钥分发给其他工作服务器吗?

4

1 回答 1

0

Predis 确实使用一致的散列,但由您来确保池中的所有服务器都启动并响应。监视服务器可用性并不本质上暗示一致的散列。

您可以在尝试连接之前检查每台服务器,并根据您的检查修改连接池。您可以将池的可用服务器列表存储在其他地方,并让其他一些进程不断监视和修改可用服务器列表。您可以假设它们总是全部启动,并且只检查在失败时需要删除哪些,或者您可以使用上述任意组合。最重要的是,目前 predis 并没有为你做这件事。

于 2011-09-26T03:17:56.510 回答