sentinel.conf 最小的配置 每一个哨兵都可以去监控多个maser-slaves的主从架构 因为可能你的公司里,为不同的项目,部署了多个master-slaves的redis主从集群 相同的一套哨兵集群,就可以去监控不同的多个redis主从集群 你自己给每个redis主从集群分配一个逻辑的名称 # sentinel monitor master-group-name hostname port quorum sentinel monitor mymaster 127.0.0.1 6379 2 #down-after-milliseconds,超过多少毫秒跟一个redis实例断了连接,哨兵就可能认为这个redis实例挂了 sentinel down-after-milliseconds mymaster 60000 # failover-timeout,执行故障转移的timeout超时时长 sentinel failover-timeout mymaster 180000 # parallel-syncs,新的master别切换之后,同时有多少个slave被切换到去连接新master,重新做同步,数字越低,花费的时间越多 sentinel parallel-syncs mymaster 1
哨兵默认用26379端口,默认不能跟其他机器在指定端口连通,只能在本地访问 mkdir /etc/sentinal mkdir -p /var/sentinal/5000 /etc/sentinel/5000.conf port 5000 bind 10.211.55.30 dir /var/sentinal/5000 sentinel monitor mymaster 10.211.55.30 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1 port 5000 bind 10.211.55.31 dir /var/sentinal/5000 sentinel monitor mymaster 10.211.55.30 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1 port 5000 bind 10.211.55.32 dir /var/sentinal/5000 sentinel monitor mymaster 10.211.55.30 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1
在 cache01、 cache02、 cache03三台机器上,分别启动三个哨兵进程,组成一个集群,观察一下日志的输出 redis-sentinel /etc/sentinal/5000.conf redis-server /etc/sentinal/5000.conf --sentinel 日志里会显示出来,每个哨兵都能去监控到对应的redis master,并能够自动发现对应的slave 如果没有发现,那可能是没有设置sentinel auth-pass mymaster master-pass 哨兵之间,互相会自动进行发现,用的就是之前说的pub/sub,消息发布和订阅channel消息系统和机制
redis-cli -h 10.211.55.30 -p 5000 sentinel master mymaster SENTINEL slaves mymaster SENTINEL sentinels mymaster SENTINEL get-master-addr-by-name mymaster