欢迎光临易鼎网
详情描述

1. 快速安装RocketMQ 5.x

方法一:使用官方镜像(推荐)

# 创建网络(如果还没创建)
docker network create rocketmq-network

# 启动NameServer
docker run -d \
  --name rmqnamesrv \
  --net rocketmq-network \
  -p 9876:9876 \
  -v /data/rocketmq/namesrv/logs:/root/logs \
  -v /data/rocketmq/namesrv/store:/root/store \
  -e "MAX_POSSIBLE_HEAP=256m" \
  apacherocketmq/rocketmq:5.1.4 \
  sh mqnamesrv

# 启动Broker
docker run -d \
  --name rmqbroker \
  --net rocketmq-network \
  -p 10911:10911 \
  -p 10909:10909 \
  -v /data/rocketmq/broker/logs:/root/logs \
  -v /data/rocketmq/broker/store:/root/store \
  -v /data/rocketmq/broker/conf:/home/rocketmq/rocketmq-5.1.4/conf \
  -e "NAMESRV_ADDR=rmqnamesrv:9876" \
  -e "MAX_POSSIBLE_HEAP=512m" \
  -e "JAVA_OPTS=-Duser.home=/home/rocketmq" \
  apacherocketmq/rocketmq:5.1.4 \
  sh mqbroker -c /home/rocketmq/rocketmq-5.1.4/conf/broker.conf

方法二:使用Docker Compose(更简洁)

创建 docker-compose.yml 文件:

version: '3.8'

services:
  namesrv:
    image: apacherocketmq/rocketmq:5.1.4
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./data/namesrv/logs:/root/logs
      - ./data/namesrv/store:/root/store
    environment:
      - MAX_POSSIBLE_HEAP=256m
    command: sh mqnamesrv
    networks:
      - rocketmq-net

  broker:
    image: apacherocketmq/rocketmq:5.1.4
    container_name: rmqbroker
    ports:
      - 10911:10911
      - 10909:10909
    volumes:
      - ./data/broker/logs:/root/logs
      - ./data/broker/store:/root/store
      - ./broker.conf:/home/rocketmq/rocketmq-5.1.4/conf/broker.conf
    environment:
      - NAMESRV_ADDR=namesrv:9876
      - MAX_POSSIBLE_HEAP=512m
      - JAVA_OPTS=-Duser.home=/home/rocketmq
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.1.4/conf/broker.conf
    depends_on:
      - namesrv
    networks:
      - rocketmq-net

  proxy:
    image: apacherocketmq/rocketmq:5.1.4
    container_name: rmqproxy
    ports:
      - 8081:8081
    environment:
      - NAMESRV_ADDR=namesrv:9876
    depends_on:
      - namesrv
      - broker
    command: sh mqproxy
    networks:
      - rocketmq-net

networks:
  rocketmq-net:
    driver: bridge

创建Broker配置文件 broker.conf

# Broker配置
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

# Broker监听地址(重要:需要配置为容器对外IP或0.0.0.0)
listenPort=10911
brokerIP1=你的宿主机IP  # 或者 0.0.0.0
brokerIP2=你的宿主机IP  # 或者 0.0.0.0

# 存储路径
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumeQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index
storeCheckpoint=/home/rocketmq/store/checkpoint
abortFile=/home/rocketmq/store/abort

运行:

# 启动所有服务
docker-compose up -d

# 查看状态
docker-compose ps

2. 安装Dashboard(管理控制台)

# 下载最新版Dashboard
docker pull apacherocketmq/rocketmq-dashboard:latest

# 运行Dashboard
docker run -d \
  --name rocketmq-dashboard \
  --net rocketmq-network \
  -p 8080:8080 \
  -e "JAVA_OPTS=-Xmx256m -Xms256m" \
  -e "ROCKETMQ_CONFIG_NAMESRVADDR=rmqnamesrv:9876" \
  apacherocketmq/rocketmq-dashboard:latest

3. 完整集群部署(1主2从)

创建 docker-compose-cluster.yml

version: '3.8'

services:
  namesrv1:
    image: apacherocketmq/rocketmq:5.1.4
    container_name: rmqnamesrv1
    ports:
      - 9876:9876
    command: sh mqnamesrv
    networks:
      - rmq-cluster

  broker-master:
    image: apacherocketmq/rocketmq:5.1.4
    container_name: rmqbroker-master
    ports:
      - 10911:10911
    volumes:
      - ./conf/broker-master.conf:/opt/rocketmq/conf/broker.conf
    environment:
      - NAMESRV_ADDR=namesrv1:9876
    command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - namesrv1
    networks:
      - rmq-cluster

  broker-slave1:
    image: apacherocketmq/rocketmq:5.1.4
    container_name: rmqbroker-slave1
    ports:
      - 10912:10911
    volumes:
      - ./conf/broker-slave1.conf:/opt/rocketmq/conf/broker.conf
    environment:
      - NAMESRV_ADDR=namesrv1:9876
    command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - namesrv1
    networks:
      - rmq-cluster

  proxy:
    image: apacherocketmq/rocketmq:5.1.4
    container_name: rmqproxy
    ports:
      - 8081:8081
    environment:
      - NAMESRV_ADDR=namesrv1:9876
    command: sh mqproxy
    depends_on:
      - broker-master
      - broker-slave1
    networks:
      - rmq-cluster

