arm版mac使用docker部署rocketMQ

这篇具有很好参考价值的文章主要介绍了arm版mac使用docker部署rocketMQ。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

最近在做一些关于rocketMQ社区工作。由于需要测试多个版本的兼容性,公司开发环境只有一个版本集群,于是想使用docker部署测试。官方并没有提供arm版本的镜像,docker hub上下载了几个都有问题。
索性rockeMQ社区提供多个边缘组件,其中有单独的项目用于编译镜像。于是自己琢磨琢磨重新编译镜像。

教程均适用于任何X86和arm 64架构机器

二、相关组件

rockertMQ部署使用三个组件

  • nameServer 负责管理broker节点和console交互数据
  • broker 数据存储节点
  • dashboard 控制台用于管理集群

其中nameServer和broker使用同一镜像部署。
dashboard使用单独镜像部署

三、构建rocketMQ镜像

1、拉取代码

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

2、构建镜像

进入image-build目录,执行编译命令

cd image-build
sh build-image.sh 4.8.0 alpine

按需选择自己所需编辑的rockertMQ版本和基础镜像
支持的版本和镜像名见 README.md
编译成功后的镜像
arm版mac使用docker部署rocketMQ

四、构建dashboard镜像

1、拉取代码

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

2、修改配置(可选)

项目根目录下 application.yml 文件,包含项目各种配置项。

  • application.yml
    删除namesrvAddrs下默认地址。

arm版mac使用docker部署rocketMQ
如果不删除,即使启动dashboard时指定了namesrv地址,在spring初始化配置文件的时候还是会被覆盖掉,最终连接127.0.0.1:9876。
当然不改默认配置,也可以在dashboard的ops页下手动添加namesrv地址。
看过源码个人认为这边是个实现上的bug,指定值竟然会被配置值覆盖==。那指定值的意义又何在?
arm版mac使用docker部署rocketMQ

3、编译代码

mvn clean package -Dmaven.test.skip=true

将target目录下生成的jar包复制至src/main/docker目录下

4、构建镜像

进入src/main/docker执行如下编译命令

docker build -t rocketmq-console-ng:2.0 .

生成如下镜像
arm版mac使用docker部署rocketMQ

五、镜像编排

1、broker.conf

需要使用本地文件覆盖镜像中broker配置文件,指定broker机器ip地址。否则namesrv无法纳管broker机器。
新建broker.conf文件,写入以下内容

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.2.6

brokerIP1需要指定为本机ip,并非容器ip或主机名
mac端执行ifconfig en0
arm版mac使用docker部署rocketMQ
或者wifi设置页
arm版mac使用docker部署rocketMQ

2、docker-compose.yml

新建docker-compose.yml文件,写入如下内容

version: '3'
services:
  namesrv:
    image: apache/rocketmq:4.8.0-alpine 
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    command: sh mqnamesrv
  broker:
    image: apache/rocketmq:4.8.0-alpine 
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
 # 使用本地配置文件覆盖broker容器中文件
    volumes:
      - {此处替换为本地broker.conf绝对路径}:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf
    depends_on:
      - namesrv
  mqconsole:
    image: rocketmq-console-ng:2.0
    container_name: rmqconsole
    ports:
      - 8080:8080
 # dashboard启动时需要指定连接的namesrv地址,和上面broker配置一样同样是本机ip
    environment:
      JAVA_OPTS: -Drocketmq.config.namesrvAddr=192.168.2.6:9876 -Drocketmq.config.isVIPChannel=false
    depends_on:
      - namesrv

六、启动容器

arm版mac使用docker部署rocketMQ

docker-compose -f docker-compose.yml up -d

查看容器状态
arm版mac使用docker部署rocketMQ
访问localhost:8080
arm版mac使用docker部署rocketMQ文章来源地址https://www.toymoban.com/news/detail-493786.html

