redis集群搭建 sentinal

配置文件

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
posted @ 2018-12-28 08:54  紫金龙骑  阅读(306)  评论(0编辑  收藏  举报
UV PV