前言
发现公司这边的消息中间件采纳了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