首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用Redis与哨兵和redis-py时,如何将故障转移到新的主节点?

在使用Redis与哨兵和redis-py时,如何将故障转移到新的主节点?
EN

Stack Overflow用户
提问于 2016-12-02 22:45:14
回答 1查看 2.9K关注 0票数 1

要订阅哨兵故障转移,通道的名称是什么,以及如何检测到需要刷新订阅函数中的主程序?

我有一个使用Redis实现高可用性和故障转移的多节点Redis设置。

我需要设置一个Pub/Sub到Redis,以检测Redis何时失败并且系统已经选择了一个新的Master。

代码语言:javascript
复制
_sentinel = redis.sentinel.Sentinel([(app.config["REDIS_HOSTNAME"],app.config["REDIS_SENTINEL_PORT"])])
_master = _sentinel.master_for(app.config["REDIS_SERVICE_NAME"])

def _sentinel_message_handler(message):
    #TODO how do I detect that there is a new Redis Master?

_pubsub = _master.pubsub()
_pubsub.subscribe(**{app.config["TODO"]:_sentinel_message_handler})
EN

回答 1

Stack Overflow用户

发布于 2016-12-02 23:53:57

要实现这一点,您需要订阅哨兵,而不是主节点。您正在寻找的频道是"+switch-master"。哨兵文档指出通道为"switch-master",“没有+",但在3.2.4中包含+。

Redis Sentinel Pub/Sub消息文档

您应该能够引用redis-py文档作为其余部分的参考。Redis-py文档

更新

还可以考虑使用client-reconfig-script设置。

当主服务器由于故障转移而更改时,可以调用脚本来执行特定于应用程序的任务,通知客户端配置已经更改,并且主服务器位于不同的地址。

http://download.redis.io/redis-stable/sentinel.conf

希望这有帮助

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40941997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档