docker一键安装RocketMQ集群

文章描述了如何使用docker-compose创建一个RocketMQ集群,包括namesrv和broker服务,以及配置文件broker.conf的设置。此外,还提到了rocketmq-console的配置和启动,以及如何验证集群运行情况和通过控制台进行管理。
  • 创建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管理工具内容到这里 

### 如何在ARM架构上通过Docker安装配置RocketMQ #### 安装依赖项 对于ARM环境下的Linux发行版,如CentOS或其衍生版本,在开始构建RocketMQ镜像前需先安装必要的软件包。例如Maven,可以通过yum来完成这一操作。 ```bash yum install -y maven-3.0.5-17.el7.noarch [^3] ``` #### 获取并编译源码 如果打算从源码创建自定义的RocketMQ Docker镜像,则可以进入到`src/main/docker`目录下执行特定于ARM平台的编译指令: ```bash docker build -t rocketmq-console-ng:2.0 . ``` 这条命令会依据当前文件夹中的Dockerfile以及其他资源文件来构建一个新的名为`rocketmq-console-ng:2.0`的镜像[^1]。 然而,考虑到兼容性和便捷性的因素,推荐直接利用已经为aarch64架构优化过的现成官方或其他社区贡献者提供的预构建镜像。这不仅简化了部署流程而且减少了可能出现错误的风险。 #### 使用预构建镜像快速启动服务 为了更简便地设置RocketMQ集群,特别是针对Apple Silicon Macs (即采用M1系列处理器),可以直接拉取专为此类硬件设计好的容器映像,并借助`docker-compose.yml`文件一键搭建整个消息队列系统及其管理界面。 ```yaml version: '3' services: namesrv: image: apachemqtt/rocketmq-namesrv:aarch64-latest container_name: rmqnamesrv ports: - "9876:9876" broker: image: apachemqtt/rocketmq-broker:aarch64-latest container_name: rmqbroker depends_on: - namesrv environment: NAMESRV_ADDR: "rmqnamesrv:9876" ports: - "10911:10911" - "10909:10909" console: image: styletang/rocketmq-dashboard container_name: rmqconsole depends_on: - broker ports: - "8080:8080" ``` 上述YAML片段展示了如何定义三个相互关联的服务——Name Server、Broker以及Web控制面板。只需确保所选镜像标签适合目标CPU体系结构即可实现无缝运行[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值