当前位置: 首页 > 知识库问答 >
问题:

如何在Redis Sentinel配置中切换主控器?

韩博厚
2023-03-14

我有以下Redis/Sentinel配置:

  • Redis主服务器A+N从服务器
  • M监视A的哨兵,名为Mastera
  • 客户端应用程序查询mastera,然后查询和修改A

现在,假设a过时了,我想用一个名为B的新Redis master来替换它(停机时间/数据丢失最少)。在手术的最后,我想要这样:

  • Redis主服务器b+n服务器
  • 客户端应用程序查询和修改b

我可以这样做:

  1. 让哨兵开始监视b,名为masterb
  2. a的每个从属都成为B
  3. 的从属

从那以后,我被困住了,因为客户端应用程序在与哨兵交谈时仍然要求mastera。我有两个问题:

  • 是否有一种方法可以切换主程序名称,使b成为哨兵的mastera以及客户端应用程序的mastera
  • 修改客户端应用程序代码以处理从旧主程序到新主程序的切换是否更好?

共有1个答案

松锐藻
2023-03-14

实现目标的一个方法是遵循“添加另一层间接”的古老解决方案。

一个特别有效的方法是让您的客户机与TCP代理(例如HAProxy)对话,并让它将流量传递给当前的主机。

要使TCP代理保持同步,可以执行类似于http://blog.HAProxy.com/2014/01/02/haproxy-advanced-redis-health-check/的操作,这会使HAProxy Sentinel知道。

 类似资料:
  • 我正在尝试实现一个按钮来在明暗之间切换。我有一个文件批准器,看起来像这样。。 所以当我设置getTheme(true)时,它会触发黑暗主题,而getTheme(false)会触发光明主题。问题来了,我想在中的一个组件中插入一个切换按钮,允许用户在这两个主题之间切换。本质上,组件将控制AppRouter的状态。可能吗? 你知道我从哪里开始吗?我正在使用react钩子和类型脚本。我试过各种方法,但都没

  • 我有一个redis哨兵配置,有一个主,两个从和3个哨兵运行。我注意到,在某个时候,哨兵可能会更换主人,选择一个奴隶作为主人。这给作为独立客户机连接到主节点的应用程序带来了问题(我正在修改代码以使用哨兵)。我想知道是否可以通过连接到sentinel客户机来切换主服务器,即通过'' 有人能让我知道是否有一个命令,我可以用来切换主IP吗?

  • 问题内容: 我有一个应用程序,允许用户选择一个选项,并根据用户选择从组件中删除一个JPanel,添加新的JPanel并重新验证该组件 看到代码: c是一个组件 我有几个JPanels,用户可以在它们之间切换,并且开关可以正常工作。但是,当我根据用户选择添加此JPanel时,以后添加的JPanels无法正确加载。是什么原因造成的? } 问题答案: 更好的方法是转向CardLayout。但是如果您想坚

  • 问题内容: 在和之间切换的最有效方法是什么? 问题答案: 使用NOT的解决方案 如果值是布尔值,最快的方法是使用 not 运算符: 用减法求解 如果值是数字,则从总数中减去是切换值的一种简单快捷的方法: 使用XOR的解决方案 如果值在 0 和 1 之间切换,则可以使用按位异或: 该技术可以推广到任意一对整数。异或一步被替换为预异常数: (此想法由Nick Coghlan提交,后来由@zxxc推广。

  • 相当绿色关于javas组件的东西等,所以请原谅我,如果我提供的信息是不够的! 请参阅以下代码。在框架中添加菜单和菜单显示,没有问题。我想知道何时调用gameOn()来删除菜单,而不是启动游戏。下面的代码仅使框架表面为“空白”,未添加游戏面板。 对如何修复它有何想法/建议?菜单面板上有一个鼠标听筒。

  • 更新答案(2021年10月7日):对于AWS CLI v1,请执行以下操作: 对于AWS CLI v2,以下操作将起作用: 以下是完整问题的背景: (1.)成功为AWS CLI配置第二个配置文件后,我尝试在bash会话中使用以下命令将配置文件设置为user2,但未成功: ... 根据此处的建议:https://docs.aws.amazon.com/cli/latest/userguide/cli