Apache RocketMQ是阿里原来的RocketMQ开源捐赠给Apache基金会的,目前已成为Apache下的顶级项目。RocketMQ 4.0以下的版本是RocketMQ还未进入Apache孵化的阿里内部release版本,4.0以后是进入apache项目后release的版本。因此从4.0后RocketMQ的客服端源代码包名发生了变化,maven依赖也发生了变化。
安装
下载zip的二进制版本解压,解压时需要用指定解压到什么目录,这和tar命令解压是有区别。unzip解压不指定解压缩目标目录,解压后程序的各文件目录会分散到当前目录,这个和在window上解压是一样的,需要解压到指定文件夹,当然如果根据官方文档使用maven编译打包则不存在上面的问题。不想安装maven自己编译的可以使用下面方式。
# unzip -o rocketmq-all-4.2.0-bin-release.zip -d rocketmq
# cd rocketmq
启动Name Server
# nohup sh bin/mqnamesrv &
# tail -f ~/logs/rocketmqlogs/namesrv.log
启动Broker
# nohup sh bin/mqbroker -n localhost:9876 &
# tail -f ~/logs/rocketmqlogs/broker.log
启动mqbroker时需要确保宿主机有足够的内存,官方默认设置的-Xms8g -Xmx8g -Xmn4g都比较大,如果宿主机内存不够,对于只是安装个虚拟机测试使用RocketMQ,则可以在bin目录下将runbroker.sh中的jvm启动参数设置小一些。
关闭服务
# sh bin/mqshutdown broker
# sh bin/mqshutdown namesrv
connect to <172.17.42.1:10911> failed问题
这个ip是docker0的虚拟网卡的网关,但是启动rocketMQ时并没有设置这个ip,因此在启动Broker时指定ip的本机ip。 ps:参照官方的文档安装在命令行测试不会存在该问题,该问题主要是在开发时在开发环境连接到RocketMQ的服务器上才会出现该问题
# echo "brokerIP1=localhost" > conf/broker.properties
# nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.properties &
总结
写本文记录的目的主要并不是去介绍安装,因为官方的文档已经给了安装步骤,但是在安装和编写客户端代码测试的时候可能出现上面描述的一些问题。