docker-compose 极简版哨兵模式

redis哨兵模式即redis主从模式的升级版,可以实现主机与从机的自动切换。

一、先将两台服务器搭建成主从模式

分别在两台机器上(192.168.50.45,192.168.50.17)使用docker-compose启动两个redis,compose.yml相同,配置文件有所不同

version: "2.1"
services:
  redis:
     image: coral_ris:latest
     restart: unless-stopped
     ports:
      - "6379:6379"
     command:
      - /bin/sh
      - -c
      - |
          echo "y" |redis-check-aof --fix /data/appendonly.aof
          redis-server /usr/local/etc/redis/redis.conf
     volumes:
      - /data/docker/redis/conf:/usr/local/etc/redis
      - /data/docker/redis/data:/data

在从机192.168.50.17的redis.conf下添加如下配置。

slaveof 192.168.50.45 6379

分别docker-compose up 启动redis,并分别用info Replication查看相关集群信息。

50.45机器:

 50.17机器:

 并且两台redis里面都没有 key 为8848的数据。

 向主机中set key为8848的数据,从机数据同步了,说明主从结构搭建成功。

 

 普通的主从结构在主机宕机的情况下,系统是不会进行主从切换的。

如下我们停掉主redis

 50.17的redis并没有晋升为主节点

 这也是主从架构的弊端,要想实现在主节点宕机的情况下从节点能够自动晋升为主节点的功能,那么就需要借助sentinel的监控了。

redis sentinel本质上说也是一台redis节点,但它只负责对系统中其他redis节点的监控,并不存储数据。

二、sentinel搭建

我们在50.45上进行sentinel的搭建,sentinel的compose文件如下:

version: "2.1"
services:
  redis:
     image: coral_ris:latest
     restart: unless-stopped
     ports:
      - "26379:26379"
     command: redis-sentinel /usr/local/etc/redis/sentinel.conf
     volumes:
      - ./sentinel.conf:/usr/local/etc/redis/sentinel.conf

由此也可以看出sentinel也是由reids镜像启动的redis服务。

我们在compose同级目录创建sentinel的配置文件,并编辑内容如下:

port 26379
dir "/tmp"
sentinel deny-scripts-reconfig yes
#指定监控的master地址
sentinel monitor mymaster 192.168.50.45 6379 1
#主密码,不设置的话不能动态切换
sentinel auth-pass mymaster SQL_Manager
sentinel config-epoch mymaster 1

分别启动主从redis后,启动sentinel的compose,可以看到监控的主从信息: 

然后停止50.45的redis,sentinel实现了主从的切换。

 50.17变成了主机。

 至此简单的一主一从一哨兵的模式就已经搭建完成,但这只是测试环境使用,在生产环境中至少也要部署两个哨兵互相监控来保证哨兵功能的健壮性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值