1. 获取源码
1.1. RocketMQ的主页
https://github.com/alibaba/RocketMQ
上面提供了一些使用方式,云上的,docker上的等等,我们从源码编译开始。
1.2. 检出源码
git-bash命令行方式:git clone https://github.com/alibaba/RocketMQ.git
浏览器或者下载工具下载地址:https://codeload.github.com/alibaba/RocketMQ/zip/master
如果需要特殊的版本,如图所示切换tag,然后检出
2. 前置条件
- jdk:源码的pom文件中指定了:
<maven.compiler.source>1.6</maven.compiler.source>
和<maven.compiler.target>1.6</maven.compiler.target>
,因此最低版本需要安装1.6以上 - maven:无特殊要求
- nexus:项目中间接引用到了一个
jenkins-1.26.pom
,中央仓库是找不到的,在jenkins的私有仓库。如果不配置nexus或者没有nexus的话,需要在源码pom里面指明仓库地址。仓库地址:http://repo.jenkins-ci.org/releases/
3. 编译
- 解压源码压缩包
- 进入源码目录,执行
mvn -Dmaven.test.skip=true clean package install assembly:assembly -U
注意:如果没有配置jenkins私有仓库地址,编译会卡在 rocketmq-tools
这里
4. 部署
将编译结果 alibaba-rocketmq-broker.tar.gz
解压,进入bin目录,阅读下 README.md 文档。
里面提到了在生产环境需要进行操作系统参数调优,是需要root权限的,且因为是直接写入系统配置文件,因此只能执行一次。这里我们只是简单的测试,就不用执行了
4.1. nameserver
查看启动脚本的说明:
sh mqnamesrv -h
或者sh mqna 大专栏 RocketMQ系列0x0——编译及简单部署mesrv --help
查看nameserver的所有配置项:
sh mqnamesrv -p
或者sh mqnamesrv --printConfigItem
nameserver的配置比较简单,一般情况下不需要配置文件,有需要修改的将上图内容放到配置文件中,启动的时候-c 指定配置文件路径
启动:
sh mqnamesrv
4.2. broker
查看启动脚本的说明:
sh mqbroker -h
或者sh mqbroker --help
查看broker的所有配置项:
sh mqbroker -p
或者sh mqbroker --printConfigItem
和nameserver不同的是,broker的配置项太多了,因此还提供了命令
sh mqbroker -m
或者sh mqbroker --printImportantConfig
用来显示较重要的配置broker的配置比较简单,一般情况下不需要配置文件,有需要修改的将上图内容或者
sh mqbroker -p
的结果放到配置文件中,启动的时候-c 指定配置文件路径启动:
sh mqbroker -c ../conf/2m-noslave/broker-a.properties
默认配置是不带namesrvAddr的,如果不在命令和配置文件中加上,那么broker能启动,但是不会去注册
5. mqadmin
提供了一些运维的子命令,直接运行可列出所有的子命令
5.1. 查看nameserver上注册的broker列表
命令:sh mqadmin clusterList -n 10.25.212.44:9876
5.2. 查看broker状态
命令:sh mqadmin brokerStatus -b 10.25.212.44:10911