RocketMQ部署 docker-compose编排脚本

基于开源镜像,rocketmq 4.4.0版本

1. docker-compose.yml

version: '2.3'
services:
  namesrv-m:
    image: foxiswho/rocketmq:server-4.4.0
    restart: always
    ports:
      - 9876:9876
    volumes:
      - "/rocketmq/namesrv/master/logs:/opt/logs"
      - "/rocketmq/namesrv/master/store:/opt/store"
      - /etc/localtime:/etc/localtime:ro
    environment:
      JAVA_OPT_EXT: "-server -Xms300m -Xmx300m -Xmn150m"
  namesrv-s:
    image: foxiswho/rocketmq:server-4.4.0
    restart: always
    ports:
      - 9877:9876
    volumes:
      - "/rocketmq/namesrv/slave/logs:/opt/logs"
      - "/rocketmq/namesrv/slave/store:/opt/store"
      - /etc/localtime:/etc/localtime:ro
    environment:
      JAVA_OPT_EXT: "-server -Xms300m -Xmx300m -Xmn150m"
  broker-a-m:
    image: foxiswho/rocketmq:broker-4.4.0
    restart: always
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - "/rocketmq/broker/a-m/logs:/opt/logs"
      - "/rocketmq/broker/a-m/store:/opt/store"
      - "/rocketmq/broker/a-m/conf/broker-a.conf:/etc/rocketmq/broker.conf"
      - /etc/localtime:/etc/localtime:ro
    command: mqbroker -c /etc/rocketmq/broker.conf
    links:
      - namesrv-m:namesrv-m
      - namesrv-s:namesrv-s
    environment:
      JAVA_OPTS: " -Duser.home=/opt"
      #见rocketmq jvm内存默认配置 (jvm重复参数:后面生效,会覆盖)
      JAVA_OPT_EXT: "-server -Xms300m -Xmx300m -Xmn150m"
  broker-a-s:
    image: foxiswho/rocketmq:broker-4.4.0
    restart: always
    ports:
      - 10916:10909
      - 10915:10915
    volumes:
      - "/rocketmq/broker/a-s/logs:/opt/logs"
      - "/rocketmq/broker/a-s/store:/opt/store"
      - "/rocketmq/broker/a-s/conf/broker-b.conf:/etc/rocketmq/broker.conf"
      - /etc/localtime:/etc/localtime:ro
    command: mqbroker -c /etc/rocketmq/broker.conf
    links:
      - namesrv-m:namesrv-m
      - namesrv-s:namesrv-s
    environment:
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms300m -Xmx300m -Xmn150m"
  console:
    image: styletang/rocketmq-console-ng:latest
    restart: always
    ports:
      - 9990:8080
    volumes:
      - /etc/localtime:/etc/localtime:ro
    links:
      - namesrv-m:namesrv-m
      - namesrv-s:namesrv-s
    environment:
      JAVA_OPTS: -Drocketmq.config.namesrvAddr=namesrv-m:9876;namesrv-s:9877 -Dcom.rocketmq.sendMessageWithVIPChannel=false

2. 创建对应的挂载文件目录,如/rocketmq/broker/a-m, 见volumes下挂载路径

3. broker-a.conf 配置 

  线上版本部署在阿里云上,开发版本部署在小机房

brokerClusterName = dev-rocketmq-cluster
brokerName = broker-x
#0 表示 Master,>0 表示 Slave
brokerId = 0
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网
brokerIP1 = 172.16.1.11
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr=172.16.1.11:9876;172.16.1.11:9877
#Broker 对外服务的监听端口
listenPort = 10911
#删除文件时间点,默认凌晨 4点
deleteWhen = 04
#文件保留时间,默认 48 小时
fileReservedTime = 120
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

4. broker-b.conf 配置

brokerClusterName = dev-rocketmq-cluster
brokerName = broker-x
#0 表示 Master,>0 表示 Slave
brokerId = 1
#这个很有讲究 如果是正式环境 这里一定要填写内网地址(安全)
#如果是用于测试或者本地这里建议要填外网地址,因为你的本地代码是无法连接到阿里云内网,只能连接外网
brokerIP1 = 172.16.1.11
# 内网的(阿里云有内网IP和外网IP)
namesrvAddr=172.16.1.11:9876;172.16.1.11:9877
#Broker 对外服务的监听端口
listenPort = 10915
#删除文件时间点,默认凌晨 4点
deleteWhen = 04
#文件保留时间,默认 48 小时
fileReservedTime = 120
#Broker角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值