常用环境部署(七)——Docker安装RocketMQ

news/2024/11/8 22:49:31/

1、创建namesrv服务

(1)拉取镜像

docker pull rocketmqinc/rocketmq

(2)创建一个数据目录

即创建一个namesrv数据存储路径

mkdir -p /docker/rocketmq/nameserver/logs /docker/rocketmq/nameserver/store

(3)构建namesrv容器

docker run -d --restart=always --name rmqnamesrv --privileged=true -p 9876:9876  -v /docker/rocketmq/nameserver/logs:/root/logs -v /docker/rocketmq/nameserver/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv

 (4)参数说明

参数说明
-d以守护进程的方式启动
- -restart=alwaysdocker重启时候容器自动重启
- -name rmqnamesrv把容器的名字设置为rmqnamesrv
-p 9876:9876把容器内的端口9876挂载到宿主机9876上面
-v /docker/rocketmq/nameserver/logs:/root/logs目录挂载
-v /docker/rocketmq/nameserver/store目录挂载
rmqnamesrv容器的名字
-e “MAX_POSSIBLE_HEAP=100000000”设置容器的最大堆内存为100000000
rocketmqinc/rocketmq使用的镜像名称
sh mqnamesrv启动namesrv服务

2、创建broker节点 

(1)创建broker.conf配置文件

我的目录是/opt/docker/rocketmq/broker.conf,文件内容如下:

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
namesrvAddr = 127.0.0.1:9876
brokerIP1 = 主机的IP

注意:brokerIP1中的IP一定要大写

(2)构建broker容器

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

 (3)参数说明

参数说明
-d以守护进程的方式启动
- -restart=alwaysdocker重启时候容器自动重启
- -name rmqbroker把容器的名字设置为rmqbroker
- --link rmqnamesrv:namesrv和rmqnamesrv容器通信
-p 9876:9876把容器内的端口9876挂载到宿主机9876上面
-p 10909:10909把容器的vip通道端口挂载到宿主机
-e “NAMESRV_ADDR=namesrv:9876”指定namesrv的地址为本机namesrv的ip地址:9876
-e “MAX_POSSIBLE_HEAP=200000000” rocketmqinc/rocketmq sh mqbroker指定broker服务的最大堆内存
rocketmqinc/rocketmq使用的镜像名称
sh mqbroker -c /opt/docker/rocketmq/broker.conf指定配置文件启动broker节点

 (4)注意事项

a、如果报下图错误,则需要重新启动docker

systemctl restart docker

b、如果遇到下图错误

解决方法一:

在编写borker.conf文件的时候,使用的不是vim命令。使用的时候centos的文本编辑器编写的。删除掉之后,通过vim命令重新编写。保存后,可能会解决问题。博主不是这个原因,大家也可以参考解决方法二

解决方法二:

大家则需要将下图路径1修改为路径2,即路径1和路径2一样

 3、创建rockermq-console服务即安装控制台

(1)拉取镜像

docker pull pangliang/rocketmq-console-ng

(2)构建rockermq-console容器即启动控制台

docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr=自己的IP:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 pangliang/rocketmq-console-ng

(3)参数说明

参数说明
-d以守护进程的方式启动
-restart=alwaysdocker重启时候镜像自动重启
-name rmqadmin 把容器的名字设置为rmqadmin
-e “JAVA_OPTS=-Drocketmq.namesrv.addr=自己的IP:9876设置namesrv服务的ip地址
Dcom.rocketmq.sendMessageWithVIPChannel=false不使用VIP通道发送消息
–p 8080:8080把容器内的端口8080挂载到宿主机上的9999端口

(4)访问控制台

打开浏览器访问 http://IP:8080

 (5)注意事项

需要关闭防火墙或者开放namesrv和broker端口,控制台服务将无法访问namesrv服务

异常信息如下:org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to failed

 关闭防火墙

systemctl stop firewalld.service

开放指定端口

firewall-cmd --permanent --zone=public --add-port=9876/tcp
firewall-cmd --permanent --zone=public --add-port=10911/tcp
# 立即生效
firewall-cmd --reload

 如果是云服务器的话还需要大家在安全组开放端口


http://www.ppmy.cn/news/40519.html

相关文章

ROBOMASTER机甲大师赛视觉组学习方案2023更新第一版

ROBOMASTER机甲大师赛视觉学习方案技能更新硬件平台环境配置仓库地址还在学校的时候我写 ROBOMASTER机甲大师赛视觉组学习方案这篇博客,没想到两年以后还有同学会来时不时的收藏,现在工作后回过头再来看发现有一些东西比较旧了所以更新这篇博客&#xff…

企业IM即时通讯软件需要具备哪些功能?

随着互联网的普及,即时通讯软件也渗透到了人们的日常生活和工作当中,而市面上的即时通讯软件现在有分为两种,一种是个人社交沟通软件,另外一种则是企业即时通讯。企业即时通讯软件是为了让企业内部方便沟通、管理及办公&#xff0…

Linux运维进阶之路

前言 首先在我看来,不论你以后是做运维亦或者是做后端开发,云计算等。只要和后端搭边,Linux都是必会的基础知识。所以说Linux是伴随我们工作中一个特别重要的知识。 不过很多同学在初学Linux的时候,始终不得其法,发现…

【分布式版本控制系统Git】| 国内代码托管中心-Gitee、自建代码托管平台-GitLab

目录 一:国内代码托管中心-码云 1. 码云创建远程库 2. IDEA 集成码云 3. 码云复制 GitHub 项目 二:自建代码托管平台-GitLab 1. GitLab 安装 2. IDEA 集成 GitLab 一:国内代码托管中心-码云 众所周知,GitHub 服务器在国外&…

去年12月被无情辞退,三个月后我携手自动化测试神技王者归来

引言 不知不觉在软件测试行业工作了3年之久,虽然说我是主做的功能测试,但是我也一直是兢兢业业的呀,不曾想去年7月份无情被辞的消息让我感到一阵沉重。我曾经一直坚信自己的技能和经验足以支撑我在这个领域的未来,但现实却告诉我&…

【Linux入门篇】四种软件查看、安装、卸载方式

目录 🍁rpm方式 🍁yum方式 🍁源码编译方式 🍁二进制安装 🦐博客主页:大虾好吃吗的博客 🦐专栏地址:Linux从入门到精通 rpm方式 优点:无需网络安装软件 缺点&#xff1a…

【Emuelec】emmc刷写工具ceemmc原理分析

ceemmc是emuelec官方闭源的刷入emmc的工具,但在4.3以后就官方不提供了,好在旧版本的ceemmc是二进制程序,放到新系统上也能用,于是乎分析其工作原理,自己折腾,自己将4.5游戏系统刷入emmc的一点经验总结&…

Python json详解

一、抓取文本数据 结构化数据:json,xml(极其的稀少) 。直接转化为python类型 非结构化数据:HTML,字符串。正则表达式、xpath 二、JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 它使得人们…