好吧,我觉得我失去了一些信息的关键部分。
本地我有1个主站和1个从Redis的服务器上的不同端口上运行http://redis.io/topics/sentinel
我也有3个哨兵,他们似乎都知道彼此的和预期工作。
现在我有一个很大的java代码指向到127.0.0.1:6379,我主Redis的服务器。
如果我取下来的高手,定点确实寄托都如预期推动从掌握因此现在的新主人是上
127.0.0.1:6380
我的问题是如何我的代码知道这一点,自动切换?
好吧,我觉得我失去了一些信息的关键部分。
本地我有1个主站和1个从Redis的服务器上的不同端口上运行http://redis.io/topics/sentinel
我也有3个哨兵,他们似乎都知道彼此的和预期工作。
现在我有一个很大的java代码指向到127.0.0.1:6379,我主Redis的服务器。
如果我取下来的高手,定点确实寄托都如预期推动从掌握因此现在的新主人是上
127.0.0.1:6380
我的问题是如何我的代码知道这一点,自动切换?
你必须订阅他们的PubSub的渠道之一定点的消息。 您可以在您发布的哨兵会公布出像消息中的链接查看
+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.
所以,当你看到一个哨兵在渠道中发布,你需要解析的消息,并相应地拥有你的客户响应。 Redis的不聪明 - 你必须处理使用客户端库这些东西。
具体地,最有用的信道是
+odown
+failover-detected
+switch-master