最近溪源在学习dubbo的相关API机制实践,如:负载均衡、服务分组、本地存根等等…一方面是dubbo官网文档给出了详细的介绍和demo,另一方面由于自己时间方面原因(自己现在也需要学习各种技术栈),没有整理相关实践总结。但是后面一定会整理出相关的实践总结。 今天主要给大家介绍一下rocketmq源码本地化构建,也是由于溪源项目中暂时未使用该技术栈,如果自己想要学习和精进,那只能阅读一下源码和了解相关机制啦! 好啦好啦~不再絮叨啦,无实际作用,下面进入今天的正题。
首先,分享出rocketMQ相关资料: 项目地址:https://github.com/apache/rocketmq 中文文档:https://github.com/apache/rocketmq/tree/master/docs/cn
源码本地化构建肯定是clone啦,大家都明白。
命令 : git clone https://github.com/apache/rocketmq.git
或者大家可以使用idea直接New->Version Control
项目克隆结束以后,输入命令构建:mvn clean install -U -DskipTests
但是但是~会那么轻松让我们构建成功吗??哈哈,惊喜终于来了—[ERROR]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
修改结束,再次输入上面的构建命令,静静地等待构建、下载依赖等~
构建完成之后,下面开始着手配置项。
具体设置如图:
这里最重要的一步就是设置环境变量:
ROCKETMQ_HOME=/Users/***/rocketmq
目录结构根据自己实际情况新建文件夹,后面会用到(本文中溪源以rocketmq为例)。
以下新建文件夹与上面配置的环境变量目录保持一致,例如:/Users/***/rocketmq,以下目录均基于rocketmq目录建立。
conf、store、logs
将distribution目录中conf
中的broker.conf、logback_broker.xml、logback_namesrv.xml
文件复制到上一步新建文件夹conf中。
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
##以下属于自己新增配置项
#nameserAddr地址,集群用分号;分割
namesrvAddr=127.0.0.1:9876
#存储路径
storePathRootDir=/Users/***/rocketmq/store
#commitLog存储路径
storePathCommitLog=/Users/***/rocketmq/store/commitLog
#消息队列存储路径
storePathConsumeQueue=/Users/***/rocketmq/store/consumeQueue
#消息索引存储路径
storePathIndex=/Users/***/rocketmq/store/index
#checkPoint文件存储路径
storeCheckpoint=/Users/***/rocketmq/store/checkpoint
#abort文件存储路径
abortFile=/Users/***/rocketmq/store/abort
/Users/***/rocketmq/
。
-c /Users/***/rocketmq/conf/broker.conf
ROCKETMQ_HOME=/Users/***/rocketmq
以上路径均属于上面自定义配置文件路径。 具体配置如图:
经历上面的一番配置后,最后一步就是启动生产者和消费者啦。 先提前说一下启动顺序:
到此,源码本地化构建已经成功啦,接下来就是熟悉rocketmq中的各种机制啦~