M1 Docker 部署rocketmq

1、克隆镜像arm64镜像代码编译镜像,docker直接安装会报错所以选择编译

git clone https://github.com/apache/rocketmq-docker.git   

cd rocketmq-docker

 # 注意这里centos固定不要改 镜像版本可以改

sh build-image.sh 4.8.0 centos

 第二步:

拉取mqconsole镜像:

 candice0630/rocketmq-console-ng:2.0

第三步:

配置broker.conf

自己新建目录以及文件 /myapp/rocketmq/conf/broker.conf

配置如下:

需要修改

brokerIP1为你的ip,如果是云服务器则填写云服务器ip,本地部署填写你的网络ip不要填写127.0.0.1
# 所属集群名称,如果节点较多可以配置多个
terName = DefaultCluster

#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a

#0表示Master,大于0表示不同的
slave brokerId = 0

#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04

#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48

#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机 制;
brokerRole = ASYNC_MASTER

#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后 才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH

# 设置broker节点所在服务器的ip地址  这里写自己服务器
brokerIP1 = 192.168.156.130

#剩余磁盘比例
diskMaxUsedSpaceRatio=99

第四步编写docker-compose文件:

version: '3'
services:
  namesrv:
    image: apache/rocketmq:4.8.0
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    command: sh mqnamesrv
  broker:
    image: apache/rocketmq:4.8.0
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - /Users/jackson/myapp/rocketmq/conf/broker.conf:/home/rocketmq-4.8.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c /home/rocketmq-4.8.0/conf/broker.conf
    depends_on:
      - namesrv
  mqconsole:
    image: candice0630/rocketmq-console-ng:2.0
    container_name: rmqconsole
    ports:
      - 8080:8080
    environment:
      JAVA_OPTS: -Drocketmq.config.namesrvAddr=namesrv:9876 -Drocketmq.config.isVIPChannel=false
    depends_on:
      - namesrv

第五步:

部署:

docker-compose -f rmq.yml  up -d

 最后打开dashboard:

http://localhost:8080/#/

 

 

 

posted @ 2023-12-18 19:56  不带R的墨菲特  阅读(109)  评论(0编辑  收藏  举报