美文网首页
记一次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