分布式设计-哨兵
作用 监控redis服务器的运行状态, 可以进行自动故障转移(failover), 实现高可用 与 数据库主从 配合使用的机制 特点 独立的进程, 每台redis服务器应该至少配置一个哨兵程序 监控redis主服务器的运行状态 出现故障后可以向管理员/其他程序发出通知 针对故障,可以进行自动转移, 并向客户端提供新的访问地址 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 流言协议 当某个哨兵程序ping 发现监视的主服务器下线后(心跳检测), 会向监听该服务器的其他哨兵询问, 是否确认主服务器下线, 当 确认的哨兵数量 达到要求(配置文件中设置)后, 会确认主服务器下线(客观下线), 然后进入投票环节 投票协议 当确认主服务器客观下线后, 哨兵会通过 投票的方式 来授权其中一个哨兵主导故障转移处理 只有在 大多数哨兵都参加投票 的前提下, 才会进行授权, 比如有5个哨兵, 则需要至少3个哨兵投票才可能授权 目的是避免出现错误的故障迁移 建议最低配置 至少在3台服务器上分别启动至少一个哨兵 如果只有一台, 则服务器宕机后, 将无法进行故障迁移 如果只有两台, 一旦一个哨兵挂掉了, 则投票会失败 相关配置 (sentinel.conf) bind 127.0.0.1 # 哨兵绑定的ip port 26381 # 哨兵监听的端口号,