美文网首页
记一次Docker搭建redis-cluster+sentine

记一次Docker搭建redis-cluster+sentine

作者: just_like_you | 来源:发表于2019-07-17 17:43 被阅读0次

最近在开始一个小型的微服务工程,其中使用到redis技术栈,记录一下生产环境搭建集群+哨兵的过程

先强调一下,redis服务一定要设置密码,直接上docker-compose.yml配置文件内容

version: '3.1'
services:
  master:
    image: redis       ## 镜像
    container_name: redis-master
# masterauth  -> 表示和主节点连接时候需要校验的密码
    command: redis-server --requirepass custom_password  --masterauth custom_password
    ports:
      - "16379:6379"
    networks:
      - sentinel-master
    volumes:
      - ./data/redis-maser:/data
  slave1:
    image: redis                ## 镜像
    container_name: redis-slave-1
    ports:
      - "16380:6379"           ## 暴露端口
    command: redis-server --slaveof redis-master 6379 --requirepass custom_password --masterauth custom_password
    volumes:
      - ./data/slave1:/data
    depends_on:
      - master
    networks:
      - sentinel-master
  slave2:
    image: redis                ## 镜像
    container_name: redis-slave-2
    ports:
      - "16381:6379"           ## 暴露端口
    command: redis-server --slaveof redis-master 6379 --requirepass custom_password --masterauth custom_password
    volumes:
      - ./data/slave2:/data
    depends_on:
      - master
    networks:
      - sentinel-master
  sentinel1:
    image: redis       ## 镜像
    container_name: redis-sentinel-1
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    ports:
      - "26379:26379"
    volumes:
      - ./sentinel/sentinel1.conf:/usr/local/etc/redis/sentinel.conf
    networks:
      - sentinel-master
  sentinel2:
    image: redis                ## 镜像
    container_name: redis-sentinel-2
    ports:
      - "26380:26379"           
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
      - ./sentinel/sentinel2.conf:/usr/local/etc/redis/sentinel.conf
    networks:
      - sentinel-master
  sentinel3:
    image: redis                ## 镜像
    container_name: redis-sentinel-3
    ports:
      - "26381:26379"           
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
      - ./sentinel/sentinel3.conf:/usr/local/etc/redis/sentinel.conf
    networks:
      - sentinel-master
networks:
  sentinel-master:

其中对持久化数据做了数据卷,以及sentinel.conf配置文件内容如下

port 26379
dir /tmp
# mymaster -> 自定义主节点名称 ,然后是主节点redis (ip+port)
sentinel monitor mymaster 172.28.0.3 6379 2 
# custom_password -> 先前docker-compose.yml文件中定义的密码
sentinel auth-pass mymaster custom_password
# 节点30s没有返回心跳,则为不可用
sentinel down-after-milliseconds mymaster 30000
# 主节点宕机之后,从节点可重新配置的数量。
sentinel parallel-syncs mymaster 1
# 若10s还没有恢复则为宕机
sentinel failover-timeout mymaster 10000  
sentinel deny-scripts-reconfig yes

最后直接启动就行了

相关文章

网友评论

      本文标题:记一次Docker搭建redis-cluster+sentine

      本文链接:https://www.haomeiwen.com/subject/xquqlctx.html