RocketMQ(4.9.4)学习笔记 - 安装部署

单机部署:
官网文档地址:

https://rocketmq.apache.org/zh/docs/4.x

参考文档:

windows安装RocketMQ_rocketmq windows_book多得的博客-CSDN博客

下载地址:

https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip

解压到本地,

bin中有各种执行脚本,包含windows和linux的

windows单机部署:

先配置环境变量

启动namesrv

进入rocketmq解压后的文件夹路径,

双击mqnamesrv.cmd或runserver.cmd, mqnamesrv.cmd内部也是调用runserver.cmd

namesrv在rocketmq中相当于一个服务注册中心:

根据官方文档说明,通过namesrv拉取broker信息,真正消息发送和消费都是通过broker

启动broker

在conf文件夹中有很多conf文件,这就涉及到rocketmq的部署方式;

集群模式:参考 RocketMQ 集群配置 - 知乎

2m-2s-async(本文采用模式)-2主2从异步刷盘(吞吐量较大,但是消息可能丢失)

2m-2s-sync:2主2从同步刷盘(吞吐量会下降,但是消息更安全)

2m-noslave :2主无从(单点故障),然后还可以直接配置broker.conf,进行单点环境配置

dledger:用来实现主从切换的。集群中的节点会基于Raft协议随机选举出一个leader,

其他的就都是follower。通常正式环境都会采用这种方式来搭建集群。

然后就是broker.conf文件,根据一些资料说这个是单机的默认配置文件,但是似乎不是,启动的时候需要指定这个文件才行。

broker配置:

其中brokerIP1指向rocketmq配置的外网地址,autoCreateEnableTopic = true表示开启自动创建topic功能,此功能线下测试用用就好,上线最好不要开启,如需要手动创建topic,命令如下 :

sh bin/mqadmin updateTopic -c DefaultCluster -t TopicTest -n 127.0.0.1:9876

启动broker命令

start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true -c ../conf/broker.conf

其中autoCreateTopicEnable如果在broker.conf中已配置则可去除。

启动console,mq的控制台

下载地址:GitHub - apache/rocketmq-externals: Mirror of Apache RocketMQ (Incubating)

使用idea工具open项目,切换分支。

去除启动类上的注释

修改配置

启动项目,访问项目地址

正常情况下cluster和topic都不为空的,为空说明配置有问题,现在可以使用mq了

Docker部署:
启动namesrv

docker run -d --name rmqnamesrv -p 9876:9876 -e "NAMESRV_ADDR=192.168.31.26:9876" -v D:\mqvolume\logs:/home/rocketmq/logs -v D:\mqvolume\store:/home/rocketmq/store apache/rocketmq:4.9.4 sh mqnamesrv

启动broker

docker run -d --name rmqbroker -p 10911:10911 -p 10912:10912 -v D:\mqvolume\logs:/home/rocketmq/logs -v D:\mqvolume\store:/home/rocketmq/store -v D:\mqvolume\broker.conf:/home/rocketmq/rocketmq-4.9.4/conf/broker.conf -e "NAMESRV_ADDR=192.168.31.26:9876" apache/rocketmq:4.9.4 sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf

启动控制台

docker run -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=192.168.31.26:9876 -Drocketmq.config.isVIPChannel=false" -p 8088:8080 styletang/rocketmq-console-ng

相关推荐
代码游侠几秒前
应用——Linux进程通信与信号处理
linux·运维·服务器·笔记·学习·信号处理
石像鬼₧魂石4 分钟前
内网渗透靶场 攻击 & 排错命令分类速查表
linux·windows·学习·ubuntu
AI视觉网奇11 分钟前
Ue5 端上 搭建笔记
笔记·ue5
d111111111d25 分钟前
在STM32中,中断服务函数的命名有什么要求?
笔记·stm32·单片机·嵌入式硬件·学习·c#
凯_kyle39 分钟前
Python 算法竞赛 —— 基础篇(更新ing)
笔记·python·算法
零一科技43 分钟前
然然管理系统-学习搭环境-本地先跑起来
学习
走在路上的菜鸟1 小时前
Android学Dart学习笔记第二十三节 类-扩展类型
android·笔记·学习·flutter
愤怒学习的白菜1 小时前
0 trivial:UVM的空壳平台
学习·uvm·ic验证
快乐非自愿1 小时前
Java函数式接口——渐进式学习
java·开发语言·学习
心动啊1211 小时前
负载均衡 + Nginx的基本使用
学习·nginx·负载均衡