redis--哨兵

11 篇文章 0 订阅

概念

哨兵(Sentinel) 是一个分布式系统,可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossip protocols)来接收关于Master主服务器是否下线的信息,并使用投票协议(Agreement Protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。每个哨兵(Sentinel)进程会向其它哨兵(Sentinel)、Master、Slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定配置时间(可配置的)内未得到回应,则暂时认为对方已掉线,也就是所谓的”主
观认为宕机”

任务

每10秒每个sentinel对master和slave执行info

发现slave节点
确认主从关系

每2秒每个sentinel通过master节点的channel交换信息(pub/sub)

通过sentinel__:hello频道交互
交互对节点的“看法”和自身信息
每1秒每个sentinel对其他sentinel和redis执行ping

实现

配置一主两从

slove节点

文件配置
在redis.conf文件中修改
bind 0.0.0.0
replicaof 192.168.148.157 6379
masterauth 123456
 命令行配置
127.0.0.1:6379> replicaof 192.168.148.158 6379
OK
127.0.0.1:6379> config set masterauth 123456
OK

 应用程序连接redis

redis的客户端

sentinel配置

bind 0.0.0.0
port 26379
daemonize yes
pidfile "redis-sentinel.pid"
logfile "/apps/redis/log/sentinel.log"
dir "/apps/redis/bin" #工作目录
sentinel monitor mymaster 192.168.148.157 6379 2 #指定当前mymaster集群中master服务器的地址和端口
#2为法定人数限制(quorum),即有几个sentinel认为master down了就进行故障转移,一般此值是所有
sentinel节点(一般总数是>=3的 奇数,如:3,5,7等)的一半以上的整数值,比如,总数是3,即3/2=1.5,
取整为2,是master的ODOWN客观下线的依据
sentinel auth-pass mymaster 123456 #mymaster集群中master的密码,注意此行要在上面行的下面
sentinel down-after-milliseconds mymaster 30000 #(SDOWN)判断mymaster集群中所有节点的主观下线的时间,单位:毫秒,建议3000
sentinel parallel-syncs mymaster 1 #发生故障转移后,同时向新master同步数据的slave数量,数字越小总同步时间越长,但可以减轻新master的负载压力
sentinel failover-timeout mymaster 180000 #所有slaves指向新的master所需的超时时间,单位:毫秒
sentinel deny-scripts-reconfig yes #禁止修改脚本

同时启动

 redis-sentinel /apps/redis/etc/sentinel.conf

 日志文件

新增时间用+,修复用-

服务发现:

端口查看

命令行连接

查看哨兵状态

redis-cli -h 127.0.0.1 -p 26379

 故障转移

关闭master节点

 查看变化后节点

日志文件

确认master挂了
2062:X 23 May 2024 22:35:39.704 # +sdown master mymaster 192.168.148.157 6379
2062:X 23 May 2024 22:35:39.760 # +odown master mymaster 192.168.148.157 6379 #quorum 2/2
选举出新的master
2062:X 23 May 2024 22:38:40.170 # +failover-end-for-timeout master mymaster 192.168.148.157 6379
2062:X 23 May 2024 22:38:40.170 # +failover-end master mymaster 192.168.148.157 6379
2062:X 23 May 2024 22:38:40.170 * +slave-reconf-sent-be slave 192.168.148.159:6379 192.168.148.159 6379 @ mymaster 192.168.148.157 6379
2062:X 23 May 2024 22:38:40.170 # +switch-master mymaster 192.168.148.157 6379 192.168.148.158 6379
2062:X 23 May 2024 22:38:40.170 * +slave slave 192.168.148.159:6379 192.168.148.159 6379 @ mymaster 192.168.148.158 6379
2062:X 23 May 2024 22:38:40.170 * +slave slave 192.168.148.157:6379 192.168.148.157 6379 @ mymaster 192.168.148.158 6379
2062:X 23 May 2024 22:38:43.223 # +sdown slave 192.168.148.157:6379 192.168.148.157 6379 @ mymaster 192.168.148.158 6379

修改配置文件
2062:X 23 May 2024 22:35:39.993 * +failover-state-wait-promotion slave 192.168.148.158:6379 192.168.148.158 6379 @ mymaster 192.168.148.157 6379
2062:X 23 May 2024 22:35:40.172 # +promoted-slave slave 192.168.148.158:6379 192.168.148.158 6379 @ mymaster 192.168.148.157 6379
2062:X 23 May 2024 22:35:40.173 # +failover-state-reconf-slaves master mymaster 192.168.148.157 6379
 查看redis.conf文件

被修改了

 修复

修改损坏节点的配置文件为新的master

修改redis.conf
replicaof 192.168.148.158 6379
修改sentinel 
sentinel monitor mymaster 192.168.148.158 6379 2

对比

不同点相同点
主从不能实现角色自动切换,当master宕机之后需要手动将slave切换为master

1.可以实现数据的跨主机备份

2.不能实现性能横向扩展

哨兵不能实现角色自动切换,当master宕机之后需要手动将slave切换为master

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值