CentOS7 Docker安装RocketMQ完整教程

目录

前言

环境准备

系统要求

检查Docker状态

创建网络和目录

创建Docker网络

创建数据目录

安装NameServer

启动NameServer容器

参数说明

验证NameServer启动

安装Broker

创建Broker配置文件

启动Broker容器

参数说明

验证Broker启动

安装管理控制台

启动控制台容器

参数说明

访问控制台

验证安装

检查所有容器状态

测试消息发送和接收

进入Broker容器测试

常用操作命令

容器管理

查看日志

进入容器

故障排除

常见问题及解决方案

1. 容器启动失败

2. 无法访问管理控制台

3. 消息发送失败

4. 内存不足

5. 数据持久化问题

总结

关键要点回顾

下一步建议


前言

RocketMQ是阿里开源的一款高性能、高可靠的分布式消息中间件。本教程将手把手教你在CentOS7系统上使用Docker安装RocketMQ,包括NameServer、Broker和管理控制台的完整搭建过程。

环境准备

系统要求

  • CentOS7系统
  • Docker已安装并启动
  • 至少2GB内存
  • 至少5GB磁盘空间

检查Docker状态

# 检查Docker是否正常运行
docker version

# 如果Docker未启动,执行以下命令
sudo systemctl start docker
sudo systemctl enable docker

创建网络和目录

创建Docker网络

为了让RocketMQ各个组件能够相互通信,我们需要创建一个自定义网络:

# 创建名为rocketmq的网络
docker network create rocketmq

创建数据目录

在宿主机上创建用于存储RocketMQ数据的目录:

# 创建根目录
sudo mkdir -p /home/rocketmq

# 创建各组件的数据目录
sudo mkdir -p /home/rocketmq/namesrv
sudo mkdir -p /home/rocketmq/broker
sudo mkdir -p /home/rocketmq/broker/logs
sudo mkdir -p /home/rocketmq/broker/store

# 设置目录权限(重要!)
sudo chmod -R 777 /home/rocketmq

为什么要设置777权限? Docker容器内的进程可能使用不同的用户ID,设置777权限确保容器能够正常读写这些目录。

安装NameServer

NameServer是RocketMQ的注册中心,负责管理Broker的路由信息。

启动NameServer容器

docker run -d \
  --name rmqnamesrv \
  --network rocketmq \
  -p 9876:9876 \
  -v /home/rocketmq/namesrv:/home/rocketmq/namesrv \
  -e "MAX_POSSIBLE_HEAP=100000000" \
  apache/rocketmq:4.9.4 \
  sh mqnamesrv

参数说明

  • --name rmqnamesrv:容器名称
  • --network rocketmq:使用我们创建的网络
  • -p 9876:9876:端口映射,9876是NameServer默认端口
  • -v /home/rocketmq/namesrv:/home/rocketmq/namesrv:数据卷挂载
  • -e "MAX_POSSIBLE_HEAP=100000000":设置JVM堆内存大小
  • apache/rocketmq:4.9.4:使用的镜像版本
  • sh mqnamesrv:启动NameServer的命令

验证NameServer启动

# 查看容器状态
docker ps | grep rmqnamesrv

# 查看容器日志
docker logs rmqnamesrv

如果看到类似"The Name Server boot success"的日志,说明启动成功。

安装Broker

Broker是RocketMQ的核心组件,负责消息的存储和转发。

创建Broker配置文件

首先创建Broker的配置文件:

# 创建配置文件
sudo vi /home/rocketmq/broker/broker.conf

在文件中添加以下内容:

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

# 网络配置(重要!)
brokerIP1=你的服务器IP地址
namesrvAddr=rmqnamesrv:9876

# 存储配置
storePathRootDir=/home/rocketmq/broker/store
storePathCommitLog=/home/rocketmq/broker/store/commitlog
storePathConsumeQueue=/home/rocketmq/broker/store/consumequeue
storePathIndex=/home/rocketmq/broker/store/index

# 其他配置
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true

重要提醒: 请将brokerIP1=你的服务器IP地址</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值