首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在docker下安装rocketmq【docker-compose】方式安装

在docker下安装rocketmq【docker-compose】方式安装

作者头像
凯哥Java
发布于 2022-12-16 10:48:37
发布于 2022-12-16 10:48:37
9.1K01
代码可运行
举报
文章被收录于专栏:凯哥Java凯哥Java
运行总次数:1
代码可运行

最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。

准备工作

在搭建之前,我们需要做一些准备工作,这里我们需要使用 docker 搭建服务,所以需要提前安装 docker。此外,由于 rocketmq 需要部署 broker 与 nameserver ,考虑到分开部署比较麻烦,这里将会使用 docker-compose。

1:先创建rocketmq的booker配置文件

文件放置到 /opt/rocketmq/conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim borker.conf
# 消费模式,默认集群
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
# 清除未被消费消息时间,凌晨四点
deleteWhen = 04 
#消息保留时间
fileReservedTime = 48 
#broker角色,默认为异步MASTER
#刷盘策略,异步刷盘
brokerRole = ASYNC_MASTER
#broker文件地址
flushDiskType = ASYNC_FLUSH 
brokerIP1 = 192.168.1.2 
#是否允许自动创建topic
autoCreateTopicEnable=true

需要注意:borkerIp1需要写成自己服务的ip

在创建如下文件夹:/opt/rocketmq/logs/opt/rocketmq/store,最后创建 docker-compose.yml 文件,配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
  namesrv:
    image: rocketmqinc/rocketmq
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
    command: sh mqnamesrv
  broker:
    image: rocketmqinc/rocketmq
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
      - /opt/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - namesrv
    environment:
      - JAVA_HOME=/usr/lib/jvm/jre
  console:
    image: styletang/rocketmq-console-ng
    container_name: rocketmq-console-ng
    ports:
      - 8087:8080
    depends_on:
      - namesrv
    environment:
      - JAVA_OPTS= -Dlogging.level.root=info   -Drocketmq.namesrv.addr=rmqnamesrv:9876 
      - Dcom.rocketmq.sendMessageWithVIPChannel=false

注意点

这里需要注意 rocketmq broker 与 rokcetmq-console 都需要与 rokcetmq nameserver 连接,需要知道 nameserver ip。使用 docker-compose 之后,上面三个 docker 容器将会一起编排,可以直接使用容器名代替容器 ip,如这里 nameserver 容器名 rmqnamesrv。

配置完成之后,运行 docker-compose up 启动三个容器,启动成功后,访问 ip:8087,查看 mq 外部控制台,如果可以看到以下信息,rocketmq 服务启动成功。

因为rocker默认需要的xmn、xms、xmx都是比较大的。我们基于当前运行的:rocketmqinc/rocketmq 来把这三个参数设置小

进入到 rmqbroker也就是rocketmqinc/rocketmq容器中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker exec -it 9e874be84d55 bash

注意:修改容器id为自己的。

因为默认没有vim命令。安装vim

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install supervisor
yum clean all
yum makecache
yum -y install vim

进入到rocketmq-4.4.0中。

我们可以看到这个值很大的。修改-Xms2048m -Xmx2048m -Xmn10248m

修改runserver.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim runserver.sh

修改这三个值:

修改完成之后,我们基于这个修改的制作一个新镜像

这个命令是在宿主机中执行的。

制作新镜像命令模板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker commit -m“提交内容” -a“制作人” 容器id 镜像:TAG

实战命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker commit -m "broker xms xmx xmn update" -a "kaigejava" 9e874be84d55 rocketmqinc/rocketmq:xms256

我们重新查看制作的镜像:

我们把当前运行的容器都删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker rm -f $(docker ps -qa)

我们重新制作docker-compose.yml

新建一个文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir newcompose
cp ../docker-compose.yml docker-compose.yml

重新编辑compose文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
  namesrv:
    image: rocketmqinc/rocketmq
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
    command: sh mqnamesrv
  broker:
    image: rocketmqinc/rocketmq:xms256
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - /opt/rocketmq/logs:/home/rocketmq/logs
      - /opt/rocketmq/store:/home/rocketmq/store
      - /opt/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c /opt/rocketmq/conf/broker.conf
    depends_on:
      - namesrv
    environment:
      - JAVA_HOME=/usr/lib/jvm/jre
  console:
    image: styletang/rocketmq-console-ng
    container_name: rocketmq-console-ng
    ports:
      - 8087:8080
    depends_on:
      - namesrv
    environment:
      - JAVA_OPTS= -Dlogging.level.root=info   -Drocketmq.namesrv.addr=rmqnamesrv:9876 
      - Dcom.rocketmq.sendMessageWithVIPChannel=false

