一、什么是RocketMQ
RocketMQ是阿里巴巴开源的一个消息中间件,在阿里内部历经了双十一等很多高并发场景的考验,能够处理亿万级别的消息。2016年开源后捐赠给Apache,现在是Apache的一个顶级项目。
早期阿里使用ActiveMQ,但是,当消息开始逐渐增多后,ActiveMQ的IO性能很快达到了瓶颈。于是,阿里开始关注Kafka。但是Kafka是针对日志收集场景设计的,他的高级功能并不是很贴合阿里的业务场景。尤其当他的Topic过多时,由于Partition文件也会过多,这就会加大文件索引的耗时,会严重影响IO性能。于是阿里才决定自研中间件,最早叫做MetaQ,后来改名成为RocketMQ。最早他所希望解决的最大问题就是多Topic下的IO性能压力。但是产品在阿里内部的不断改进,RocketMQ开始体现出一些不一样的优势。
二、下载压缩包
RocketMQ的官网地址:http://rocketmq.apache.org
下载地址:https://rocketmq.apache.org/download
选择4.9.5稳定版本进行下载
三、安装RocketMQ
将下载好的rocketmq-all-4.9.5-bin-release.zip上传至服务器/usr/local/目录下:
解压:
unzip rocketmq-all-4.9.5-bin-release.zip
四、启动namesever
修改/usr/local/rocketmq-all-4.9.5-bin-release/bin/runserver.sh配置:
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改为:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
-- 进入rocketmq安装目录
cd /usr/local/rocketmq-all-4.9.5-bin-release
-- 启动nameserver服务
nohup bin/mqnamesrv &
查看nohup.out文件,出现
The Name Server boot success. serializeType=JSON
表示启动成功。
五、启动broker
1.修改配置文件:/usr/local/rocketmq-all-4.9.5-bin-release/conf/broker.conf
添加如下配置
#自动创建topic
autoCreateTopicEnable = true
#设置brokerip
brokerIP1 = 43.142.xx.xxx
#设置nameserverip
namesrvAddr = 43.142.xx.xxx:9876
调整runbroker.sh中的内存大小:
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
修改为:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"
2.启动 broker服务
-- 指定配置文件启动
nohup bin/mqbroker -c conf/broker.conf &
查看nohup.out文件,出现The broker[broker-a, 43.142.91.252:10911] boot success.代表broker启动成功。
使用jps命令查看启动的服务:
六、停止服务
# 1.关闭NameServer
bin/mqshutdown namesrv
# 2.关闭Broker
bin/mqshutdown broker