Docker以挂载方式安装RocketMQ

news2024/12/28 19:32:53

Docker 挂载安装RocketMQ

    • Docker 挂载安装RocketMQ
    • 安装 Docker
    • 安装NameServer
      • 1.拉取容器
      • 2.创建NameServer容器
      • 3.查看容器状态
    • 安装 broker
      • 创建 broker.conf 文件
      • 启动容器
    • 安装RocketMQ-console
      • 构建镜像
      • 启动容器
      • 开通安全组策略
      • 访问控制台

Docker 挂载安装RocketMQ

在 Docker 中安装和使用 RocketMQ 有多种方式,其中一种方式就是通过挂载本地文件的方式安装 RocketMQ。挂载的方式可以避免重启Docker镜像后,原配置丢失的问题。
第一次安装RocketMQ时难免踩坑,但是请保持平和心态对待,不要担心,自己遇到的问题,别人一定遇到过,肯定有解决方案。
以下是将 RocketMQ 安装到 Docker 中并挂载本地文件的简单示例:

安装 Docker

如果你还没有安装 Docker,请先安装。可以参考官方文档 进行安装

安装NameServer

1.拉取容器

docker pull rocketmqinc/rocketmq

2.创建NameServer容器

创建一个新的容器并指定 RocketMQ 的镜像。

docker run -d \
--name rmqnamesrv \
-p 9876:9876 \
-v /your/local/path/conf:/root/config \
-v /your/local/path/logs:/root/logs \
-e "JAVA_OPTS=-Duser.home=/opt" \
rocketmqinc/rocketmq \
sh mqnamesrv 

在这里插入图片描述
说明:

-d 以守护线程方式启动
–name rmqnamesrv 设置容器名称
-p 9876:9876 端口映射
-v 把容器内的/root/logs日志路径挂载到宿主机的自定义路径中(需根据自己的路径自行创建)
-v 把容器内的/root/config 配置目录挂载到宿主机的自定义目录(需根据自己的路径自行创建)
rocketmqinc/rocketmq 使用镜像的名称
sh mqnamesrv 执行name server脚本

如果使用的云服务器需要开通安全组规则
在这里插入图片描述

3.查看容器状态

使用以下命令可以查看容器是否正常运行:

docker ps

在这里插入图片描述

安装 broker

创建 broker.conf 文件

1:在 {自己的路径}/conf 目录下创建 broker.conf 文件

题主的目录/home/lele/rocketmq/broker,输入命令mkdir conf 新建conf目录
在这里插入图片描述
接着在conf目录下输入命令touch broker.conf 新建文件

在这里插入图片描述

输入命令vi broker.conf , 点击键盘i键开始插入状态
在 broker.conf 中写入如下内容

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = {本地公网 IP}

在这里插入图片描述
我的是阿里云服务器,箭头处为 公网ip)

输入完成后按Esc键,按shift再按 :

输入wq! 退出

启动容器

docker run -d -p 10911:10911 -p 10909:10909 \
-v {自己的路径}/data/broker/logs:/root/logs \
-v {自己的路径}/rocketmq/data/broker/store:/root/store \
-v {自己的路径}/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
rocketmqinc/rocketmq \
sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

注意事项

注意: {自己的路径} 同上步一样,不再缀述。broker.conf 的文件中的 brokerIP1 是你的 broker 注册到 Namesrv 中的 ip。如果不指定他会默认取容器中的内网 IP。除非你的应用也同时部署在网络相通的容器中,本地或容器外就无法连接 broker 服务了,进而导致类似 RemotingTooMuchRequestException 等各种异常。

博主的启动配置如下

docker run -d -p 10911:10911 -p 10909:10909 \
-v /home/lele/rocketmq/broker/data/broker/logs:/root/logs \
-v /home/lele/rocketmq/broker/rocketmq/data/broker/store:/root/store \
-v /home/lele/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
rocketmqinc/rocketmq  \
sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

在这里插入图片描述

如果使用的云服务器需要开通安全组规则
在这里插入图片描述

安装RocketMQ-console

以下是在 Docker 中安装 RocketMQ Console NG 的简单步骤:

构建镜像

使用以下命令构建镜像:

docker pull pangliang/rocketmq-console-ng

启动容器

使用以下命令启动容器:

docker run -d \
--name rmqadmin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=your_nameserver_address:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 9999:8080 \
pangliang/rocketmq-console-ng

在这里插入图片描述
说明

-e "JAVA_OPTS=-Drocketmq.namesrv.addr=your_nameserver_address:9876 设置nameserver服务的地址
-p 9999:8080 容器端口映射到宿主机的8080端口

开通安全组策略

博主使用的云服务器,需要开通安全组规则
在这里插入图片描述

访问控制台

RocketMQ Console NG 就已经在 Docker 容器中启动成功了。现在,可以使用浏览器访问 http://[your_server_ip]:9999/来访问控制台。
在这里插入图片描述

参考连接:

Docker以挂载方式安装RocketMQ

docker安装rocketMQ教程(最详细)

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

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

相关文章

LangChain入门学习笔记(二)——LangChain表达式语言(LCEL)

基于LangChain框架编写大模型应用的过程就像垒积木,其中的积木就是Prompts,LLMs和各种OutputParser等。如何将这些积木组织起来,除了使用基本Python语法调用对应类的方法,一种更灵活的方法就是使用位于LangChain-Core层中的LCEL&a…

python的四个进度条

