RocketMQ安装配置
环境准备
- 操作系统:CentOS7.9
- 内存:16G+
- JDK:1.8
安装配置
安装包下载
下载地址:https://rocketmq.apache.org/zh/download
下载需要的版本的二进制安装包,本文档以RocketMQ4.9.5版本为例(rocketmq-all-4.9.5-bin-release.zip)
安装过程
从官方下载的RocketMQ的二进制包是已经编译好的可运行的包,只需要解压缩并配置就可以使用
安装
使用sftp工具,将安装包(rocketmq-all-4.9.5-bin-release.zip)上传到目标服务器的home目录下
然后依次执行以下命令
cd /home
unzip rocketmq-all-4.9.5-bin-release.zip
mv rocketmq-all-4.9.5-bin-release rocketmq
配置
RocketMQ默认的内存配置较高,可以按照以下的配置方式,对内存、namesrv、broker等进行配置(生产环境下,内存配置不用修改,使用默认配置即可,本地测试环境根据内存情况配置)
namesrv 内存配置
vi /home/rocketmq/bin/runserver.sh
修改runserver.sh中对于jvm堆内存的配置,例如:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
broker 内存配置
vi /home/rocketmq/bin/runbroker.sh
修改runbroker.sh中对于jvm堆内存的配置,例如:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g"
tools 内存配置
如果需要使用RocketMQ自带的工具进行测试验证,同样需要调整其JVM内存配置
vi /home/rocketmq/bin/tools.sh
修改tools.sh中对于jvm堆内存的配置,例如:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
broker.conf 配置
vi /home/rocketmq/conf/broker.conf
在配置文件中增加以下配置:
brokerIP1=10.216.60.60
brokerIP2=10.216.60.60
namesrvAddr=10.216.60.60:9876
autoCreateTopicEnable=true
启动/停止
RocketMQ启动时,应按照顺序先启动namesrv,再启动broker
启动namesrv
nohup sh mqnamesrv -n "10.216.60.60:9876" &
tail -f /root/logs/rocketmqlogs/namesrv.log
在namesrv.log 中看到 ‘The Name Server boot success…’, 表示NameServer已成功启动
启动broker
nohup sh mqbroker -c /home/rocketmq/conf/broker.conf &
tail -f /root/logs/rocketmqlogs/broker.log
在broker.log中看到“The broker[brokerName,ip:port] boot success…”,表示broker已成功启动
停止namesrv
cd /home/rocketmq/bin
sh mqshutdown namesrv
停止broker
cd /home/rocketmq/bin
sh mqshutdown broker
测试
环境变量设置
使用tools.sh工具测试时,需要先设置系统环境变量
vi /etc/profile
source /etc/profile
测试producer
cd /home/rocketmq/bin
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
测试consumer
cd /home/rocketmq/bin
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
本地服务测试
在安装RocketMQ的机器上,部署一个平台服务,可通过curl命令调用平台服务测试服务的发布和订阅
curl -X POST -H "Content-Type:application/json" -d '{"hostname": "测试主机","hostip": "告警IP:127.0.0.1","date": "str3","trigger": "str4","lastvalue": "str5","status": "str6","level": "str7","detail": "str8"}' "http://10.216.60.60:10011/api/appsys/rocketmqrest/send-msg-mq"
注意事项
JAVA环境变量设置
在安装RocketMQ前,需要在目标服务器上安装jdk1.8,并配置java环境变量,可参考以下示例
vi /etc/profile
source /etc/profile
端口说明
使用rocketmq,需要开放以下端口
- 9876:namesrv使用
- 10911:listenPort,broker(Master)默认监听端口号,RemotingService服务组件使用,用来对Producer和Consumer提供服务,可通过配置文件修改
vi /home/rocketmq/conf/broker.conf
- 10909:fastListenPort,FastRemotingService服务组件使用,默认值是listenPort - 2,可通过配置文件修改
vi /home/rocketmq/conf/broker.conf
- 10912:haListenPort,HAService服务组件使用,用于broker的主从同步,默认值为listenPort + 1,可通过配置文件修改
vi /home/rocketmq/conf/broker.conf
- 11011:listenPort,broker(Slave)默认监听端口号,2节点集群模式下需要
RemotingService和FastRemotingService区别
- Broker端
RemotingServer可以处理客户端所有请求,如:生产者发送消息的请求,消费者拉取消息的请求。 FastRemotingServer功能基本与RemotingServer相同,唯一不同的是不可以处理消费者拉取消息的请求。 Broker在向NameServer注册时,只会上报RemotingServer监听的listenPort端口。 - 客户端
默认情况下,生产者发送消息是请求FastRemotingServer,我们也可以通过配置让其请求RemotingServer;消费者拉取消息只能请求RemotingServer。