ToB企服应用市场:ToB评测及商务社交产业平台

标题: Redis 哨兵模式的原理及其搭建 [打印本页]

作者: 傲渊山岳    时间: 2024-1-10 04:43
标题: Redis 哨兵模式的原理及其搭建
1.Redis哨兵

Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。
1.1.哨兵原理

1.1.1.集群结构和作用

哨兵的结构如图:

哨兵的作用如下:
1.1.2.集群监控原理


1.1.3.集群故障恢复原理

一旦发现master故障,sentinel需要在salve中选择一个作为新的master,选择依据是这样的:
当选出一个新的master后,该如何实现切换呢?
流程如下:

1.1.4.总结

Sentinel的三个作用是什么?
Sentinel如何判断一个redis实例是否健康?
故障转移步骤有哪些?
1.2.搭建哨兵集群

1.2.1.集群结构

这里搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。如图:

三个sentinel实例信息如下:
节点IPPORTs1192.168.150.10127001s2192.168.150.10127002s3192.168.150.101270031.2.2.准备实例和配置

要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。
创建三个文件夹,名字分别叫s1、s2、s3:
  1. # 进入/tmp目录
  2. cd /tmp
  3. # 创建目录
  4. mkdir s1 s2 s3
复制代码
如图:

然后我们在s1目录创建一个sentinel.conf文件,添加下面的内容:
  1. port 27001
  2. sentinel announce-ip 192.168.150.101
  3. sentinel monitor mymaster 192.168.150.101 7001 2
  4. sentinel down-after-milliseconds mymaster 5000
  5. sentinel failover-timeout mymaster 60000
  6. dir "/tmp/s1"
复制代码
解读:
然后将s1/sentinel.conf文件拷贝到s2、s3两个目录中(在/tmp目录执行下列命令):
  1. # 方式一:逐个拷贝
  2. cp s1/sentinel.conf s2
  3. cp s1/sentinel.conf s3
  4. # 方式二:管道组合命令,一键拷贝
  5. echo s2 s3 | xargs -t -n 1 cp s1/sentinel.conf
复制代码
修改s2、s3两个文件夹内的配置文件,将端口分别修改为27002、27003:
  1. sed -i -e 's/27001/27002/g' -e 's/s1/s2/g' s2/sentinel.conf
  2. sed -i -e 's/27001/27003/g' -e 's/s1/s3/g' s3/sentinel.conf
复制代码
1.2.3.启动

为了方便查看日志,我们打开3个ssh窗口,分别启动3个redis实例,启动命令:
  1. # 第1个
  2. redis-sentinel s1/sentinel.conf
  3. # 第2个
  4. redis-sentinel s2/sentinel.conf
  5. # 第3个
  6. redis-sentinel s3/sentinel.conf
复制代码
启动后:

1.2.4.测试

尝试让master节点7001宕机,查看sentinel日志:

查看7003的日志:

查看7002的日志:


            作者:上古南城
            出处:https://www.cnblogs.com/zhangwencheng
            版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出             原文链接
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4