一、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定义为云原生的消息、事件、流的超融合平台。
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-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进行消息的查询
消息详情可以展示这条消息的详细信息,查看消息对应到具体消费组的消费情况(如果异常,可以查看具体的异常信息)。可以向指定的消费组重发消息
不是你觉的悟到的东西给了你,你也接不住!
干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!