Redis-sentinel监控
Redis的
Sentinel 系统用于管理多个Redis服务器, 该系统执行以下三个任务:
监控(Monitoring)
提醒(Notification)
自动故障迁移(Automatic failover)
Sentinel
是一个分布式系统,可以在一个架构中运行多个 Sentinel 实例,使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。
启动Sentinel:
•通过redis-sentinel启动redis-sentinel /path/to/sentinel.conf
•通过redis-server启动redis-server /path/to/sentinel.conf--sentinel
Sentinel配置项
•sentinel announce-ip
<ip>•sentinel announce-port <port>•sentinel monitor <master-name>
<ip> <redis-port> <quorum>•sentinel auth-pass <master-name>
<password>•sentinel down-after-milliseconds
<master-name> <milliseconds>•sentinel parallel-syncs
<master-name> <numslaves>•sentinel failover-timeout
<master-name> <milliseconds>•sentinel notification-script
<master-name> <script-path>•sentinel client-reconfig-script
<master-name> <script-path>
1.Sentinel创建命令连接和订阅连接
sentinel与master、slave创建命令连接和订阅连接
sentinel与其他sentinel只创建命令连接
2.Sentinel发送消息
sentinel定期向master、slave发送INFO命令
sentinel定期向master、slave和sentinel发送ping命令
sentinel定期向master发送publish
hello命令hello:sentinel_ip,sentinel_port,sentinel_runid,current_epoch,
master_name,master_ip,master_port,master_config_epoch
3.Master下线检测
(1)
sentinel检测到master超时,标记为主观下线(2)
sentinel向其他sentinel询问master是否下线(3)
超过quorum数量的sentinel认为下线,标记master为客观下线(4)
sentinel进行投票选举leader







1.如果两个sentinel有一个sentinel断掉,另一个sentinel的选举leader将永远失败
2. sentinel不能识别slave中的127.0.0.1地址;
3.修改sentinel模式下的实例角色时,也需要修改sentinel和实例的配置;
4.被sentinel监控的slave,使用slaveof命令无效;
5. sentinel无法将slave当做master作为监控对象
6.
sentinel故障迁移中,slave重配超时后sentinel向其他slave发送的slaveof命令被丢弃
备注:
sentinel在执行故障迁移中,当被选中的slave升级为master后,其它slave需要重新配置到新master上,如果slave重配到新master超时,sentinel会向该slave发送slaveof命令将slave再次重新配置到新master上,并将命令放到待发缓冲中等待读写事件处理器处理,这时sentinel修改自己保持的实例状态将旧master实例切换到了新master实例,在切换过程中sentinel将slave实例释放掉(同时也释放了命令发送连接),导致之前发送的slaveof命令还没发送已经被清空。该slave只能等待sentinel通过INFO命令发现它的master不是新master时再次向它发送slaveof命令。
Redis-sentinel监控的更多相关文章
- redis sentinel 集群监控 配置
环境: ip 172.16.1.31 26379 redis sentinel ip 172.16.1.30 6379 主 1 ip 172.16.1.31 6380 从 1 ip ...
- Redis Sentinel机制与用法说明【转】
本文来自:https://segmentfault.com/a/1190000002680804 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Ma ...
- Redis Sentinel:集群Failover解决方案(转载)
本文转载自:http://shift-alt-ctrl.iteye.com/blog/1884370 文中的配置例子,还有failover过程中触发的订阅事件具有很好的参考价值. Redis sent ...
- Redis Sentinel机制与用法(一)
Sentinel spring 集群配置: 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕 ...
- Redis Sentinel高可用架构
Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis se ...
- redis高可用之REDIS SENTINEL
1. Redis主从配置 1.1. 设置主从复制 Master <= Salve 10.24.6.5:6379 <= 10.24.6.7:6379 1.2. 取消主从复制 1.3. ...
- Redis Sentinel哨兵集群
Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...
- Redis Sentinel机制与用法
概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都 ...
- (转)基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
转载自:http://warm-breeze.iteye.com/blog/2020413 本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedi ...
- Redis的同步(主从复制)和Redis Sentinel
Redis的同步可以让其他服务器拥有一个不断更新的数据副本,从而使拥有数据副本的服务器可以处理客户端发出的读请求. 1.Redis同步的方法: 我们可以通过发送SLAVEOF host port命令来 ...
随机推荐
- MariaDB exists 学习
MariaDB exists 学习 exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就 ...
- NetSetMan IP地址切换工具
http://www.netsetman.com/en/freeware NetSetMan NetSetMan是一个网络设置管理器,它可以很容易在6种不同的,视觉结构化的配置之间切换,包括: IP地 ...
- [转载] C++位运算:将一个4字节整数的二进制表示中的001替换为011
#include <iostream> #include <assert.h> /** * Key: * * get someone bit: num & (mode1 ...
- Ubuntu 13.10下Hadoop 2.2 安装、配置、编译(伪分布式)
1.安装JDK.在此不做解说,上篇博文里已介绍过.http://www.cnblogs.com/lifeinsmile/p/3578677.html 2.配置ssh. ssh服务,用于管理远程Hado ...
- Git常用命令总结(超实用)
导读 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.一般来说,日常使用Git只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整 ...
- 【渗透测试学习平台】 web for pentester -3.XSS
Example 1 http://192.168.91.139/xss/example1.php?name=hacker<script>alert('xss')</script> ...
- exit()和_exit()函数
进程就好比人一样有其生命,我们通过fork()函数来创建一个进程,那么我们又是如何来中止进程呢. 进程退出 1.在Linux中任何让一个进程退出 进程退出表示进程即将结束.在Linux中进程退出分为了 ...
- MySQL备份的shell脚本
经过测试该脚本可以远程备份,但需要配置远程登录用户的权限,经过测试啊,在把这个脚本添加到计划任务的时候是无法识别mysql命令的(即使是将mysql添加到环境变量也无法识别,是因为/etc/cront ...
- Windows编程基础
主要内容:介绍Windows编程的一些基础概念 1.窗口的概念 <1>一个应用程序的窗口通常包括控制菜单框.下拉菜单. 工作区以及最大化按钮.最小化按钮, 还有垂直滚动条.水平滚动条 &l ...
- Android ——Handler相关
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...