centos stream 9 redis 哨兵

centos stream 9 redis 哨兵


前言

一、服务器准备

个人准备了三台服务器(虚拟机)

虚拟机名称IP地址Redis版本
虚拟机1192.168.243.134redis7.2(主)
虚拟机2192.168.243.133redis7.2(从)
虚拟机3192.168.243.135redis7.2(从)

二、redis 配置(配置文件sentinel.conf)

sentinel monitor mymaster 127.0.0.1 6379 2  #2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作
sentinel down-after-milliseconds mymaster 30000 #这个是超时的时间(单位为毫秒)。当你去 ping 一个机器的时候,多长时间后仍 ping 不通,那么就认为它是有问题
sentinel parallel-syncs mymaster 1 #当 Sentinel 节点集合对主节点故障判定达成一致时, Sentinel 领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作, parallel-syncs 就是用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数,指出 Sentinel 属于并发还是串行。1代表每次只能 复制一个,可以减轻 Master 的压力
sentinel auth-pass <master-name> <password> #如果 Sentinel 监控的主节点配置了密码,sentinel auth-pass 配置通过添加主节点的密码,防止 Sentinel 节点对主节点无法监控
sentinel failover-timeout mymaster 180000 #表示故障转移的时间
sentinel parallel-syncs mymaster 1 #指定了在发生failover master/slave切换时,最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成故障转移所需的时间就越长,但越大就意味着越多的从服务器因为复制而不可用,对网络要求较高,一般设置为1
sentinel notification-script <master-name> <script-path> #当sentinel有任何警告级别的事件发生时(比如说redis实例的主观失效和客观失效等等),将会去调用这个脚本,这时这个脚本应该通过邮件,SMS等方式去通知系统管理员关于系统不正常运行的信息
sentinel client-reconfig-script <master-name> <script-path> #当一个master由于failover而发生改变时,这个脚本将会被调用,通知相关的客户端关于master地址已经发生改变的信息

三.启动哨兵

 redis-sentinel  /etc/redis/sentinel.conf   #sentinel.conf 文件的存放位置
 [root@localhost ~]# redis-cli -p 26379   #链接哨兵
 127.0.0.1:26379> sentinel masters  #显示被监控的所有master 以及他们的状态
 1)  1) "name"
    2) "mymaster"
    3) "ip"
    4) "192.168.243.134"
    5) "port"
    6) "6379"
    7) "runid"
    8) "a3e3044972fa751194813083ca3b1c1934f3885e"
    9) "flags"
   10) "master"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "501"
   19) "last-ping-reply"
   20) "501"
   21) "down-after-milliseconds"
   22) "30000"
   23) "info-refresh"
   24) "2492"
   25) "role-reported"
   26) "master"
   27) "role-reported-time"
   28) "1909978"
   29) "config-epoch"
   30) "0"
   31) "num-slaves"
   32) "0"
   33) "num-other-sentinels"
   34) "2"
   35) "quorum"
   36) "2"
   37) "failover-timeout"
   38) "180000"
   39) "parallel-syncs"
   40) "1"
127.0.0.1:26379> sentinel slaves mymaster (列车主节点的所有从节点以及他们的状态)
1)  1) "name"
    2) "192.168.243.133:6379"
    3) "ip"
    4) "192.168.243.133"
    5) "port"
    6) "6379"
    7) "runid"
    8) "716e94a7b006416be8e283e90e053829044e8b81"
    9) "flags"
   10) "slave"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "1"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "636"
   19) "last-ping-reply"
   20) "636"
   21) "down-after-milliseconds"
   22) "30000"
   23) "info-refresh"
   24) "444"
   25) "role-reported"
   26) "slave"
   27) "role-reported-time"
   28) "381756"
   29) "master-link-down-time"
   30) "0"
   31) "master-link-status"
   32) "ok"
   33) "master-host"
   34) "192.168.243.134"
   35) "master-port"
   36) "6379"
   37) "slave-priority"
   38) "100"
   39) "slave-repl-offset"
   40) "102098"
   41) "replica-announced"
   42) "1"
127.0.0.1:26379> sentinel get-master-addr-by-name mymaster #查看当前主服务器的ip和端口
1) "192.168.243.133"
2) "6379"
127.0.0.1:26379> info
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.243.133:6379,slaves=2,sentinels=3  #2个slaves;3个sentinels
127.0.0.1:26379> sentinel remove mymaster #放弃对主节点的监听,需要从新进行配置后开始监听
OK

四.测试故障转移

[root@localhost ~]# systemctl stop redis.service #停止主节点redis
127.0.0.1:26379> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "192.168.243.133"  (ip 从134变成1335) "port"
 6) "6379"
 7) "runid"
 8) "716e94a7b006416be8e283e90e053829044e8b81"
 9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "334"
19) "last-ping-reply"
20) "334"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "3305"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "194788"
29) "config-epoch"
30) "1"
31) "num-slaves"
32) "2"
33) "num-other-sentinels"
34) "2"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"


  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值