- 简介
Sentinel:哨兵模式,是一个分布式系统,该进程是用于监控redis集群中Master主服务器工作的状态,
在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用,其已经被
集成在redis 2.6 +的版本中,Redis的哨兵模式到了2.8版本之后就得到了稳定。 - 哨兵模式的环境:
a:Master主服务器配置信息:IP:192.168.191.101, Port:6379,OS:Linux
b: Slave从服务器的配置信息: IP:192.168.191.102, Port:6379,OS:Linux
c: Slave从服务器的配置信息:IP:192.168.191.103, Port:6379,OS:Linux - 哨兵模式的配置(3台机器同步修改)
⑴创建/etc/sentinal和/var/sentinal/5000目录
⑵将/usr/local/module/redis-5.0.5目录下sentinel.conf拷贝到/etc/sentinal目录下,并且名称修改为5000.conf
⑶修改5000.conf(不同的机器不同的IP地址)
#端口为5000 port 5000 #守护进程模式 daemonize yes #指明日志文件名 logfile "/usr/local/module/redis-5.0.5/logs/sentinel.log" #设置绑定IP地址,不同的机器不同的IP地址 bind 192.168.191.101 127.0.0.1 protected-mode no #哨兵程序的日志路径 dir /var/sentinal/5000 #哨兵程序的日志路径 logfile "/usr/local/module/redis-5.0.5/logs/sentinel.log" sentinel announce-ip 192.168.191.103 #给监控的master指定的一个名称,哨兵监控这个master,在至少quorum个哨兵实例都认为master down后把master标记为odown,这个IP地址必须是master的 sentinel monitor mymaster 192.168.191.101 6379 2 #在搭建redis集群时如果指定了主节点的"requirepass",这个就必须保持一致 sentinel auth-pass mymaster redis-pass # master或slave多长时间(默认30秒)不能使用后标记为s_down状态。 sentinel down-after-milliseconds mymaster 30000 # 若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。 sentinel failover-timeout mymaster 60000 #parallel-syncs,新的master别切换之后,同时有多少个slave被切换到去连接新master,重新做同步,数字越低,花费的时间越多 #假设你的redis是1个master,4个slave #然后master宕机了,4个slave中有1个切换成了master,剩下3个slave就要挂到新的master上面去 #这个时候,如果parallel-syncs是1,那么3个slave,一个一个地挂接到新的master上面去,1个挂接完,而且从新的master sync完数据之后,再挂接下一个 #如果parallel-syncs是3,那么一次性就会把所有slave挂接到新的master上去 sentinel parallel-syncs mymaster 1
- 启动哨兵进程
⑴简介
在eshop-cache01、eshop-cache02、eshop-cache03三台机器上,分别启动三个哨兵进程,组成一个集群,
观察一下日志的输出
⑵启动eshop-cache01,eshop-cache02、eshop-cache03的哨兵,进入/usr/local目录下
命令:redis-sentinel /etc/sentinal/5000.conf,效果如下
- 检查哨兵状态
⑴命令
redis-cli -h ip地址 -p 端口
查询master状态:sentinel master mymaster
查询slaves状态:SENTINEL slaves mymaster
获取master节点信息:SENTINEL get-master-addr-by-name mymaster
使用info命令查询:
- 下面我们redis将master节点停掉,看看哨兵会不会重新选举
a:停止master节点
b:看哨兵效果:
c:查看哨兵状态
并且102切换为主节点后,也可以向里面写数据了
重新启动101节点,它将会作为一个slave节点连接上去:
- 综上,哨兵成功搭建,并且完成主备切换的功能。
Redis之3节点部署哨兵集群(基于前面的Redis5.0.5读写分离架构搭建环境)
最新推荐文章于 2021-12-05 17:54:14 发布