哈喽,我是快乐吗喽,今天简单的给大家介绍一下python的四个进度条工具,希望各位喜欢。 第一个进度条工具tqdm,好记点我叫她淘气大妈 安装tqdm库 pip install tqdm 基本用法 from tqdm import tqdm import timefor i in tqdm(ran…

SpringBoot2+Vue3开发课程审核流程系统

SpringBoot2Vue3开发课程审核流程系统 简介 此系统实现了课程审核全流程功能并使用了Activiti7工作流技术,功能包含:课程管理、用户管理、流程定义、课程审核(我的申请、我的代办、我的已办) 功能介绍 课程管理 对课程信息的管…

录音转文字软件:一键让工作学习更高效

在职场这个大舞台上,每一场会议都是关键的演出,而会议记录就是这场演出的剧本。但剧本要整理得好,才能让演出更精彩,不是吗? 把那些长串的会议音频变成清晰的文字记录,听起来就像变魔术一样难。但不用担心…

人工智能强化学习:核心内容、社会影响及未来展望

欢迎来到 Papicatch的博客 文章目录 🐋引言 🐋强化学习的核心内容 🦈强化学习基本概念 🐋强化学习算法 🦈Q学习(Q-Learning) 🦈深度Q网络(Deep Q-Network, DQN&…

AI日报|苹果生态全面整合AI功能,字节跳动被曝秘密启动AI手机研发

文章推荐 粽叶飘香,端午安康!AI视频送祝福啦~ 谁是最会写作文的AI“考生”?“阅卷老师”ChatGPT直呼惊艳! ⭐️搜索“可信AI进展“关注公众号,获取当日最新AI资讯 苹果WWDC 2024:AI为苹果带来了什么&am…

24年系统架构设计师考试真题大放送

哈喽,简单介绍一下,我是研究系统架构设计师/系统分析师考试3 年,累计帮助千人备考系统架构设计师的——凯恩。芝士架构刷题免费!芝士架构 | 软考备考第一站 这周,凯恩抽空把2024年系统架构设计师真题的选择题&#xff…

【qt】视口和窗口坐标

视口和窗口坐标 一.视口和窗口坐标的原理二.视口和窗口坐标的好处三.演示好处四.总结 一.视口和窗口坐标的原理 在绘图事件中进行绘图 void Widget::paintEvent(QPaintEvent *event) {QPainter painter(this);QRect rect(200,0,200,200);painter.drawRect(rect);//设置视口的…

Vue3学习日记(day3)

目录详解: 简单解释: 详细解释: .vscode public assets compents router views app.vue package.json package-lock.json 区别 探究文档 应用配置​ 语法合集 插值表达式​ V- HTML(易造成xss漏洞)​…

2024世界人工智能大会“SAIL奖”发布

作为世界人工智能大会的最高奖项,SAIL 奖(Super AI Leader,卓越人工智能引领者)坚持“追求卓越、引领未来”的理念,评选和运营秉持“高端化、国际化、专业化、市场化、智能化”原则,从全球范围发掘在人工智…

VS2019+QT5.15调用动态库dll带有命名空间

VS2019QT5.15调用动态库dll带有命名空间 vs创建动态库 参考: QT调用vs2019生成的c动态库-CSDN博客 demo的dll头文件: // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLL3_EXPORTS // 符号…

品牌渠道管控的风险与要点

品牌在管控渠道时,不仅要注重方法和效果,还得留意风险,以免被误解为“垄断”。在与品牌接触和服务过程中,我们整理出完善且合规的治理方法供品牌参考。先简单分享品牌控价的知识点。 价格管控指的是品牌对渠道低价、乱价情况的管理…

Vue 路由:一级路由,嵌套路由

1、安装路由插件,因为用的是vue2 所以路由版本要和vue2对应上,所有有3 yarn add vue-router3 2、在main.js里引入 import VueRouter from vue-router Vue.use(VueRouter) 3、新建文件夹 router,创建index.js 4、引入路由插件,并且暴露出来这个路由 5、在…

【OpenCV】CUDA讲解(一)

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享关于CUDA的知识,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步&#xf…

探索 doc 和 docx 文件格式的区别

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

Vue脚手架引入vant 以及 Vant is not defined原因

本文基于vue 2.6.14 以及 vant 2.13.2 版本的 vue-cli 脚手架。 一. 引入vant Vant 2 - 轻量、可靠的移动端组件库 (vant-ui.github.io) 引入 vant npm i vantlatest-v2 -S 引入官网所说的自动按需引入组件 npm i babel-plugin-import -D 配置 babel.config.js (.babel…

还能报名!风靡硅谷开发者的Unstructured Data Meetup 杭州站与您6月15日见面!

“最硅谷”的Unstructured Data Meetup即将来到杭州西溪! 众所周知,AI 三要素包括:算力、算法和数据。数据的价值愈发凸显,而其中非结构化数据更是备受关注。IDC 预测,到 2027年,全球数据总量中将有超过 8…

Kubernetes 如何删除 Terminating 状态的 Pod

在 Kubernetes (k8s) 中,Pod 是运行容器化应用的最小部署单元。当我们删除一个 Pod 时,通常它会快速进入 Terminating 状态并被删除。然而,有时由于种种原因,Pod 会长时间停留在 Terminating 状态。本文将详细介绍如何处理和删除这…

MyBatis的运行原理

目录 1、目的:梳理一下MyBatis运行时的几个对象,我们需要搞清楚他们的作用,进而需要理解mybatis的整个工作流程和执行原理。 2、简要概括各个类 2.1 Resources 作用:编写资源加载类,使用类加载器加载 配置文件(myb…

AI驱动的电子元器件商城物流优化

随着电子元器件市场的不断发展,电子元器件商城(ECM)的物流管理变得越来越复杂。如何通过人工智能(AI)技术优化物流流程,提高物流效率,成为电子元器件商城需要解决的重要问题。本文将探讨AI驱动的…