Redis容灾部署哨兵(sentinel)机制配置详解及原理介绍
来源:互联网 发布:js offsetwidth取不到 编辑:程序博客网 时间:2024/05/16 09:38
来源:http://blog.csdn.net/robertohuang/article/details/70768922
说明:这篇博文写的使用,对于初学者来说很实用,推荐学习,文章中重点是关于sentinel的介绍还不错,学到了很多.
1.为什么要用到哨兵
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
2.什么是哨兵
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
3.Sentinel集群搭建
3.1 Sentinel集群拓扑图
多个哨兵,不仅同时监控主从数据库,而且哨兵之间互为监控
3.2 在保证Redis主从架构集群可用的前提下,复制三份配置文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.3 分别配置哨兵
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
3.4 启动哨兵进程
- 1
- 2
- 3
- 1
- 2
- 3
3.5 哨兵模式常用命令
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
3.6 查看配置中是否多了如下内容
3.7 Java代码测试哨兵
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
3.8 测试Sentinel是否正常工作
3.8.1 测试集群环境如下
3.8.2 关闭端口为6379的redis
3.8.3 查看新的集群架构
3.8.4 重新启动端口号为6379的Redis 查看集群架构
该过程是6379Redis宕机->6380切换成Master->6379和6381切换为6380的SLAVE->6379重新启动->6379为6380SLAVE
3.8.5 Sentinel日志分析
26379日志
26380日志
26381日志
4.Sentinel原理介绍
首先解释2个名词:SDOWN和ODOWN.
SDOWN:subjectively down,直接翻译的为”主观”失效,即当前sentinel实例认为某个redis服务为”不可用”状态.
ODOWN:objectively down,直接翻译为”客观”失效,即多个sentinel实例都认为master处于”SDOWN”状态,那么此时master将处于ODOWN,ODOWN可以简单理解为master已经被集群确定为”不可用”,将会开启failover
SDOWN与ODOWN转换过程:
i.每个sentinel实例在启动后,都会和已知的slaves/master以及其他sentinels建立TCP连接,并周期性发送PING(默认为1秒),在交互中,如果redis-server无法在”down-after-milliseconds”时间内响应或者响应错误信息,都会被认为此redis-server处于SDOWN状态.
ii.SDOWN的server为master,那么此时sentinel实例将会向其他sentinel间歇性(一秒)发送”is-master-down-by-addr <ip> <port>”指令并获取响应信息,如果足够多的sentinel实例检测到master处于SDOWN,那么此时当前sentinel实例标记master为ODOWN…其他sentinel实例做同样的交互操作.配置项”sentinel monitor <mastername><masterip> <masterport> <quorum>”,如果检测到master处于SDOWN状态的slave个数达到<quorum>,那么此时此sentinel实例将会认为master处于ODOWN.
每个sentinel实例将会间歇性(10秒)向master和slaves发送”INFO”指令,如果master失效且没有新master选出时,每1秒发送一次”INFO”;”INFO”的主要目的就是获取并确认当前集群环境中slaves和master的存活情况.
经过上述过程后,所有的sentinel对master失效达成一致后,开始failover.
Sentinel与slaves”自动发现”机制:
在sentinel的配置文件中,都指定了port,此port就是sentinel实例侦听其他sentinel实例建立链接的端口.在集群稳定后,最终会每个sentinel实例之间都会建立一个tcp链接,此链接中发送”PING”以及类似于”is-master-down-by-addr”指令集,可用用来检测其他sentinel实例的有效性以及”ODOWN”和”failover”过程中信息的交互.在sentinel之间建立连接之前,sentinel将会尽力和配置文件中指定的master建立连接.sentinel与master的连接中的通信主要是基于pub/sub来发布和接收信息,发布的信息内容包括当前sentinel实例的侦听端口.
- Redis容灾部署哨兵(sentinel)机制配置详解及原理介绍
- Redis容灾部署哨兵(sentinel)机制配置详解及原理介绍
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis sentinel 哨兵原理,配置和使用
- Redis Sentinel 哨兵原理、安装、配置
- redis哨兵(sentinel)原理
- redis哨兵(sentinel)原理
- redis sentinel(哨兵) 配置详解-redis集群管理
- Redis高可用方案哨兵机制------ 配置文件sentinel.conf详解
- Redis及Sentinel配置详解
- Redis Sentinel(redis哨兵)介绍
- 搭建redis-sentinel(哨兵机制)集群
- 搭建redis-sentinel(哨兵机制)集群
- 导出excel(csv)
- OpenCV笔记:Trackbar
- WebService远程调用技术
- Filter过滤器
- Virus_Html_SampleAnalysis
- Redis容灾部署哨兵(sentinel)机制配置详解及原理介绍
- 4.3、Linux安装tomcat服务器
- Hdu6114 Chess( 2017"百度之星"程序设计大赛
- tensorflow 安装
- NLTK学习之一:简单文本分析
- Codeforces Round #428 (Div. 2) C.Journey(dfs求期望)
- UVA
- TensorFlow学习之CS20SI 之二
- Kadane's algorithm(Kadane算法)