docker-compose配置rocketmq5.1.4

在学习roketmq期间,先自己搭建一套rocketmq的运行环境至关重要!

因此就有了以下这篇博客

先安装docker和docker-compose,这里认为你已经会了

根据需要,先创建一个网络

docker network create rockermq

编写docker-compose.yml文件

复制代码
version: "3"
networks:
  default:
      # 网络
    name: rockermq
    external: true
volumes:
  # 具名挂载数据卷:nameserver配置文件
  namesrv_conf:
  # 具名挂载数据卷:broker配置文件
  broker_conf: 
services:
  #Service for nameserver
  namesrv:
    container_name: RocketMQ-namesrv
    # 使用apache的镜像(这个镜像实际上没有做太多优化,直接jdk8+rocketmq5.1.4)
    image: apache/rocketmq:5.1.4
    # 启动命令
    command: sh mqnamesrv
    # 容器自动重启
    restart: always
    # 端口暴露
    ports:
      # 默认端口9876
      - 9876:9876
    environment:
      # 按照jdk8方式配置内存大小,看自己需求,这里只是为了学习如何使用rocketmq,因此配置的内存小了一下,不过够用了
      - JAVA_OPT_EXT=-Xms512m -Xmx2048m 
    volumes:
      # 使用具名挂在方式,将rocketmq的nameserver配置挂载出来
      - namesrv_conf:/home/rocketmq/rocketmq-5.1.4/conf


  #Service for broker
  # 部署一个broker即可,学习阶段,先跑起来,后期可以搭建HA环境
  broker:
    container_name: RocketMQ-broker
    depends_on:
      # 保证先启动了nameserver后,再启动broker
      - namesrv
    image: apache/rocketmq:5.1.4
    # 这里需要指定broker.conf文件,目的是配置ip,由于我们使用docker容器技术,broker向nameserver注册的时候,使用了容器中的内网ip,这个是访问不到的,因此,需要配置成自己的公网ip
    command: sh mqbroker -n namesrv:9876 -c /home/rocketmq/rocketmq-5.1.4/conf/broker.conf
    restart: always
    ports:
      - 10909:10909
      # 用于通信的 Broker 端口,这个最重要
      - 10911:10911
      - 10912:10912
    environment:
      # 注册到的nameserver地址
      - NAMESRV_ADDR=namesrv:9876
      # 按照jdk8方式配置内存大小
      - JAVA_OPT_EXT=-Xms512m -Xmx2048m
    volumes:
      # 将broker的配置文件挂载出来
      - broker_conf:/home/rocketmq/rocketmq-5.1.4/conf
  # 图形化界面
  dashboard:
    image: apacherocketmq/rocketmq-dashboard:latest
    container_name: RocketMQ-dashboard
    ports:
      # 访问端口
      - 8080:8080
    environment:
     - JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876  
    depends_on:
      # 保证broker先启动起来
      - broker
复制代码

接下来,找到broker具名挂载出来的broker.conf文件,添加公网ip,这样,我们访问docker容器中的nameserver,nameserver给我们返回的broker ip才会是公网ip

# 添加一行
brokerIP1=<公网ip>

重启容器,保证broker.conf文件配置被加载

 
posted @   jamesKing^  阅读(854)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示