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

如何告诉客户新的Redis master在哪里使用Sentinel

郎经纶
2023-03-14

共有1个答案

颛孙俊
2023-03-14

你必须在他们的一个pubsub频道上订阅哨兵消息。您可以在发布的链接中看到sentinel将发布如下消息

+odown <instance details> -- The specified instance is now in Objectively Down state.
-odown <instance details> -- The specified instance is no longer in Objectively Down state.
+failover-takedown <instance details> -- 25% of the configured failover timeout has elapsed, but this sentinel can't see any progress, and is the new leader. It starts to act as the new leader reconfiguring the remaining slaves to replicate with the new master.
+failover-triggered <instance details> -- We are starting a new failover as a the leader sentinel.

因此,当您看到sentinel在其中一个通道上发布时,您需要解析消息,并让您的客户机做出相应的响应。Redis并不聪明--你必须使用客户端库来处理这些事情。

具体来说,最有用的渠道是

+odown
+failover-detected
+switch-master
 类似资料:
  • 问题内容: 好的,我觉得我缺少一些关键的信息。 在本地,我有1个主Redis服务器和1个从Redis服务器运行在不同的端口上 http://redis.io/topics/sentinel 我也有3个哨兵,他们似乎彼此了解,并按预期工作。 现在,我有大量的Java代码指向我的主Redis服务器所在的127.0.0.1:6379。 如果我撤下主服务器,哨兵将按预期的方式将奴隶提升为主服务器,因此现在

  • 我正在学习React/Apollo,当我引入bug时,我会在Chrome控制台中看到典型的红色异常。然而,在Apollo中,它不会像在React或其他框架中那样告诉我错误在代码中的何处开始。当使用在多个组件中发出查询的钩子时,查找问题源的速度非常慢。 你使用任何技巧来调试你的Apollo代码吗?或者你能以某种方式改善错误反馈吗? 以下是我看到的:

  • 我使用和将日期字符串从1970年起传递到毫秒。 问题是日期字符串上不包含时区。他们是英国人,所以时区将是GMT或GMT+1取决于日期... 当我在前端(Chrome)或后端(Node.js)中使用此技术时。所取时区为英国时区(GMT或GMT+1,视日期而定)。我认为这是从操作系统中提取的。 但是,在使用Node.js服务器时,我被告知该服务器配置为UTC格式...时区总是格林尼治标准时间,导致英国

  • 问题内容: 我想告诉CMake将文件和文件夹输出到其他文件夹而不是当前文件夹。我在下面谈论CMake生成的文件: 文件:CMakeCache.txt 目录:CMakeFiles / 文件:Makefile 目录:bin / 文件:cmake_install.cmake 有没有办法让CMake在另一个文件夹中输出这些文件和文件夹?我编写了一个从项目目录根目录执行CMake的工具,结果我的项目目录被上

  • 现在的问题是,这个Eureka客户端使用应用程序属性中指定为9005的https端口注册自己: 但我希望该客户端使用http端口9010注册自己。 当然,Eureka服务器本身在上运行,所有其他注册的服务也在localhost上,只进行http通话。

  • 问题内容: 我有一个click事件发生在我的自定义指令范围之外,因此,我使用jQuery.click()侦听器并在我的范围内调用一个函数,而不是使用“ ng- click”属性,如下所示: close()是一个简单的函数,如下所示: 在我看来,我有一个绑定到isOpen的“ ng-show”元素,如下所示: 调试时,我发现正在调用close(),isOpen被更新为false,但是AngularJ