搭建哨兵架构
Redis大纲
3.1.sentinel环境准备:
a.3个sentinel实例信息:
- 1.sentinel实例信息如下,
sentinel只是起到监控作用,不存放数据
!! - 2.为了节省资源,
在同一台虚拟机开启3个实例
,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。
节点 | IP | PORT |
---|---|---|
s1 | 192.168.150.101 | 27001 |
s2 | 192.168.150.101 | 27002 |
s3 | 192.168.150.101 | 27003 |
b.准备实例和配置
- 1.创建三个文件夹,名字分别叫s1、s2、s3:
# 进入/tmp目录 cd /tmp # 创建目录 mkdir s1 s2 s3
- 2.如图:
3.2.配置sentinel.conf:
a.解读sentinel.conf配置文件中的重点参数:
- 1.
port 27001
:是当前sentinel实例的端口 - 2.
sentinel announce-ip 192.168.150.101
: - 3.
sentinel monitor mymaster 192.168.150.101 7001 2
:指定主节点信息mymaster
:需要监控的主节点名称,自定义,任意写192.168.150.101 7001
:主节点的ip和端口2
:选举master时的quorum值,表示最少有几个哨兵认可就客观下线
- 4.
sentinel down-after-milliseconds mymaster 5000
:指定多少毫秒之后,主节点没有应答哨兵,此时哨兵主观上认为主节点下线 - 5.
sentinel parallel-syncs <master-name> <nums>
:表示允许并行同步的slave个数,当Master挂了后,哨兵会选出新的Master,此时,剩余的slave会向新的master发起同步数据 - 6.
sentinel failover-timeout <master-name> <milliseconds>
:故障转移的超时时间,进行故障转移时,如果超过设置的毫秒,表示故障转移失败 - 7.
sentinel notification-script <master-name> <script-path>
:配置当某一事件发生时所需要执行的脚本 - 8.
sentinel client-reconfig-script <master-name> <script-path>
:客户端重新配置主节点参数脚本
b.三个哨兵sentinel的通用配置:
- 1.三个配置分别放在
s1、s2、s3
目录下:
3.3.启动sentinel
- 1.为了方便查看日志,我们打开3个ssh窗口,分别启动3个redis实例,启动命令:
# 第1个 redis-sentinel s1/sentinel.conf # 第2个 redis-sentinel s2/sentinel.conf # 第3个 redis-sentinel s3/sentinel.conf
- 2.启动后:
3.4.测试
- 1.尝试让master节点7001宕机,
- 2.查看sentinel日志:
- 3.查看7003的日志:
- 4.查看7002的日志:
3.5.对redis和Sentinue配置文件的说明:
- 1.在哨兵机制中,两者的配置文件在主机和从机发生变更的时候,会同时都发生改变