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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值