什么是哨兵机制

Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:
·        监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。
·        提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。
·        自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。
哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master.
每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的”主观认为宕机” Subjective Down,简称sdown).
若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置.
虽然哨兵(sentinel) 释出为一个单独的可执行文件 redis-sentinel ,但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动哨兵(sentinel).
哨兵(sentinel) 的一些设计思路和zookeeper非常类似
单个哨兵(sentinel)
 
 

哨兵模式修改配置

实现步骤:
1.拷贝到etc目录
cp sentinel.conf  /usr/local/redis/etc
2.修改sentinel.conf配置文件
sentinel monitor mymast  192.168.110.133 6379 1  #主节点 名称 IP 端口号 选举次数
3. 修改心跳检测 5000毫秒
sentinel down-after-milliseconds mymaster 5000
4.sentinel parallel-syncs mymaster 2 --- 做多多少合格节点
5. 启动哨兵模式
./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
6. 停止哨兵模式

最新文章

  1. javascript创建多行字符串的方法(转)
  2. javascript的一些知识
  3. 电脑远程工具:mstsc
  4. 【转】Eclipse常用快捷键
  5. 11. Android框架和工具之 Logger(调试代码)
  6. XSHELL和XFTP,亲兄弟啊。
  7. hibernate注解原理
  8. LeetCode OJ 202. Happy Number
  9. python科学计算_numpy_广播与下标
  10. 牛客小白月赛13 小A买彩票 (记忆化搜索)
  11. 静态代理与JDK动态代理
  12. 一个label两种颜色,一个label两种字体
  13. 【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
  14. CSS个人笔记
  15. css 图标 旋转中
  16. Struts2的优点与Struts1的区别:
  17. 【转载】python实例手册
  18. 在Wmware虚拟机上如何检查是否CPU支持虚拟化 和 加载kvm模块
  19. Android -- 消息处理机制源码分析(Looper,Handler,Message)
  20. Android使用Gradle命令动态传参完成打包,不需要修改代码

热门文章

  1. Spring 工程分层
  2. 用户ID与权限
  3. MySQL的安装、配置与优化
  4. 【leetcode算法-简单】9. 回文数
  5. Java集合框架——List接口
  6. 解决redis运行期间key值过期但是内存memory依然占用过高
  7. [翻译] 深入浅出Go语言调度器:第一部分 - 系统调度器
  8. Linux系列(13)之程序与服务的概念
  9. php验证手机号记录
  10. spark机器学一Mllib 数据抽象