Redis学习集群篇----Sentinel 哨兵

Sentinel 哨兵
Sentinel:Redis中高可用的,自动进行主从切换,Redis Sentinel集群可以看成是一个zookerper集群,是集群高可用的心脏
Sentinel主要工作:
负责持续监控主从节点的健康,如果主节点挂掉会会从新选择一个新的主节点(选一个最优从节点)
客户端连接步骤:
客户端----->sentinel集群------>通过sentinel查询主节点地址----->连接主节点并进行数据交互
当主节点发生故障时sentinel会将最新的主节点告知客户端
主节点故障后sentinel会调整,选出新的主节点,并会持续监控故障主节点,恢复后重新建立关系变成从节点
1、消息丢失
Redis中主从采用异步复制,会出现主节点挂掉后,从节点可能会没有完全接收全部的同步消息
通过较小的主从延时减少消息丢失:设置选项
min-slaves-to-write 1 至少有一个从节点可以正常复制,复制就停止对外服务
min-slaves-max-lag 10 10s没有收到从节点,就表示从节点同步不正常
2、Sentinel基本用法
启动方式:必须带上配置文件
[root@localhost src]# redis-sentinel /redis-5.0.4/sentinel.conf
[root@localhost src]# redis-server /redis-5.0.4/sentinel.conf --sentinel
#sentinel的配置 名字为mymaster的
69 sentinel monitor mymaster 127.0.0.1 6379 2
70 #sentinel的心跳60000时间没有回来sentinel认为master已经不可用
71 sentinel dow-after-milliseconds mymaster 60000
73 sentinel failover-timeout mymaster 180000
74 #指定最多可以有多少个slave同时对新的master进行同步
75 sentinel paraller-syncs mymaster 1

sentinel对于不可用的判定
一个叫主观不可用(SDOWN):sentinel自己检测sentinel不可用
另外一个叫客观不可用(ODOWN):需要一定数量的sentinel达成一致意见才能认为一个master客观上已经宕掉
sentinel之间通过命令SENTINEL is_master_down_by_addr来获得其它sentinel对master的检测结果。

sentinel显示的主从节点
表示主节点:25139:X 04 May 2019 20:57:58.815 # +monitor master mymaster 127.0.0.1 6379 quorum 2
表示从节点:25139:X 04 May 2019 20:58:18.892 * +reboot slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
表示从节点:25139:X 04 May 2019 20:58:18.892 * +reboot slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
主节点被关闭时(主观不可用):
25139:X 04 May 2019 21:01:35.101 # +sdown master mymaster 127.0.0.1 6379

猜你喜欢

转载自blog.csdn.net/alvin_666/article/details/89737207