RocketMQ是我们“家喻户晓”的消息中间件,本身是阿里开源、java语言实现的,它的官方文档对我们国人非常友好。除了基础的使用,对RocketMQ的源码以及实现原理的掌握是我们迈向高级开发必不可少的内容,此文是对RocketMQ深入了解的开篇之作,搭建一套自己的RocketMQ源码环境。
到 官方下载地址 上找到需要下载的版本,此处我下载的是V5.1的版本,选择Source下载
这一步非常简单,将下载的压缩包解压到需要存放项目的目录上。
从解压的目录中选择到源码包 rocketmq-all-5.1.0 -> 选中pom.xml -> open导入
然后等待项目构建完成即可
由于是Java语言的实现,MQ的启动依赖JDK,需要JDK8以上的版本,查看当前系统JDK版本 java -version
启动 namesrv 服务,找到 NameServerStartup 类,运行 main 方法
如果提示以下问题,不要慌,踩到坑就给他填上
以上问题出现的原因是JDK版本太高了,JDK自带工具包没有匹配上的原因,切换为JDK8就解决了
再次启动 NameServerStartup 类的 main 方法,提示了 Please set the ROCKETMQ_HOME variable in your environment to match the location of the RocketMQ installation
这是因为需要在环境变量中查找 ROCKETMQ_HOME 为命名的 RocketMQ 的配置目录,在启动配置上指定对应的目录 ROCKETMQ_HOME=./distribution
即可
再次启动,提示 The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
即为启动成功
启动 Broker 服务,先找到 broker 项目目录 BrokerStartup 类,运行 main 方法
同样的提示环境变量问题 Please set the ROCKETMQ_HOME variable in your environment to match the location of the RocketMQ installation
配置上与server一致,不同的是,Broker需要指定配置文件,在 Program arguments 中添加 -c ./distribution/conf/broker.conf
配置
找到 broker.conf
配置文件,指定IP和添加server服务端地址
brokerIP1=127.0.0.1 namesrvAddr=127.0.0.1:9876
再次启动 Broker,提示 The broker[broker-a, 127.0.0.1:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876
即为启动成功
你以为这就结束了吗?no no no,服务虽然启动了,也可以正常连接使用,但是我们还缺少了一个至关重要的组件,那就是 dashboard
dashboard 的源码并不在上面下载的RocketMQ的源码当中,需要单独下载,下载地址 dashboard
解压源码,Idea导入,编译使用JDK1.8,否则会出现一些Netty异常,此处不过多讲解,本身是SpringBoot项目,修改 application.properties 配置文件,指向本地启动的 NameServer 地址
propertiesrocketmq.config.namesrvAddr=localhost:9876
找到 App 类,运行 main 方法,启动成功,访问 http://localhost:8080/ 即可
查看控制台是否连接成功
总结一下,本文主要整理了RocketMQ源码部署的方式,可以更直观的观察消息发送与消费的执行流程。下一篇我会基于当前源码启动的服务,对功能特性进行总结,方便在开发中快捷开发。
本文作者:柳始恭
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!