栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

centos7上搭建RocketMQ并解决客户端访问遇到的坑

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

centos7上搭建RocketMQ并解决客户端访问遇到的坑

1、下载

移步官网选择自己心仪的版本下载,本人下载的rocketmq-4.9.3:
https://rocketmq.apache.org

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
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
4、官网客户端调用示例代码

https://rocketmq.apache.org/docs/simple-example/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/897231.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号