redis 简单整理——客户端哨兵模式[三十]

前言

简单介绍一下客户端的哨兵模式连接。

正文

Sentinel节点集合具备了监控、通知、自动故障转移、配置提供者若干 功能,也就是说实际上最了解主节点信息的就是Sentinel节点集合,

而各个 主节点可以通过进行标识的,所以,无论是哪种编程语言的 客户端,如果需要正确地连接Redis Sentinel,必须有Sentinel节点集合和 masterName两个参数。

下面用java例子。

1)遍历Sentinel节点集合获取一个可用的Sentinel节点

2)通过sentinel get-master-addr-by-name master-name这个API来获取对应 主节点的相关信息

3)验证当前获取的“主节点”是真正的主节点,这样做的目的是为了防 止故障转移期间主节点的变化

前面的两个不说也知道,但是第三个可能一下子想不到怎么验证的。

通过连接该节点,来获取info信息,判断是否是主节点。

4)保持和Sentinel节点集合的“联系”,时刻获取关于主节点的相关“信 息”

然后运行一下。

报错了,为什么会这样呢? 其实问题也是很明显的,获取的是docker。而docker 是内网。

现在用一种比较简单的方式解决。

更改配置如上。

然后试一下。

然后就运行成功了。

下一节,介绍一下哨兵原理。

posted @ 2021-09-19 10:31  敖毛毛  阅读(434)  评论(0编辑  收藏  举报