移步官网选择自己心仪的版本下载,本人下载的rocketmq-4.9.3:
https://rocketmq.apache.org
由于是外网服务器,有一块网卡,有个内网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.conf3、启动
配置完成,接下来可以启动了
#启动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) OK4、官网客户端调用示例代码
https://rocketmq.apache.org/docs/simple-example/



