Docker-compose搭建单机版RocketMQ集群(双主双从)

一、下载rocketmq二进制文件并安装docker-compose

下载rocketmq镜像和rocketmq-console镜像

二、创建目录

mkdir -p /opt/rocketmq/namesvr1/{data, log}
mkdir -p /opt/rocketmq/broker-a/store/{logs, comitlog, consumequeue, index, checkpoint, abort}
mkdir -p /opt/rocketmq/broker-b-s/store/{logs, comitlog, consumequeue, index, checkpoint, abort}
mkdir -p /opt/rocketmq/namesvr2/{data, log}
mkdir -p /opt/rocketmq/broker-b/store/{logs, comitlog, consumequeue, index, checkpoint, abort}
mkdir -p /opt/rocketmq/broker-a-s/store/{logs, comitlog, consumequeue, index, checkpoint, abort}

三、配置文件

参照我的另一篇博客
RocketMQ broker配置参数

四、编排docker-compose.yml文件

version: '3.5'
services:
  namesrv1:
    image: rocketmqinc/rocketmq:4.7.1
    container_name: namesrv1
    ports:
      - 9876:9876
    volumes:
      - /opt/rocketmq/namesrv1/log:/opt/logs
      - /opt/rocketmq/namesrv1/data:/opt/store
    command: sh mqnamesrv
    networks:
      rocketmq:
        aliases:
          - namesrv1
  namesrv2:
    image: rocketmqinc/rocketmq:4.7.1
    container_name: namesrv2
    ports:
      - 9876:9876
    volumes:
      - /opt/rocketmq/namesrv2/log:/opt/logs
      - /opt/rocketmq/namesrv2/data:/opt/store
    command: sh mqnamesrv
    networks:
      rocketmq:
        aliases:
          - namesrv2
broker-a:
    image: rocketmqinc/rocketmq:4.7.1
    container_name: broker-a
    links:
      - namesrv1:namesrv1
      - namesrv2:namesrv2
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "namesrv1:9876"
      JAVA_OPTS: "-Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
    volumes:
      - /opt/rocketmq/broker-a/store:/opt/store
      - /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
    command: 
      sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-a.conf
    networks:
      rocketmq:
        aliases:
          - broker-a
broker-b-s:
    image: rocketmqinc/rocketmq:4.7.1
    container_name: broker-b-s
    links:
      - namesrv1:namesrv1
      - namesrv2:namesrv2
    ports:
      - 10919:10919
      - 10921:10921
      - 10922:10922
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "namesrv2:9877"
      JAVA_OPTS: "-Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
    volumes:
      - /opt/rocketmq/broker-b-s/store:/opt/store
      - /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
    command: 
      sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-b-s.conf
    networks:
      rocketmq:
        aliases:
          - broker-b-s
broker-b:
    image: rocketmqinc/rocketmq:4.7.1
    container_name: broker-b
    links:
      - namesrv1:namesrv1
      - namesrv2:namesrv2
    ports:
      - 11909:11909
      - 11911:11911
      - 11912:11912
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "namesrv2:9876"
      JAVA_OPTS: "-Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
    volumes:
      - /opt/rocketmq/broker-a/store:/opt/store
      - /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
    command: 
      sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-b.conf
    networks:
      rocketmq:
        aliases:
          - broker-b
broker-a-s:
    image: rocketmqinc/rocketmq:4.7.1
    container_name: broker-a-s
    links:
      - namesrv1:namesrv1
      - namesrv2:namesrv2
    ports:
      - 11919:11919
      - 11921:11921
      - 11922:11922
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "namesrv2:9877"
      JAVA_OPTS: "-Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
    volumes:
      - /opt/rocketmq/broker-a-s/store:/opt/store
      - /opt/volumes/rocketmq-conf/:/opt/rocketmq-4.7.1/conf/2m-2s-sync
    command: 
      sh mqbroker -c /opt/rocketmq-4.7.1/conf/2m-2s-sync/broker-a-s.conf
    networks:
      rocketmq:
        aliases:
          - broker-a-s
rocketmq-console:
    image: pangliang/rocketmq-console-ng
    container_name: rocketmq-console
    ports:
      - 10801:8080
    environment:
      JAVA_OPTS: 
        -Drocketmq.namesrv.addr=namesrv1:9876;namesrv2:9877 
        -Dcom.rocketmq.sendMessageWithVIPChannel=false
    networks:
      rocketmq:
        aliases:
          - rocketmq-console
networks:
  rocketmq:
    name: rocketmq
    driver: bridge

五、启动

docker-compose -f docker-compose.yml up -d
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值