到了这里,关于arm版mac使用docker部署rocketMQ的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RocketMQ】005-Docker 部署 RocketMQ

    MQ 镜像 可视化平台镜像 创建 nameserver 挂载目录 创建 broker 目录 创建 broker 配置文件目录 目录:/home/zibo/docker/rocketmq/data/conf vim broker.conf 启动 nameserver docker run : 这是Docker命令,用于创建和管理Docker容器。 -d : 这是一个选项,指示Docker在后台运行容器。 --restart=always : 这是一个

    2024年02月16日
    浏览(31)
  • MAC M1上docker rocketmq简单环境搭建和代码

    工作了这么多年,rocketmq还没有用过,由于现在的工作中涉及到了,周六吃完午饭就开始搞,结果到现在3点钟才把环境弄好,测试代码搞起。 整个流程分成两步 安装简单的rocket环境 起springboot项目测试 参考文章: https://blog.csdn.net/baidu_33256174/article/details/129599300 1. 制作rocket

    2024年02月15日
    浏览(29)
  • RocketMQ Docker部署

    1. 镜像制作前准备 1.1 clone rocketmq-docker项目的代码 执行上面命令克隆下来这项目的代码。 2. 构建镜像 这里需要构建的镜像有两个 rocketmq-dashboard镜像(web控制台) rocketmq镜像(NameSrv和Broker) 2.1 rocketmq镜像构建 原理:通过版本和BASE-IMAGE(支持centos, alpine)来判断是使用 Dockerfile-centos文

    2024年02月11日
    浏览(23)
  • Apache RocketMQ docker单机部署以及docker高可用部署方案

    Apache RocketMQ可以通过Docker进行单机部署和高可用部署。下面我将为你提供两种方案的概述。 单机部署方案 : 1、拉取RocketMQ镜像: 首先,从Docker Hub上拉取RocketMQ官方提供的镜像。你可以使用以下命令来拉取最新版本的RocketMQ镜像: 2、创建网络: 在Docker中创建一个网络,用于

    2024年02月16日
    浏览(27)
  • 记录MacOS M1芯片(ARM64架构)使用docker-compose方式部署Kafka

    amd架构的镜像非常好找,但由于博主是arm64架构的机器,所以一些开发环境非常的难找,所以在这里记录一下arm64环境部署Kafka。 准备 docker-compose.yml 文件: 博主的虚拟机IP是192.168.153.131,注意替换你的服务器IP。 这个文件部署了zookeeper、kakfa以及kafkaUI 在docker-compose.yml目录下,

    2024年02月15日
    浏览(46)
  • 苹果Mac电脑怎么显示/取消显示最近使用的文档记录

    Mac可以隐藏最近使用的文档吗?有些小伙伴的mac打开finder会自动打开“ 最近使用 ”项目,将最近所有打开的图片,txt文档等都一一展现出来,没有任何隐私可言。那么该如何在 finder设置不显示最近文档 呢?下面小编就介绍一下该如何关闭最近使用这项功能。 1、在左上角,

    2024年02月10日
    浏览(87)
  • docker 部署一个单节点的rocketmq

    拉取镜像 创建数据挂载目录 启动NameServer 编辑broker配置文件 启动broker 启动web端控制rocketmq 通过浏览器进行访问:http://192.168.214.134:8080/

    2024年02月15日
    浏览(28)
  • 常用环境部署(七)——Docker安装RocketMQ

    (1)拉取镜像 (2)创建一个数据目录 即创建一个namesrv数据存储路径 (3)构建namesrv容器  (4)参数说明 参数 说明 -d 以守护进程的方式启动 - -restart=always docker重启时候容器自动重启 - -name rmqnamesrv 把容器的名字设置为rmqnamesrv -p 9876:9876 把容器内的端口9876挂载到宿主机98

    2023年04月14日
    浏览(35)
  • RocketMQ部署 Linux方式和Docker方式

    准备一台Linux机器,部署单master rocketmq节点 系统 ip 角色 模式 CENTOS 10.4.7.126 Nameserver,broker Master 1. 配置JDK rocketmq运行需要依赖jdk,安装步骤略。 2. 下载和配置 从官网下载安装包 https://rocketmq.apache.org/zh/download/ ,并上传到CENTOS系统中,并进行解压 修改rocketmq启动所需配置文件

    2024年02月12日
    浏览(28)
  • docker部署RocketMQ(外网IP)10911链接失败

    在此步骤对接JAVA项目可能会出现外网连接MQ(connect:xxx.xxx.xxx.xxx:10911)异常 指定配置文件 配置文件内容如下: 解决办法: 如果上述方法仍未解决 进入容器使用linux命令查找所有broker配置文件全部修改为以上配置文件样式并重启容器 修改文件内容

    2024年02月14日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包