深入检出 Redis Sentinel ③:客户端
1. 客户端实现原理
- 获取 Sentinel 节点: 遍历所有 Sentinel 节点,获取一个可用的 Sentinel 节点
- 获取 master 节点: 执行 sentinel get-master-addr-by-name ${masterName} 命令获取 master 节点
- 验证 master 节点: 执行 role 或 role replication 命令获取节点信息进行验证其是否故障
- 故障转移通知: 当 redis 主从变化时通知客户端
- +switch-master: 切换主节点(从节点晋升主节点)
- +convert-to-slave: 切换从节点(主节点降为从节点)
- +sdown: 主观下线
2. Jedis
1 | JedisSentinelPool sentinelPool = new JedisSentinelPool(masterName, sentinelSet, poolConfig, timeout); |