【问题标题】:Predis - Removing server from the connection poolPredis - 从连接池中删除服务器
【发布时间】:2023-03-20 14:56:01
【问题描述】:

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

【问题讨论】:

    标签: redis distributed failover predis


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多