美文网首页
docker单机部署rocketmq主主集群

docker单机部署rocketmq主主集群

作者: designer | 来源:发表于2020-07-29 14:37 被阅读0次

    在docker部署单机版的基础上,部署集群,都是基于内网ip部署

    创建几个目录

    mkdir -p  /opt/rocketmq/logs/nameserver-a
    mkdir -p  /opt/rocketmq/logs/nameserver-b
    mkdir -p /opt/rocketmq/store/nameserver-a
    mkdir -p /opt/rocketmq/store/nameserver-b
    mkdir -p /opt/rocketmq/logs/broker-a
    mkdir -p /opt/rocketmq/logs/broker-b
    mkdir -p /opt/rocketmq/store/broker-a
    mkdir -p /opt/rocketmq/store/broker-b
    mkdir -p /home/rocketmq/broker-a/
    mkdir -p /home/rocketmq/broker-b/
    

    编写broker.conf
    broker-a.conf

    brokerClusterName = rocketmq-cluster
    brokerName = broker-a
    brokerId = 0
    # 这个ip配置为内网访问,让mq只能内网访问,不配置默认为内网
    #brokerIP1 = xxxxx
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    # 内网的
    namesrvAddr=172.17.0.1:9876;172.17.0.1:9877
    autoCreateTopicEnable=true
    #Broker 对外服务的监听端口,
    listenPort = 11911
    #Broker角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    #- SLAVE
    brokerRole=ASYNC_MASTER
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    flushDiskType=ASYNC_FLUSH
    

    broker-b.conf

    brokerClusterName = rocketmq-cluster
    brokerName = broker-b
    brokerId = 0
    # 这个ip配置为内网访问,让mq只能内网访问,不配置默认为内网
    #brokerIP1 = xxxxx
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    # 内网的
    namesrvAddr=172.17.0.1:9876;172.17.0.1:9877
    autoCreateTopicEnable=true
    #Broker 对外服务的监听端口,
    listenPort = 11911
    #Broker角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    #- SLAVE
    brokerRole=ASYNC_MASTER
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    flushDiskType=ASYNC_FLUSH
    

    编写docker-compose.yml文件
    多节点部署rocketmq集群,把下边的 nameserver和broker拆出来部署即可

    version: '3.5'
    services:
      rmqnamesrv-a:
        image: rocketmqinc/rocketmq:4.3.0
        container_name: rmqnamesrv-a
        ports:
          - 9876:9876
        volumes:
          - /opt/rocketmq/logs/nameserver-a:/opt/logs
          - /opt/rocketmq/store/nameserver-a:/opt/store
        command: sh mqnamesrv
        networks:
            rmq:
              aliases:
                - rmqnamesrv-a
    
      rmqnamesrv-b:
        image: rocketmqinc/rocketmq:4.3.0
        container_name: rmqnamesrv-b
        ports:
          - 9877:9876
        volumes:
          - /opt/rocketmq/logs/nameserver-b:/opt/logs
          - /opt/rocketmq/store/nameserver-b:/opt/store
        command: sh mqnamesrv
        networks:
            rmq:
              aliases:
                - rmqnamesrv-b
    
      rmqbroker-a:
        image: rocketmqinc/rocketmq:4.3.0
        container_name: rmqbroker-a
        ports:
          - 11909:10909
          - 11911:10911
        volumes:
          - /opt/rocketmq/logs/broker-a:/opt/logs
          - /opt/rocketmq/store/broker-a:/opt/store
          - /home/rocketmq/broker-a/broker-a.conf:/opt/rocketmq-4.3.0/conf/broker.conf 
          #- /home/rocketmq/broker-a/broker.conf:/opt/rocketmq-4.3.0/conf/broker.conf
        environment:
            TZ: Asia/Shanghai
            NAMESRV_ADDR: "rmqnamesrv-a:9876"
            JAVA_OPTS: " -Duser.home=/opt"
            JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
        command: sh mqbroker -c /opt/rocketmq-4.3.0/conf/broker.conf autoCreateTopicEnable=true &
        links:
          - rmqnamesrv-a:rmqnamesrv-a
          - rmqnamesrv-b:rmqnamesrv-b
        networks:
          rmq:
            aliases:
              - rmqbroker-a
    
      rmqbroker-b:
        image: rocketmqinc/rocketmq:4.3.0
        container_name: rmqbroker-b
        ports:
          - 10909:10909
          - 10911:10911
        volumes:
          - /opt/rocketmq/logs/broker-b:/opt/logs
          - /opt/rocketmq/store/broker-b:/opt/store
          - /home/rocketmq/broker-b/broker-b.conf:/opt/rocketmq-4.3.0/conf/broker.conf 
          #- /home/rocketmq/broker-b:/opt/rocketmq-4.3.0/conf
        environment:
            TZ: Asia/Shanghai
            NAMESRV_ADDR: "rmqnamesrv-b:9876"
            JAVA_OPTS: " -Duser.home=/opt"
            JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
        command: sh mqbroker -c /opt/rocketmq-4.3.0/conf/broker.conf autoCreateTopicEnable=true &
        links:
          - rmqnamesrv-a:rmqnamesrv-a
          - rmqnamesrv-b:rmqnamesrv-b
        networks:
          rmq:
            aliases:
              - rmqbroker-b
      rmqconsole:
        image: styletang/rocketmq-console-ng
        container_name: rmqconsole
        ports:
          - 9001:8080
        environment:
            JAVA_OPTS: -Drocketmq.namesrv.addr=rmqnamesrv-a:9876;rmqnamesrv-b:9877 -Dcom.rocketmq.sendMessageWithVIPChannel=false
        networks:
          rmq:
            aliases:
              - rmqconsole
    networks:
      rmq:
        name: rmq
        driver: bridge
    

    docker-compose -f docker-compose.yml up -d

    java端的配置文件添加地址 namesrvAddr: ip:9876;ip:9877

    相关文章

      网友评论

          本文标题:docker单机部署rocketmq主主集群

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