Docker 搭建部署 RocketMQ 遇到broker 253问题

Docker 搭建部署 RocketMQ 遇到broker 253问题

  1. 官方文档:RocketMQ-Docker
  2. 官方docker镜像:This is the Git repo of the Docker Image for Apache RocketMQ and official docker hub repo
  3. 使用命令查询docker镜像docker search apache/rocketmq
  4. 拉取镜像docker pull apache/rocketmq:4.9.1(此处4.9.1为我下载的版本,不同自己改就好了)
  5. 根据流程操作
    • cd /home/rocketmq
    • mkdir -p data/broker/conf && cd data/broker/conf
    • vi broker.conf, 并写入
    brokerClusterName = DefaultCluster
    brokerName = broker-a
    brokerId = 0
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    
    #set `brokerIP1` if you want to set physical IP as broker IP.
    brokerIP1=10.10.0.10
    
    • 同理创建 mkdir -p data1/broker/conf && cd data1/broker/conf
    • vi broker.conf ,并写入
    brokerClusterName = DefaultCluster
    brokerName = broker-b
    brokerId = 0
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    
    #set `brokerIP1` if you want to set physical IP as broker IP.
    brokerIP1=10.10.0.10
    
    • 最后 cd /home/rocketmq,创建 docker-compose.yml 写入
    version: '2'
    services:
      #Service for nameserver
      namesrv:
        image: apache/rocketmq:4.9.1
        container_name: rmqnamesrv
        ports:
          - 9876:9876
        environment:
          - JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m
        volumes:
          - ./data/namesrv/logs:/home/rocketmq/logs
        command: sh mqnamesrv
    
      #Service for broker
### 单机环境下通过Docker部署RocketMQ #### 1. 准备工作 在开始之前,确保已经安装并配置好Docker环境。可以通过以下命令验证Docker是否正常运行: ```bash docker --version ``` 如果未安装Docker,则需先完成安装。 #### 2. 拉取必要的镜像 为了实现单机版的RocketMQ部署,需要拉取`namesrv`和`broker`的相关镜像。可以使用如下命令来获取官方推荐的镜像: ```bash docker pull foxiswho/rocketmq:server-4.7.0 # NameServer镜像 docker pull foxiswho/rocketmq:broker-4.7.0 # Broker镜像 ``` 此外,还需要一个用于监控管理的Web界面工具——RocketMQ Console。其对应的Docker镜像是`styletang/rocketmq-console-ng`: ```bash docker pull styletang/rocketmq-console-ng # RocketMQ Console镜像 ``` #### 3. 启动NameServer服务 创建并启动NameServer容器,这是整个消息队列的核心组件之一: ```bash docker run -d \ --name rocketmq-namesrv \ -p 9876:9876 \ foxiswho/rocketmq:server-4.7.0 ``` 上述命令会将容器内的端口`9876`映射到主机相同端口,并以后台模式运行该容器[^1]。 #### 4. 配置并启动Broker服务 接下来设置Broker服务并与已有的NameServer关联起来。首先定义一个简单的配置文件(可选),或者直接指定默认参数启动Broker实例: ```bash docker run -d \ --name rocketmq-broker \ -e NAMESRV_ADDR="localhost:9876" \ -p 10911:10911 \ -p 10909:10909 \ -v /your/local/path:/opt/data/logs \ foxiswho/rocketmq:broker-4.7.0 ``` 这里的关键在于设置了环境变量`NAMESRV_ADDR`指向本地正在运行的NameServer地址。 #### 5. 初始化Topic 一旦Broker成功上线后,就可以利用客户端API或其他方式创建所需的Topics。通常情况下,这一步可通过编写脚本或手动操作完成。 #### 6. 运行RocketMQ Console 最后一步是加载图形化管理平台以便于日常运维活动。执行下面语句即可快速搭建起Console应用: ```bash docker run -d \ --name rocketmq-console \ -e ROCKETMQ_NAMESRV_ADDR="localhost:9876" \ -p 8080:8080 \ styletang/rocketmq-console-ng ``` 访问浏览器中的`http://<host-ip>:8080`应该可以看到完整的Dashboard页面[^3]。 #### 7. 测试连接与功能验证 按照前述步骤完成后,建议尝试发送几条测试消息至目标Queue中去检验整体架构是否稳定可靠。具体做法参见相关文档说明[^4]。 --- ### 注意事项 - 如果遇到网络不通等问题,请确认防火墙规则以及SELinux策略是否允许相应流量穿越。 - 对于生产环境而言,务必考虑高可用性和持久化的存储方案设计。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值