Redis 哨兵高可用架构

Redis 哨兵高可用架构
基于Redis主从架构搭建基础上搭建哨兵高可用架构
sentinel 哨兵介绍

sentinel 哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。客户端第一次从哨兵找出redis的master节点,后续就直接访问redis的master节点,不会每次通过sentinel代理访问redis的master节点,当redis的master节点发生改变,sentinel会第一时间感知到,并将新的redis的master节点通知给客户端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)。

sentinel 集群搭建

搭建三个节点的sentinel集群,端口分别为:26379、26380、26381。

修改配置文件

复制一份sentinel.conf文件为sentinel-26379.conf,修改sentinel-26379.conf

# port <sentinel-port>
# The port that this sentinel instance will run on
port 26379
# daemonized.
daemonize yes
# When running daemonized, Redis Sentinel writes a pid file in
# /var/run/redis-sentinel.pid by default. You can specify a custom pid file
# location here.
pidfile "/var/run/redis-sentinel-26379.pid"
logfile "26379.log"
# dir <working-directory>
# Every long running process should have a well-defined working directory.
# For Redis Sentinel to chdir to /tmp at startup is the simplest thing
# for the process to don't interfere with administrative tasks such as
# unmounting filesystems.
dir "/usr/local/data"
# quorum是一个数字,指明当有多少个sentinel认为一个master失效时(值一般为:sentinel总数/2 + 1),master才算真正失效
sentinel monitor mymaster 192.168.68.100 6379 2   # mymaster这个名字随便取,客户端访问时会用到
启动sentinel 哨兵实例
src/redis-sentinel sentinel-26379.conf
查看sentinel的info信息
src/redis-cli -p 26379
127.0.0.1:26379>info
其他的两个sentinel实例配置启动也是一样,将端口更改成对应的端口即可。。
验证master节点重新选举

手动kill掉master节点, 当redis的master节点挂了,sentinel集群会重新选举出新的redis的master节点,同时会修改所有sentinel节点的配置文件的集群信息,可以查看sentinel节点的日志信息如:sentinel-26379.conf

15198:X 28 Feb 2023 16:44:05.740 # +monitor master mymaster 192.168.68.100 6379 quorum 2
15198:X 28 Feb 2023 16:44:05.741 * +slave slave 192.168.68.100:6380 192.168.68.100 6380 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 16:44:05.746 * +slave slave 192.168.68.100:6381 192.168.68.100 6381 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 16:49:12.199 # +sdown master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 16:51:33.008 * +reboot master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 16:51:33.060 # -sdown master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:00:29.910 * +sentinel sentinel a587f875146b987ff81d41361e663dce4a83fb86 192.168.68.100 26380 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:02:44.952 * +sentinel sentinel 180bfbe4ab0f7ecd3d2edf675c7b3636cf9a5b0a 192.168.68.100 26381 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.226 # +sdown master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.310 # +odown master mymaster 192.168.68.100 6379 #quorum 2/2
15198:X 28 Feb 2023 17:04:13.311 # +new-epoch 1
15198:X 28 Feb 2023 17:04:13.311 # +try-failover master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.317 # +vote-for-leader 4c458f695726a0894734a0df48a56fb3be393523 1
15198:X 28 Feb 2023 17:04:13.320 # 180bfbe4ab0f7ecd3d2edf675c7b3636cf9a5b0a voted for 4c458f695726a0894734a0df48a56fb3be393523 1
15198:X 28 Feb 2023 17:04:13.322 # a587f875146b987ff81d41361e663dce4a83fb86 voted for 4c458f695726a0894734a0df48a56fb3be393523 1
15198:X 28 Feb 2023 17:04:13.384 # +elected-leader master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.384 # +failover-state-select-slave master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.442 # +selected-slave slave 192.168.68.100:6380 192.168.68.100 6380 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.442 * +failover-state-send-slaveof-noone slave 192.168.68.100:6380 192.168.68.100 6380 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.498 * +failover-state-wait-promotion slave 192.168.68.100:6380 192.168.68.100 6380 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.956 # +promoted-slave slave 192.168.68.100:6380 192.168.68.100 6380 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:13.956 # +failover-state-reconf-slaves master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:14.020 * +slave-reconf-sent slave 192.168.68.100:6381 192.168.68.100 6381 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:14.436 # -odown master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:15.029 * +slave-reconf-inprog slave 192.168.68.100:6381 192.168.68.100 6381 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:15.030 * +slave-reconf-done slave 192.168.68.100:6381 192.168.68.100 6381 @ mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:15.081 # +failover-end master mymaster 192.168.68.100 6379
15198:X 28 Feb 2023 17:04:15.081 # +switch-master mymaster 192.168.68.100 6379 192.168.68.100 6380
15198:X 28 Feb 2023 17:04:15.081 * +slave slave 192.168.68.100:6381 192.168.68.100 6381 @ mymaster 192.168.68.100 6380
15198:X 28 Feb 2023 17:04:15.081 * +slave slave 192.168.68.100:6379 192.168.68.100 6379 @ mymaster 192.168.68.100 6380
15198:X 28 Feb 2023 17:04:45.095 # +sdown slave 192.168.68.100:6379 192.168.68.100 6379 @ mymaster 192.168.68.100 6380
15198:X 28 Feb 2023 17:09:08.464 # -sdown slave 192.168.68.100:6379 192.168.68.100 6379 @ mymaster 192.168.68.100 6380
当之前挂了的master节点再次启动时,哨兵集群根据集群元数据信息就可以将master节点的redis实例作为从节点加入集群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值