docker安装rockerMQ

news2025/7/18 11:33:26

参考Docker部署RocketMQ5.x (单机部署+配置参数详解+不使用docker-compose直接部署)_rocketmq不推荐用docker部署-CSDN博客

 镜像拉取

镜像地址: https://hub.docker.com/r/apache/rocketmq/tags
我在部署的时候最新发行版是5.1.0可以根据需求自行选择一个5.x的版本,部署流程不会有太大改变。

docker pull apache/rocketmq:5.1.0

 

部署NameServer

NameServer是一个简单的 Topic 路由注册中心,支持 Topic、Broker 的动态注册与发现,几乎无状态节点,因此可集群部署,节点之间无任何信息同步,所谓的集群部署和单机部署其实是一样的,需要多个NameServer保持高可用只需独立部署即可。

创建挂载文件夹

或者 

mkdir -p ./nameserver/logs
mkdir -p ./nameserver/bin

设置权限:如果不设置会导致NameServer容器内部无法写日志文件 

chmod 777 -R /opt/service/slhy-hywl-rocketmq-docker/nameserver/*

 

参考:

创建挂载文件 

NameServer启动脚本中有一个自动计算最大堆内存和新生代内存的函数会导致在不同硬件环境下设置最大堆内存和新生代内存环境变量不被应用,,这里先提前copy一份容器内部启动脚本做挂载,如果想自定义内存可以自己调整。

1、启动容器

docker run -d \
--privileged=true \
--name rmqnamesrv \
apache/rocketmq:5.1.0 sh mqnamesrv

 

 

2、复制容器内启动脚本到挂载目录

docker cp rmqnamesrv:/home/rocketmq/rocketmq-5.1.0/bin/runserver.sh /opt/service/slhy-hywl-rocketmq-docker/nameserver/bin/runserver.sh

3、修改runserver.sh

vi /opt/service/slhy-hywl-rocketmq-docker/nameserver/bin/runserver.sh

找到调用calculate_heap_sizes函数的位置注释掉保存即可,拉到脚本最底部就能找到 

 

4、停止&删除容器

docker stop rmqnamesrv
docker rm rmqnamesrv

5、启动NameServer 

sudo docker run -d \
--privileged=true \
--restart=always \
--name rmqnamesrv \
-p 9876:9876  \
-v /opt/service/slhy-hywl-rocketmq-docker/nameserver/logs:/home/rocketmq/logs \
-v /opt/service/slhy-hywl-rocketmq-docker/nameserver/bin/runserver.sh:/home/rocketmq/rocketmq-5.1.0/bin/runserver.sh \
-e "MAX_HEAP_SIZE=256M" \
-e "HEAP_NEWSIZE=128M" \
apache/rocketmq:5.1.0 sh mqnamesrv
docker ps -a | grep rmqnamesrv

 

 

 

 
 部署Broker

创建的挂载文件夹

提前创建挂载目录用于挂载容器内部数据、配置文件、以及日志。

mkdir /opt/service/slhy-hywl-rocketmq-docker/broker/logs -p
mkdir /opt/service/slhy-hywl-rocketmq-docker/broker/store -p
mkdir /opt/service/slhy-hywl-rocketmq-docker/broker/conf -p
mkdir /opt/service/slhy-hywl-rocketmq-docker/broker/bin -p

 

设置权限

chmod 777 -R /opt/service/slhy-hywl-rocketmq-docker/broker/*

 

创建broker.conf文件

在/usr/local/rocketmq/broker/conf文件夹下创建broker.conf文件

vi /opt/service/slhy-hywl-rocketmq-docker/broker/conf/broker.conf

添加以下配置信息到broker.conf

# NameServer 地址,外部访问配置为宿主机 IP 和映射端口
namesrvAddr = 37.121.124.108:9876

# 集群名称
brokerClusterName = DefaultCluster

# Broker 名称
brokerName = broker-a

# Broker ID,0 表示 Master,其他正整数表示 Slave
brokerId = 0

# Broker 服务地址,内外都配置为宿主机 IP
brokerIP1 = 37.121.124.108

# HA 地址,一般和 brokerIP1 相同
brokerIP2 = 37.121.124.108

# Broker 角色
brokerRole = ASYNC_MASTER

# 刷盘方式
flushDiskType = ASYNC_FLUSH

# 删除过期文件时间点(默认凌晨 4 点)
deleteWhen = 04

# 文件保留时间(小时)
fileReservedTime = 72

# 是否允许自动创建 Topic(生产环境建议关闭)
autoCreateTopicEnable=true

# 是否允许自动创建订阅组(生产环境建议关闭)
autoCreateSubscriptionGroup=true

说明:建立broker.conf文件,通过这个文件把RocketMQ的broker管理起来 

当你在 另一个容器(Broker 容器) 中启动 Broker 时,namesrvAddr 指向 宿主机的 IP 地址 37.121.124.108:9876,那么:

  • Broker 容器会尝试通过 宿主机网络访问 37.121.124.108:9876

  • 如果宿主机上的 9876 端口确实被 NameServer 容器监听并正确映射,Broker 就能访问到 NameServer

参考:

外部使用 指的是 外部网络中的服务需要访问这个 Broker

  • 公网 IP: 是指可以通过互联网访问的 IP 地址。例如:37.121.124.108

假设你的 Broker 在服务器上运行,这个服务器有一个公网 IP,那么你希望外部服务(例如其他系统、客户端)也能访问这个 Broker:

配置:

brokerIP1 = 37.121.124.108

RocketMq部署windos服务器,本地怎么访问!!!RocketMQ连接报错RemotingConnectException: connect to 解决-CSDN博客

Docker安装RocketMQ教程-CSDN博客 

拷贝容器内Broker启动脚本到宿主机(如果不需要自定义堆内存可以跳过)
Broker启动脚本中有一个自动计算最大堆内存和新生代内存的函数会导致在不同硬件环境下设置最大堆内存和新生代内存环境变量不被应用,,这里先提前copy一份容器内部启动脚本做挂载,如果想自定义内存可以自己调整。

1、启动容器

docker run -d \
--name rmqbroker \
--privileged=true \
apache/rocketmq:5.1.0 \
sh mqbroker

 

2、复制容器内启动脚本到挂载目录

docker cp rmqbroker:/home/rocketmq/rocketmq-5.1.0/bin/runbroker.sh /opt/service/slhy-hywl-rocketmq-docker/broker/bin/runbroker.sh 

vi /opt/service/slhy-hywl-rocketmq-docker/broker/bin/runbroker.sh 

找到调用calculate_heap_sizes函数的位置注释掉保存即可,拉到脚本最底部就能找到

 

 

docker stop rmqbroker
docker rm rmqbroker
docker run -d \
--restart=always \
--name rmqbroker \
-p 10911:10911 -p 10909:10909 \
--privileged=true \
-v /opt/service/slhy-hywl-rocketmq-docker/broker/logs:/root/logs \
-v /opt/service/slhy-hywl-rocketmq-docker/broker/store:/root/store \
-v /opt/service/slhy-hywl-rocketmq-docker/broker/conf/broker.conf:/home/rocketmq/broker.conf \
-v /opt/service/slhy-hywl-rocketmq-docker/broker/bin/runbroker.sh:/home/rocketmq/rocketmq-5.1.0/bin/runbroker.sh \
-e "MAX_HEAP_SIZE=512M" \
-e "HEAP_NEWSIZE=256M" \
apache/rocketmq:5.1.0 \
sh mqbroker -c /opt/service/slhy-hywl-rocketmq-docker/broker/conf/broker.conf

 

 部署RocketMQ控制台

镜像拉取

拉取最新版即可

docker pull apacherocketmq/rocketmq-dashboard:latest
docker run -d \
--restart=always \
--name rmqdashboard \
-e "JAVA_OPTS=-Xmx256M -Xms256M -Xmn128M -Drocketmq.namesrv.addr=37.121.124.108:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8083:8080 \
apacherocketmq/rocketmq-dashboard

 

参考: 

 

然后访问

8083端口

 

停止容器:

docker stop rmqdashboard

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2379892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

交叉引用、多个参考文献插入、跨文献插入word/wps中之【插入[1-3]、连续文献】

我们在写论文时,需要插入大量参考文献。 有时,一句话需要引用多个文献,如:[1-3]或者[1,3,4]这种形式多个文献插入、跨文献插入。 在上一篇文章中,我们提到可以直接打“-”或者“,”,但是word导出…

PLC双人舞:profinet转ethernet ip网关奏响施耐德与AB的协奏曲

PLC双人舞:ethernet ip转profinet网关奏响施耐德与AB的协奏曲 案例分析:施耐德PLC与AB PLC的互联互通 在现代工业自动化中,设备之间的互联互通至关重要。本案例旨在展示如何通过北京倍讯科技的EtherNet/IP转Modbus网关,将施耐德P…

缺乏团队建设活动,如何增强凝聚力?

当一个团队缺乏系统性的建设活动时,成员之间容易产生疏离感、误解与信任缺失,最终影响整体执行力和目标达成。要有效增强团队凝聚力,应从设计高参与感的团队活动、结合业务与人文目标、营造持续共创的文化机制、推动跨层级协作互动等层面着手…

力扣HOT100之二叉树:230. 二叉搜索树中第 K 小的元素

这道题直接用最笨的办法来做的&#xff0c;用递归来做&#xff0c;我们定义一个全局变量vector<int> element&#xff0c;然后使用中序遍历&#xff0c;每当碰到一个非空节点就将其加入到向量中&#xff0c;这样依赖当向量中的元素小于k时&#xff0c;就返回0&#xff0c…

Linux面试题集合(5)

把文件1的内容追加到文件2 cat 文件1>>文件2 把文件1和文件2合并成文件3 cat 文件1 文件2>文件3 使用less查看文件时&#xff0c;搜寻ab字符 /ab 用more和less如何查看文件 more&#xff1a; CtrlF -- 向下滚动一屏 CtrlB -- 返回上一屏 f -- 向下翻屏 b -- 向上翻屏 …

python动漫论坛管理系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

Web 技术与 Nginx 网站环境部署

这里写目录标题 一. Web基础域名和DNS域名的概念域名的结构域名结构类型 Hosts文件Hosts文件的作用修改Hosts文件 DNS域名注册 网页与HTML网页概述HTML概述HTML基本标签HTML语法规则HTML文件结构 网站和主页Web1.0 与 Web2.0 静态网页与动态网页静态网页动态网页动态网页语言 H…

FP8精度革命:Hopper架构下大模型训练的误差传播控制方法

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 一、FP8为何成为大模型训练的新范式&#xff1f; 1.1 算力需求与精度演进的矛盾 当前大语言…

手动制做一个Transformer

本文来自I made a transformer by hand . 一直以来&#xff0c;笔者对 transformer 的注意力机制、qkv的理解都浮于表面&#xff0c;当然也不是说我看完 I made a transformer by hand 后理解有多深入&#xff0c;但确实加深了我对相关概念的理解&#xff0c;故搬运此文章&…

已解决——如何让网站实现HTTPS访问?

一、申请SSL证书 SSL证书是HTTPS实现的关键&#xff0c;它由受信任的证书颁发机构&#xff08;CA&#xff09;签发&#xff0c;用于验证网站的身份并加密数据传输。以下是申请SSL证书的常见步骤&#xff1a; 选择证书类型 根据网站的需求和预算&#xff0c;选择合适的SSL证书…

WebRTC技术EasyRTC嵌入式音视频通信SDK助力智能电视搭建沉浸式实时音视频交互

一、方案概述​ EasyRTC是一款基于WebRTC技术的开源实时音视频通信解决方案&#xff0c;具备低延迟、高画质、跨平台等优势。将EasyRTC功能应用于智能电视&#xff0c;能够为用户带来全新的交互体验&#xff0c;满足智能电视在家庭娱乐、远程教育、远程办公、远程医疗等多种场…

小乌龟git中的推送账户、作者账户信息修改

文章目录 修改git文档作者信息修改git推送用户信息参考文献 修改git文档作者信息 小乌龟中的用户信息为&#xff1a;作者信息&#xff0c;并非推送用户。 上边用户信息&#xff0c;修改的是文件的作者信息。如果想要修改git服务中记录的推送用户信息需要修改推送用户信息。 …

Kubernetes MCP服务器(K8s MCP):如何使用?

#作者&#xff1a;曹付江 文章目录 1、什么是 Kubernetes MCP 服务器&#xff1f;1.1、K8s MCP 服务器 2、开始前的准备工作2.1. Kubernetes集群2.2. 安装并运行 kubectl2.3. Node.js 和 Bun2.4. &#xff08;可选&#xff09;Helm v3 3、如何设置 K8s MCP 服务器3.1. 克隆存储…

R²AIN SUITE 亮相第九届智能工厂高峰论坛

2025年5月16日&#xff0c;在圆满落幕的第九届智能工厂高峰论坛上&#xff0c;上海比孚信息科技有限公司携自主研发的 RAIN SUITE 企业AI应用中台解决方案亮相展会。本次论坛以"从互联工厂到智慧工厂"为主题&#xff0c;吸引了400余位行业专家、制造企业代表及产业链…

深入理解仿函数(Functors):从概念到实践

文章目录 1. 什么是仿函数&#xff1f;2. 仿函数与普通函数的区别3. 标准库中的仿函数4. 仿函数的优势4.1 状态保持4.2 可定制性4.3 性能优势 5. 现代C中的仿函数5.1 Lambda表达式5.2 通用仿函数 6. 仿函数的高级应用&#xff08;使用C2020标准库及以上版本&#xff09;6.1 函数…

InternLM 论文分类微调实践(XTuner 版)

1.环境安装 我创建开发机选择镜像为Cuda12.2-conda&#xff0c;选择GPU为100%A100的资源配置 Conda 管理环境 conda create -n xtuner_101 python3.10 -y conda activate xtuner_101 pip install torch2.4.0cu121 torchvision torchaudio --extra-index-url https://downloa…

PC:使用WinSCP密钥文件连接sftp服务器

1. 打开winscp工具&#xff0c;点击“标签页”->“新标签页” 2. 点击“高级"->“高级” 3. 点击"验证"->“选择密钥文件” 选择ppk文件&#xff0c;如果没有ppk文件选择pem文件&#xff0c;会自动生成ppk文件 点击确定 4. 输入要连接到的sftp服务器的…

1688正式出海,1688跨境寻源通接口接入,守卫的是国内工厂资源

在1688平台的跨境招商直播中&#xff0c;许多想要进入跨境市场的初学者商家纷纷提问&#xff1a;货通全球的入口在哪里&#xff1f;小白商家应该如何操作&#xff1f;商品为何上传失败&#xff1f; 从表面上看&#xff0c;这似乎是1688平台在拓展海外市场的一次积极“进攻”。…

力扣303 区域和检索 - 数组不可变

文章目录 题目介绍题解 题目介绍 题解 不用管第一个null&#xff0c;从第二个开始看就可以 法一&#xff1a;暴力解法 class NumArray {private int[] nums;public NumArray(int[] nums) {this.nums nums;}public int sumRange(int left, int right) {int res 0;for (int i…

Spring的后置处理器是干什么用的?扩展点又是什么?

Spring 的后置处理器和扩展点是其框架设计的核心机制&#xff0c;它们为开发者提供了灵活的扩展能力&#xff0c;允许在 Bean 的生命周期和容器初始化过程中注入自定义逻辑。 1. 后置处理器&#xff08;Post Processors&#xff09; 后置处理器是 Spring 中用于干预 Bean 生命…