Linux安装redis-哨兵模式部署

萨瓦迪卡10个月前 (09-02)redis5971


哨兵部署:在master节点出现故障后,哨兵进程会自动将master下线,自动将子节点提升为主节点。完成故障转移,实现高可用性。

91226c7b-0f7a-4f6e-9165-038db56113b9.png

这个架构图里面,我们部署了3个哨兵节点组成了一个哨兵集群。它们在启动的时候会进行哨兵选举,选举出一个领导者,在出现故障转移的时候,由领导者进行主导,而触发故障转移需要大部分的哨兵节点都认为主节点发生了故障。这个状态我们称为客观下线。与之对应的是主观下线:也就是单个哨兵发现主节点出现故障,会去询问其他的节点,确认当前主节点是否已经出现故障,当其他哨兵确认主节点出现了故障,并且数量超过了大多数。这时就会从主观下线转为客观下线,一旦确认客观下线就会触发故障转移。由领导者主导,将主节点进行下线操作。然后在从节点里选一个晋升为主机点。然后告知客户端,新的主节点在什么位置,实现无缝切换。旧的主节点恢复后会重新加入到整个集群中,只是角色变成了从节点。

3.1. 哨兵模式部署

整体架构:这个结构是基于主从部署的基础上,新增你了3个哨兵节点,每个哨兵节点都是监控 同一个主节点129的状态.


d4a5aad5-25da-4365-8569-46e50d144e53.png


3 个机器都需要修改 sentinel.conf 配置(vim sentinel.conf),配置完成之后先从主节点开始启动哨兵。
protected-mode no #6⾏,关闭保护模式
daemonize yes  #15⾏,指定sentinel为后台启动
logfile /opt/software/redis/redis-stable/sentinel.log #34⾏,指定⽇志存放路径
dir /opt/software/redis #73⾏,指定数据库存放路径
sentinel monitor mymaster 192.168.75.129 6379 2#93⾏,修改 指定该哨兵节点监控20.0.0.20:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:⾄少需要2个哨兵节点同意,才能判定主节点故障并进⾏故障转移
sentinel down-after-milliseconds mymaster 30000 #134⾏,判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel failover-timeout mymaster 180000 #234⾏,故障节点的最⼤超时时间为180000(180秒)

将三个服务都启动redis-server redis.conf后,可以用redis-cli info replication查看下当前主从架构的状态。

b5e1a4ca-2598-46dd-b181-cd856acec4dd.png

    • 操作

    • 然后启动哨兵(主节点操作):redis-sentinel sentinel.conf

    • 查看哨兵(主节点操作):   redis-cli -p 26379 info sentinel

测试:将129主节点下线:redis-cli shutdown,然后查看当前的sentinel.log日志: cat sentinel.log。
节点查看状态:redis-cli info replication。发现131的节点已变成了主节点。

0be9eff4-7ba9-49e7-8c4c-83130f738b0a.png


也可以到129上,日志文件查看下变化。cat redis.conf     cat sentinel.conf


本文原创,转载必追究版权。

分享给朋友:

相关文章

 程序员的中秋礼物.......

程序员的中秋礼物.......

【小姐你好,我是程序员】“小姐你好,我是程序员。”女生礼貌地回答:“你好,程先生。”男:“……哦,叫我序员就可以了。”   【程序员的愿望】有一天一个程序员见到了上帝。上...

get/post方式调用http接口

get/post方式调用http接口

 1. 项目环境如下:myeclipse8.5 、tomcat5.0/weblogic、xp、JDK:开发1.5,编译1.4为了方便,在原来的web项目UpDown中新建了一个httpcal...

get方式调用http接口   Header赋参数值

get方式调用http接口 Header赋参数值

   /**      195.     * 发送...

freeMarker Jfinal 获取session里的值

问题:freeMaker session取值的常用格式都试过 session["xxx"],session.xxx 直接xxx 都取不出来?????解决:JFinal与Struts...

js/jquery 实现点击图片更换头像(图片)实例

    总之一句话, 可以先将 file类型 的input 隐藏 起来,通过 图片(头像)的onclick事件 来触发 file 的onclick事件。1.引入外部js:...

谈话让别人舒服的程度,决定你成功的高度

职场上,有这样两种截然相反的人:有人生怕别人舒服,尽量让别人不舒服,而只要自己舒服就行;还有一类人生怕别人不舒服,尽量让别人舒服,哪怕委屈自己。猎头公司猎聘的老总有几十万年薪的,也有几百万的,甚至有过...

评论列表

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。