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

news/2024/7/7 21:36:41

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://lihuaxi.xjx100.cn/news/1023792.html

相关文章

Redis(四)事务 multi、exec

哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮 有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。 文章目录1 前言1.1 什么是Redi…

【Android平板编程】远程Ubuntu服务器code-server编程写代码

文章目录前言1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址5.结语前言 本次教程将在 Ubuntu 服务器环境下安装 code-server ,并使用 Android 安卓平板远程 Ubuntu 服务,进行远程编程开…

《剪花布条》:从花布条中尽可能剪出几块小饰条

目录 一、题目 二、思路 1、代码中要使用的String类中的方法 (1)判断 s 中是否有 t (2)将 s 分割 2、递归判断 三、代码 详细注释版本 简化注释版本 一、题目 题目:剪花布条 题目链接&#xf…

hjr-高并发系统如何保障高可用

高并发 高并发指的是 分布式系统中 并行处理的能力 在WEB开发中,两种情况会遇到高并发 1、TO C系统中 海量的用户请求 2、TO B系统中 海量的终端数据上报 分布式与集群 分布式系统与集群系统是有区别的 分布式指的是不同的节点负责不同的功能 集群指的是相同…

用Flutter开发一款企业级App(开眼Flutter-OpenEye)

先贴项目地址:WinWang/open_eye: Flutter 开眼APP:整体项目架构基于Getx搭建,完成路由,依赖注入;网络请求框架基于RetrofitDio实现,配合官方JsonSerialize实现解析;封装项目页面多状态&#xff…

解锁ERD Online 高级隐藏功能

ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL 查询等功能,辅以版本、导入、导出、数据源、SQL 解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 ERD Online 产品图鉴 ERD …

《算法笔记》4.2小节——算法初步->哈希->问题 B: 分组统计

题目描述: 先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。 输入 输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n…

2023年全国最新道路运输从业人员精选真题及答案48

百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 178.客运企业应当逐步建立客运车辆技术信息化管理系统&#xff…