在新目录下重启docker-compose up -d

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
rocketmq 部署启动指南-Docker 版
最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。
andyxh
2019/09/05
4.9K0
rocketmq 部署启动指南-Docker 版
【非docker-compose】docker下安装rocketmq
docker下按照rocketmq。非compose安装。一步一步安装 一:编写broker.conf文件 文件位置:/opt/rocketmq/conf/ 下面这个是复杂版本。 # 所属集群名字 brokerClusterName=DefaultCluster # broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a, # 在 broker-b.properties 使用: broker-b brokerName=broker-
凯哥Java
2022/12/16
5630
5分钟不到!Docker搭建RocketMQ,史上最快教程!
最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。至于有多简单呢,在本机已有Docker环境的情况下只需要三步即可。
java进阶架构师
2020/04/26
19.5K1
5分钟不到!Docker搭建RocketMQ,史上最快教程!
Docker以挂载方式安装RocketMQ
如果你还没有安装 Docker,请先安装。可以参考官方文档 https://docs.docker.com/install/ 进行安装
关忆北.
2023/10/11
1.8K0
Docker以挂载方式安装RocketMQ
Docker部署RocketMQ4.x
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/10/30
9250
Docker部署RocketMQ4.x
Docker 安装 RocketMQ 并结合 SpringBoot 使用实例
在之前的《浅入浅出消息队列》一文中,我们了解了消息队列的作用、优缺点和使用场景,相信你对消息队列已经有了一个大致的概念,文末给自己埋的坑说日后会写一篇实战教程,正好现在实习结束了,也许久没有写实战教程了,于是这就来填坑了。
出其东门
2020/11/03
1.5K0
Docker 安装 RocketMQ 并结合 SpringBoot 使用实例
rocketmq通过docker安装
测试可用。最后的安装效果 [image.png] 我是使用-host模式的,可以使用其他模式。 本机安装 安装2个镜像 docker pull rocketmqinc/rocketmq docker pull styletang/rocketmq-console-ng  安装name-server(服务发现用的,类似zookeeper) 安装broker(队列服务器) docker run -d --net=host -p 9876:9876 -v /data0/soft_app/rocketmq/data
李子健
2022/04/16
1.5K0
【Rocketmq】通过 docker 快速搭建 rocketmq 环境
{RmHome} 要替换成你的宿主机想保存 MQ 的日志与数据的地方,通过 docker 的 -v 参数使用 volume 功能,把你本地的目录映射到容器内的目录上。否则所有数据都默认保存在容器运行时的内存中,重启之后就又回到最初的起点。
KIWI
2020/04/08
3.1K2
Docker系列之Apache RocketMQ安装教程
Docker系列之Apache RocketMQ安装教程 64bit JDK 1.8 Docker version 1.13.1 1、查找安装rocketmq [root@localhost ~]# docker search rocketmq INDEX NAME DESCRIPTION STARS OFFICIAL AUTOM
SmileNicky
2021/04/08
1.2K0
【RocketMQ】005-Docker 部署 RocketMQ
综上所述,该命令将创建一个名为"rocketmq_nameserver"的Docker容器,并在该容器中以后台模式运行RocketMQ的NameServer组件。容器会在后台持续运行,如果容器意外退出,Docker会自动重新启动容器。主机的9876端口映射到容器的9876端口,NameServer的日志和数据文件将存储在主机的相应目录中。通过设置环境变量,可以调整NameServer的堆内存大小。使用的是RocketMQ官方提供的镜像来运行容器。
訾博ZiBo
2025/01/06
5080
【RocketMQ】005-Docker 部署 RocketMQ
docker下安装rocketmq错误提示:/opt/rocketmq/conf/broker.conf (Is a directory)
在docker下安装rocketmq时候提示错误信息:/opt/rocketmq/conf/broker.conf (Is a directory)
凯哥Java
2022/12/16
2.1K1
docker下安装rocketmq错误提示:/opt/rocketmq/conf/broker.conf (Is a directory)
flink rocketmq消费和写入数据
通过yaml文件可知总共有三个组件:分别为nameserver, broker, web console
yiduwangkai
2021/11/24
5.6K0
flink rocketmq消费和写入数据
基础服务系列-Docker 安装RocketMq
Generate a RocketMQ docker image sh build-image.sh 4.5.0 alpine 等几分钟。。。。 Successfully built cce61e4de59d Successfully tagged apacherocketmq/rocketmq:4.5.0-alpine docker images REPOSITORY TAG IMAGE ID CREATED
用户2146693
2022/05/06
5360
基础服务系列-Docker 安装RocketMq
Docker Compose 一键快速部署 RocketMQ
Apache RocketMQ是一个开源的分布式消息中间件系统,最初由阿里巴巴开发并贡献给Apache软件基金会。RocketMQ提供了高性能、高可靠性、高扩展性和低延迟的消息传递服务,适用于构建大规模分布式系统中的消息通信和数据同步。
JEECG
2024/06/28
1.4K0
RocketMQ 和 RabbitMQ 的比较以及 RocketMQ 的使用
消息队列在项目中会经常用到,目前我们使用的是 RabbitMQ,但在 Java 技术栈下,RocketMQ 使用的比较多。下面比较下 RabbitMQ 和 RocketMQ。 RabbitMQ 和 RocketMQ 对比 1、设计理念和架构
郑子铭
2025/02/25
1.3K0
RocketMQ 和 RabbitMQ 的比较以及 RocketMQ 的使用
RocketMQ实战教程之RocketMQ安装
1、启动NameServer 安装完RocketMQ包后,我们启动NameServer
全干程序员demo
2024/05/27
3750
RocketMQ实战教程之RocketMQ安装
【RocketMq】 RocketMq 4.9.4 Windows-docker 部署
注意个人使用了4.9.4的Rocketmq版本进行学习部署使用。因为windows上使用docker部署不同版本的RockerMq可能会有不同的情况,这里仅保证4.9.4的版本可以正确运行。
阿东
2022/11/10
2.9K1
【RocketMq】 RocketMq 4.9.4 Windows-docker 部署
Docker安装RockerMQ消息队列
console是RockerMQ的扩展组件,console组件提供了图形化的界面,便于我们管理和监控RockerMQ。
程序员云帆哥
2023/02/10
5010
Docker安装RockerMQ消息队列
docker部署RocketMQ
果冻程序
2024/06/06
3880
CVE-2023-33246:Apache RocketMQ远程代码执行漏洞
RocketMQ是一个分布式消息和流数据平台,具有低延迟、高性能、高可靠性、万亿级容量和灵活的可扩展性。
Timeline Sec
2023/08/22
3.5K0
CVE-2023-33246:Apache RocketMQ远程代码执行漏洞
相关推荐
rocketmq 部署启动指南-Docker 版
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档