docker一键安装RocketMQ集群

    创建docker-compose的docker-compose.yml启动脚本
#rocketmq集群
version: 3.3

services:
  rocketmq-namesrv-1:
    image: apache/rocketmq:5.1.0
    container_name: rocketmq-namesrv-1
    ports:
      - 9876:9876
    volumes:
      - /home/docker/rocketmq/logs/nameserver1:/home/rocketmq/logs/rocketmqlogs
    command: sh mqnamesrv
    networks:
      - rocketmq

  rocketmq-namesrv-2:
    image: apache/rocketmq:5.1.0
    container_name: rocketmq-namesrv-2
    ports:
      - 9877:9876
    volumes:
      - /home/docker/rocketmq/logs/nameserver2:/home/rocketmq/logs/rocketmqlogs
    command: sh mqnamesrv
    networks:
      - rocketmq

  rocketmq-broker-1:
    image: apache/rocketmq:5.1.0
    container_name: rocketmq-broker-1
    ports:
      - 10911:10911
    volumes:
      - /home/docker/rocketmq/logs/broker1:/home/rocketmq/logs/rocketmqlogs
      - /home/docker/rocketmq/conf/broker1/broker.conf:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "rocketmq-namesrv-1:9876;rocketmq-namesrv-2:9876"
      JAVA_OPTS: "-Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.1.0/conf/broker.conf autoCreateTopicEnable=true &
    depends_on:
      - rocketmq-namesrv-1
      - rocketmq-namesrv-2
    networks:
      - rocketmq

  rocketmq-broker-2:
    image: apache/rocketmq:5.1.0
    container_name: rocketmq-broker-2
    ports:
      - 10912:10911
    volumes:
      - /home/docker/rocketmq/logs/broker2:/home/rocketmq/logs/rocketmqlogs
      - /home/docker/rocketmq/conf/broker2/broker.conf:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "rocketmq-namesrv-1:9876;rocketmq-namesrv-2:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.1.0/conf/broker.conf autoCreateTopicEnable=true &
    depends_on:
      - rocketmq-namesrv-1
      - rocketmq-namesrv-2
    networks:
      - rocketmq

  rocketmq-broker-3:
    image: apache/rocketmq:5.1.0
    container_name: rocketmq-broker-3
    ports:
      - 10913:10911
    volumes:
      - /home/docker/rocketmq/logs/broker3:/home/rocketmq/logs/rocketmqlogs
      - /home/docker/rocketmq/conf/broker3/broker.conf:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf
    environment:
      TZ: Asia/Shanghai
      NAMESRV_ADDR: "rocketmq-namesrv-1:9876;rocketmq-namesrv-2:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms256m -Xmx256m -Xmn256m"
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.1.0/conf/broker.conf autoCreateTopicEnable=true &
    depends_on:
      - rocketmq-namesrv-1
      - rocketmq-namesrv-2
    networks:
      - rocketmq

  rocketmq-console:
    image: styletang/rocketmq-console-ng
    container_name: rocketmq-console
    ports:
      - 9091:8080
    environment:
      JAVA_OPTS: -Drocketmq.namesrv.addr=rocketmq-namesrv-1:9876;rocketmq-namesrv-2:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
    networks:
      - rocketmq
    depends_on:
      - rocketmq-broker-1
      - rocketmq-broker-2
      - rocketmq-broker-3

networks:
  rocketmq:
    driver: bridge

创建broker服务器配置文件broker.conf

本次我们搭建三台broker服务器,分别在宿主机卷映射目录下创建我们的配置文件

  1. /home/docker/rocketmq/conf/broker1/broker.conf
  2. /home/docker/rocketmq/conf/broker2/broker.conf
  3. /home/docker/rocketmq/conf/broker3/broker.conf

(1)创建配置文件目录,以broker1为例:

命令:mkdir -p /home/docker/rocketmq/conf/broker1

2)使用vi编辑器创建broker配置文件broker.conf,只需更改服务器名称即可

brokerClusterName = DefaultCluster
#broker名称
brokerName = rocketmq-broker-1
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

启动集群并验证

命令:docker-compose -p rocketmq up -d

验证集群

访问控制台:http//ip:9091

在Docker环境下一键安装RocketMQ集群及web管理工具内容到这里

经验分享 程序员 微信小程序 职场和发展