RocketMQ Learning

一、RocketMQ

RocketMQ的产品发展

MetaQ:2011年,阿里基于Kafka的设计使用Java完全重写并推出了MetaQ 1.0版本 。

2012年,阿里对MetaQ的存储进行了改进,推出MetaQ 2.0,同年阿里把Meta2.0从阿里内部开源出来,取名RocketMQ,为了命名上的规范以及版本上的延续,对外称为RocketMQ3.0。

2016年,阿里宣布将开源分布式消息中间件RocketMQ捐赠给Apache,同时RocketMQ3也升级为RocketMQ4,现在RocketMQ主要维护的是4.x的版本,也是大家使用得最多的版本。

2021年,RocketMQ在github上发布5.0预览版。RocketMQ 5.0定义为云原生的消息、事件、流的超融合平台。

RocketMQ源码链接

RocketMQ官网下载地址

1、RocketMQ安装

1.1、windows下的安装

1.确保安装好了JDK1.8&64位系统

2.解压运行版本(Binary)

3.配置环境变量

变量名:ROCKETMQ_HOME

变量值:MQ解压路径\MQ文件夹名

4.启动

在RocketMQ的架构中,都是需要先启动NameServer再启动Broker的。所以先启动NameServer。
启动NameServer

使用cmd命令框执行进入至'MQ文件夹\bin'下,然后执行'start mqnamesrv.cmd',启动NameServer。成功后会弹出提示框,此框勿关闭。

启动Broker

使用cmd命令框执行进入至'MQ文件夹\bin'下,然后执行'start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true',启动Broker。成功后会弹出提示框,此框勿关闭。

注意事项

弹出提示框'错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_202\lib\tools.jar;C:\Program'的处理

打开'MQ文件夹\bin'下的runbroker.cmd,然后将'%CLASSPATH%'加上英文双引号。保存并重新执行start语句。

再次启动

1.2、Linux下的安装

1.3、源码的安装

1.解压源码版本(Source)

2.导入idea中,maven编译通过

3.创建目录D盘创建文件夹RocketMQ

1.把源码下的distribution下的conf文件夹拷贝到RocketMQ下面

2.再创建logs和store文件夹

4、启动RocketMQ源码

4.1、启动NameServer

namesrv工程下NamesrvStartup启动类,启动前需要配置环境变量

bash 复制代码
ROCKETMQ_HOME=D:\RocketMQ

4.2、启动Broker

在broker模块找到broker模块,同时找到启动类BrokerStartup.java

需要修改配置文件broker.conf

bash 复制代码
#配置如下:
#nameServer
namesrvAddr=127.0.0.1:9876
autoCreateTopicEnable = true
storePathRootDir = D:\\RocketMQ\\store
#commitLog存储路径
storePathCommitLog = D:\\RocketMQ\\store\\commitlog
#消费队列存储路径
storePathConsumeQueue =D:\\RocketMQ\\store\\consumequeue
#消息索引存储路径
storePathindex = D:\\RocketMQ\\store\\index
#checkpoint文件存储路径
storeCheckpoint = D:\\RocketMQ\\store\\checkpoint
#abort文件存储路径
abortFile = D:\\RocketMQ\\store\\abort

配置环境变量

bash 复制代码
ROCKETMQ_HOME=D:\RocketMQ

配置参数

bash 复制代码
-c D:\RocketMQ\conf\broker.conf

启动成功,检查下数据文件

1.4、控制台

Rocketmq老版本下载

Rocketmq新版本下载

这里下载的新版本rocketmq-dashboard启动项目下面如下

浏览器中输入'http://localhost:8080',成功后即可进行管理端查看。

运维页面

你可以修改这个服务使用的namesrv的地址

你可以修改这个服务是否使用VIPChannel(如果你的mq server版本小于3.5.8,请设置不使用)

驾驶舱

查看broker的消息量(总量/5分钟图)

查看单一主题的消息量(总量/趋势图)

集群

查看集群的分布情况:cluster与broker关系、broker

查看broker具体信息/运行信息

查看broker配置信息

主题页面

展示所有的主题,可以通过搜索框进行过滤

筛选 普通/重试/死信 主题

添加/更新主题

clusterName 创建在哪几个cluster上

brokerName 创建在哪几个broker上

topicName 主题名

writeQueueNums 写队列数量

readQueueNums 读队列数量

perm //2是写 4是读 6是读写

状态 查询消息投递状态(投递到哪些broker/哪些queue/多少量等)

路由 查看消息的路由(现在你发这个主题的消息会发往哪些broker,对应broker的queue信息)

CONSUMER管理(这个topic都被哪些group消费了,消费情况何如)

topic配置(查看变更当前的配置)

发送消息(向这个主题发送一个测试消息)

重置消费位点(分为在线和不在线两种情况,不过都需要检查重置是否成功)

删除主题 (会删除掉所有broker以及namesrv上的主题配置和路由信息)

消费者页面

展示所有的消费组,可以通过搜索框进行过滤

刷新页面/每隔五秒定时刷新页面

按照订阅组/数量/TPS/延迟 进行排序

添加/更新消费组

clusterName 创建在哪几个集群上

brokerName 创建在哪几个broker上

groupName 消费组名字

consumeEnable //是否可以消费 FALSE的话将无法进行消费

consumeBroadcastEnable //是否可以广播消费

retryQueueNums //重试队列的大小

brokerId //正常情况从哪消费

whichBrokerWhenConsumeSlowly//出问题了从哪消费

终端 在线的消费客户端查看,包括版本订阅信息和消费模式

消费详情 对应消费组的消费明细查看,这个消费组订阅的所有Topic的消费情况,每个queue对应的消费client查看(包括Retry消息)

配置 查看变更消费组的配置

删除 在指定的broker上删除消费组

生产者页面

通过Topic和Group查询在线的消息生产者客户端

信息包含客户端主机 版本

消息查询页面

根据Topic和时间区间查询由于数据量大 最多只会展示2000条,多的会被忽略

根据Topic和Key进行查询

最多只会展示64条

根据消息主题和消息Id进行消息的查询

消息详情可以展示这条消息的详细信息,查看消息对应到具体消费组的消费情况(如果异常,可以查看具体的异常信息)。可以向指定的消费组重发消息

不是你觉的悟到的东西给了你,你也接不住!

干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!

相关推荐
P.H. Infinity18 分钟前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天22 分钟前
java的threadlocal为何内存泄漏
java
caridle34 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^39 分钟前
数据库连接池的创建
java·开发语言·数据库
苹果醋343 分钟前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花1 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
小松学前端1 小时前
第六章 7.0 LinkList
java·开发语言·网络
Wx-bishekaifayuan1 小时前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
全栈开发圈1 小时前
新书速览|Java网络爬虫精解与实践
java·开发语言·爬虫