networks:
  rmq-cluster:
    driver: bridge

4. 验证安装

# 检查容器运行状态
docker ps

# 查看NameServer日志
docker logs rmqnamesrv

# 查看Broker日志
docker logs rmqbroker

# 进入容器测试
docker exec -it rmqbroker bash

# 在容器内创建Topic
sh mqadmin updateTopic -n namesrv:9876 -t TestTopic -c DefaultCluster

5. 常用命令

# 停止服务
docker stop rmqbroker rmqnamesrv

# 删除容器
docker rm rmqbroker rmqnamesrv

# 查看磁盘使用情况
docker exec rmqbroker sh mqadmin statsAll -n namesrv:9876

# 检查集群状态
docker exec rmqbroker sh mqadmin clusterList -n namesrv:9876

注意事项

版本选择:建议使用最新稳定版,如 5.1.4 网络配置:确保容器间网络互通 存储持久化:重要数据要挂载宿主机目录 内存配置:根据实际需求调整JVM内存参数 生产环境:建议使用完整的集群部署方案

这样你就可以在Docker中成功运行RocketMQ 5.x了。Proxy模式是5.x的新特性,提供了更灵活的消息路由能力。

相关帖子
销户公积金账户影响贷款?专业知识解析背后的规则与后果
销户公积金账户影响贷款?专业知识解析背后的规则与后果
小区物业以安全为由拒绝安装充电桩,业主应该如何合理沟通与协商?
小区物业以安全为由拒绝安装充电桩,业主应该如何合理沟通与协商?
考取一个国际通用的技能认证,在国内求职市场的实际效用大吗?
考取一个国际通用的技能认证,在国内求职市场的实际效用大吗?
2026年新育儿补贴政策详解,普通家庭可申请哪些项目?
2026年新育儿补贴政策详解,普通家庭可申请哪些项目?
数据线收纳的哲学:探讨如何整理生活中那些“剪不断理还乱”的连线。
数据线收纳的哲学:探讨如何整理生活中那些“剪不断理还乱”的连线。
在异地出差时突然发现医保卡密码想不起来,能不能走跨省通办渠道远程处理呢?
在异地出差时突然发现医保卡密码想不起来,能不能走跨省通办渠道远程处理呢?
林芝市网站优化服务-苹果app开发,优秀开发团队
林芝市网站优化服务-苹果app开发,优秀开发团队
镇江市注销公司服务-公司注册代办电话
镇江市注销公司服务-公司注册代办电话
万宁市ISO22000食品安全管理体系认证-公司注册,快速办理,不成功不收费
万宁市ISO22000食品安全管理体系认证-公司注册,快速办理,不成功不收费
昆明市记账公司代理|本地财税公司,专业靠谱
昆明市记账公司代理|本地财税公司,专业靠谱
株洲市危险化学品经营许可证代办电话|企业注册代办公司
株洲市危险化学品经营许可证代办电话|企业注册代办公司
汕头市python开源cms二次开发-android软件开发,提供一站式建站服务
汕头市python开源cms二次开发-android软件开发,提供一站式建站服务
贵阳市记账公司电话|正规财税公司,费用透明
贵阳市记账公司电话|正规财税公司,费用透明
社区宠物公约的执行,主要依靠居民自觉还是物业管理方的监督劝导?
社区宠物公约的执行,主要依靠居民自觉还是物业管理方的监督劝导?
武汉市公司异常解除代办|中小微企业注册
武汉市公司异常解除代办|中小微企业注册
选择什么样的小麦品种,可以更好地适应收获期可能出现的多雨天气?
选择什么样的小麦品种,可以更好地适应收获期可能出现的多雨天气?
重庆市网站设计公司-做网站,收费透明
重庆市网站设计公司-做网站,收费透明
非婚生育或符合政策的其他生育情况,能否正常享受生育津贴?
非婚生育或符合政策的其他生育情况,能否正常享受生育津贴?
文昌市专业代理记账-装修公司注册,专业代办服务,收费透明
文昌市专业代理记账-装修公司注册,专业代办服务,收费透明