Loading

Docker 搭建Redis Sentinel集群

准备

保留Docker 搭建Redis主从复制创建的容器,一主二从

创建配置文件

创建mysentinel.conf文件,并写入如下内容

port 6379
sentinel monitor mymaster 192.169.0.2 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1

最重要的是
sentinel monitor mymaster 192.169.0.2 6379 2

  • mymaster为集群名
  • 192.169.0.2为master节点地址
  • 2 为最小投票数(设置3 台 Sentinel 可以设置成 2),多少个Sentinel认为master挂了才进行故障转移

创建容器

docker run -itd --name redis-mysentinel -p 6382:6379 -v /home/program/redis/mysentinel.conf:/usr/local/etc/redis/sentinel.conf --net redis-net --ip 192.169.0.5 redis redis-sentinel /usr/local/etc/redis/sentinel.conf

修改端口和容器名再创建两个Sentinel

docker run -itd --name redis-mysentinel2 -p 6383:6379 -v /home/program/redis/mysentinel.conf:/usr/local/etc/redis/sentinel.conf --net redis-net --ip 192.169.0.6 redis redis-sentinel /usr/local/etc/redis/sentinel.conf

docker run -itd --name redis-mysentinel3 -p 6384:6379 -v /home/program/redis/mysentinel.conf:/usr/local/etc/redis/sentinel.conf --net redis-net --ip 192.169.0.7 redis redis-sentinel /usr/local/etc/redis/sentinel.conf

我们就有了三个Sentinel和一主二从六个Redis容器
image

测试

docker exec -it redis-mysentinel redis-cli进入一个sentinel的redis-cli
输入sentinel master mymaster

image

image

模拟故障转移

我们模拟master节点挂掉,停掉容器即可docker stop redis-master

image

可以看到master节点已经转移到了一个slave节点

posted @ 2021-07-19 10:35  Xianhao  阅读(531)  评论(0)    收藏  举报