前言
发现公司这边的消息中间件采纳了 aliyun 的 RocketMQ 服务,相熟开源的同学都晓得,RocketMQ 是国内最早一批募捐 Apache 并胜利毕业的我的项目。架构设计参考了 kafka 的模式,所以如果你理解 kafka 的架构,对于 RocketMQ 就能够驾轻就熟了,尽管参考了 kafka,然而 RocketMQ 也有很多的降级,比方 Broker 的注册和发现就采纳了外部的 NameServer,没有引入更多的第三方依赖,而且增加了诸如音讯回溯、事务音讯、延时音讯等特色性能。因为之前没有接触过 RocketMQ(之前始终用的 kafka 和 RabbitMQ),筹备钻研一番,也为了前面集成 spring boot metrics 监控 RocketMQ 客户端信息做筹备。钻研一个开源我的项目,最好的办法就是 Debug,所以记录下本地搭建 RocketMq 的调试环境过程
生成安装包
我的项目地址:https://github.com/apache/rocketmq,从这个地址下载我的项目后,导入到 IDEA 开发工具,执行 mvn install,生成装置 RocketMQ 包,生成胜利后,在 distribution 模块下,会有如下目录,这个目录等下会用到
启动 NameServer
找到 namesrv 模块,运行 NamesrvStartup 的 main 办法,这个时候会提醒你,须要设置 ROCKETMQ_HOME,提示信息如下:
这个时候就须要第一步生成的目录,拷贝 /Users/kl/githubnamespace/rocketmq/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1 目录,在 IDEA 的运行设置界面,增加如下参数:
-Drocketmq.home.dir=/Users/kl/githubnamespace/rocketmq/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1
如:
而后在启动,就能够胜利启动了
启动 broker
装置启动 NameServer 的模式,找到 borker 模块,设置好 ROCKETMQ_HOME,在用雷同的形式采纳 - D 形式,配置下 NameServer 的地址,如:
-Drocketmq.namesrv.addr=127.0.0.1:9876
而后启动即可,此时一个残缺的跑在 IDEA 中的单节点架构的 RocketMQ 服务就搭建好了
装置 RocketMQ Console
为了更好的察看理解 RocketMQ 的性能,能够装置一个 web 治理控制台,这个须要用到另一个我的项目
我的项目地址:https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
装置胜利后,就能够通过 web 页面查问 producer 发送的 message 信息,关上浏览器,输出:http://localhost:8080。就能够按到如下页面:
纵情的 Debug
所有准备就绪后,能够找到我的项目的 example 模块,外面内置了各种个性性能的应用案例,接下来就能够一个一个案例 Runing 起来,纵情的 Deubg