gpt4 book ai didi

.net - Redis 副本处理失败的连接字符串

转载 作者:可可西里 更新时间:2023-11-01 11:17:52 27 4
gpt4 key购买 nike

我认为我的 Redis 和 Web 应用程序部署环境有问题。

如果有人可以检查我的配置并处理我觉得棘手的情况,我将不胜感激。


Redis 配置:

我配置了多个 Redis 副本,一个作为主节点,其他作为从节点。为了简化起见,我们说:

  • server1:配置为master
  • server2 ~ serverN:配置为slave,指的是server1

Redis 哨兵可能会也可能不会出现在这个结构中,因为我不能保证至少会有服务器。

在我的情况下,只有服务器 1 保证存在,服务器 2 到 N 不存在。


Web应用部署环境:

我还使用两个连接字符串部署了 .NET Web 应用程序,一个用于主服务器,另一个用于其中一个从服务器。 Web 服务使用

连接字符串如下所示:

  • "server1,password=myredispassword"用于 Redis 主机
  • "serverN,password=myredispassword"用于 Redis 从服务器

当然,如果一个web应用有serverN的slave连接,那么serverN肯定存在。


问题情况(和问题):

现在我认为可能会出现这样一种情况,即有一个失效的 Redis 副本(主或从),我的 Web 应用程序通过连接字符串引用那个失效的 Redis 副本。

我认为在这种情况下,Web 应用程序会宕机,表示端点无法访问。

是否可以优雅地将无法到达的端点副本处理为另一个可到达的端点副本?我是否需要配置 Redis 哨兵才能执行此操作?或者您甚至会说我尝试访问或处理 Redis 连接的方法不正确?预先感谢您的意见。

最佳答案

使用redis可以更好地处理这种情况sentinel .您的应用程序连接到 redis sentinel 端点,该端点:

  1. 提供自动故障转移,当主节点发生故障时,其中一个从节点会自动提升为主节点。

  2. 配置提供商:Sentinel 充当配置提供程序。它通过哨兵连接字符串确定主节点和从节点。它还会小心地将您的读取请求转发给 slave 并将写入请求转发给 master。

您的应用程序应该像下面这样连接到端点:知识产权:端口:即26379

确保驱动程序在发生故障转移时尝试使用哨兵端点连接新选出的主节点。

redis 和 sentinel 端口都必须可以从您的应用程序服务器访问。

关于.net - Redis 副本处理失败的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42781789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com