RocketMQ学习第一步之源码构建

云市场 2020-09-16 11:47:01



绪论

最近溪源在学习dubbo的相关API机制实践,如:负载均衡、服务分组、本地存根等等…一方面是dubbo官网文档给出了详细的介绍和demo,另一方面由于自己时间方面原因(自己现在也需要学习各种技术栈),没有整理相关实践总结。但是后面一定会整理出相关的实践总结。
今天主要给大家介绍一下rocketmq源码本地化构建,也是由于溪源项目中暂时未使用该技术栈,如果自己想要学习和精进,那只能阅读一下源码和了解相关机制啦!
好啦好啦~不再絮叨啦,无实际作用,下面进入今天的正题。

源码构建

首先,分享出rocketMQ相关资料:
项目地址:https://github.com/apache/rocketmq
中文文档:https://github.com/apache/rocketmq/tree/master/docs/cn
在这里插入图片描述

1.clone

源码本地化构建肯定是clone啦,大家都明白。
命令 : git clone https://github.com/apache/rocketmq.git
或者大家可以使用idea直接New->Version Control
在这里插入图片描述

2. 构建

项目克隆结束以后,输入命令构建:mvn clean install -U -DskipTests
但是但是~会那么轻松让我们构建成功吗??哈哈,惊喜终于来了—[ERROR]
在这里插入图片描述

  • 解决方案
    Error:不再支持源选项 6。请使用 7或更高版本。
    修改pom.xml文件中plugin
<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>

在这里插入图片描述修改结束,再次输入上面的构建命令,静静地等待构建、下载依赖等~在这里插入图片描述

3.配置

构建完成之后,下面开始着手配置项。

3.1配置namesrv

在这里插入图片描述具体设置如图:在这里插入图片描述这里最重要的一步就是设置环境变量:ROCKETMQ_HOME=/Users/***/rocketmq
目录结构根据自己实际情况新建文件夹,后面会用到(本文中溪源以rocketmq为例)。

3.2新建文件夹

以下新建文件夹与上面配置的环境变量目录保持一致,例如:/Users/***/rocketmq,以下目录均基于rocketmq目录建立。

  1. rocketmq中新建conf、store、logs
    在这里插入图片描述

  2. 配置conf
    在这里插入图片描述将distribution目录中conf中的broker.conf、logback_broker.xml、logback_namesrv.xml文件复制到上一步新建文件夹conf中

  3. 修改broker.conf文件
    修改上步复制的broker.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
  1. 修改logback_namesrv.xml配置:
    需要${user.home}替换成自己上一步配置的文件夹路径;例如/Users/***/rocketmq/
    在这里插入图片描述

3.3 配置broker

  1. program参数:-c /Users/***/rocketmq/conf/broker.conf

  2. 环境变量:ROCKETMQ_HOME=/Users/***/rocketmq

以上路径均属于上面自定义配置文件路径。
具体配置如图:
在这里插入图片描述

3.4 配置producer

在这里插入图片描述

3.5 配置 consumer

在这里插入图片描述

4.启动

经历上面的一番配置后,最后一步就是启动生产者和消费者啦。
先提前说一下启动顺序:

  1. 启动org.apache.rocketmq.namesrv.NamesrvStartup
  2. 启动org.apache.rocketmq.broker.BrokerStartup
  3. 启动生产者org.apache.rocketmq.example.quickstart.Producer
  4. 启动消费者org.apache.rocketmq.example.quickstart.Consumer
    如图:消费者已经成功消费消息
    在这里插入图片描述到此,源码本地化构建已经成功啦,接下来就是熟悉rocketmq中的各种机制啦~