1、下载
移步官网选择自己心仪的版本下载,本人下载的rocketmq-4.9.3:
https://rocketmq.apache.org
wget https://archive.apache.org/dist/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
2、安装
由于是外网服务器,有一块网卡,有个内网IP(192.168.1.10),而客户端访问需要访问外网IP,暂定211.100.143.100。增加环境变量。可以添加到当前用户或者全局环境变量,添加内容,在服务器本地测试时候需要用到:
export NAMESRV_ADDR=211.100.143.100:9876
如果当前会话临时添加,直接执行以上代码即可。
在当前用户的环境变量
vi ~/.bash_profile
全局
vi /etc/profile
添加完成之后使环境变量生效
source ~/.bash_profile
常用命令:
jps -l
lsof -i
lsof -i:端口
netstat -tunlp
netstat -tunlp|grep 端口
nohup java -jar aaa.jar >/dev/null 2>&1 &
打开RocketMQ使用的端口
firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
解压
unzip rocketmq-all-4.9.3-bin-release.zip
cd rocketmq-4.9.3/
由于是测试服务器,资源有限,需要调整namesrv和broker内存占用。修改如下两个文件的启动参数
-server -Xms256m -Xmx256m
vi bin/runserver.sh
vi bin/runbroker.sh
修改broker的配置文件增加一行,brokerIP1 = 211.100.143.100。注意此时配置的是外网地址。
注意:
这个配置是在客户端注册的时候,namesrv告诉客户端的broker的所在地。如果配置内网地址,客户端无法连接broker
在做测试的时候,会报错:
org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
#增加brokerIP1 = 211.100.143.100
vi conf/broker.conf
注意:
需要打开9876和10911端口。
3、启动
配置完成,接下来可以启动了
#启动namesrv,注意参数是内网地址
nohup sh bin/mqnamesrv -n "192.168.1.10:9876" &
#实时查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log
#查看mqnamesrv的启动参数
sh ./bin/mqnamesrv -p
#启动broker,注意参数是内网地址
nohup ./bin/mqbroker -n localhost:9876 -c conf/broker.conf autoCreateTopicEnable=true &
#实时日志
tail -f ~/logs/rocketmqlogs/namesrv.log
#查看参数
sh ./bin/mqbroker -p
可以看到,当前配置已经支持自动创建topic
启动之后,可以用自带的生产、消费示例测试了
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
#SendResult [sendStatus=SEND_OK, msgId= ...
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
#ConsumeMessageThread_%d Receive New Messages: [MessageExt...
安装控制台console-ng,本人机器上有docker环境,所以就偷懒了,直接使用docker安装
#拉取镜像
docker pull styletang/rocketmq-console-ng
#下载完成后运行容器
docker run -e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=211.100.143.100:9876 -Drocketmq.config.isVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng
启动成功后访问:
http://211.100.143.100:8080/#/message
优雅关闭指令
sh bin/mqshutdown broker
#The mqbroker(36695) is running...
#Send shutdown request to mqbroker(36695) OK
sh bin/mqshutdown namesrv
#The mqnamesrv(36664) is running...
#Send shutdown request to mqnamesrv(36664) OK