RocketMQ: 解決SpringBoot能連接上NameServer但是連接不上broker


問題:在使用docker部署rocketMQ之后使用SpringBoot連接消息隊列出現連接失敗

現象

按照https://zebinh.github.io/2020/07/RocketMQDeploymentWithSpringBootDemo/ 博客中搭建RocketMq,使用springBoot發消息的時候出現異常

異常大致信息就是 : 無法連接172.190.0.5:10911

配置rocketmq的時候我制定了broker的端口是10911端口,所以我斷定是連接broker出現了問題。

docker run --name rmqbroker -d -p 10911:10911 -p 10909:10909  --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" rocketmqinc/rocketmq:4.4.0 sh mqbroker

分析

上網了解了下,其實使用RocketMq的時候需要先找nameServer去拿到broker的地址,所以我感覺是nameServer上broker的地址出現了問題。

http://172.23.127.190:8080/#/cluster 控制台上看了下確實是這樣的。ip地址是docker的ip,而不是我虛擬機的ip。在使用SpringBoot發送消息的時候,SpringBoot是無法訪問到docker的。
所以只需要修改下brocker 往nameServer注冊的ip就可以

方案

重新創建使用配置的容器

需要修改brocker.conf里面的配置,但是我開始啟動的鏡像沒有使用配置,所以重新啟動一個:

docker run -d -p 10911:10911 -p 10909:10909 -v /root/data/broker/logs:/root/logs -v /root/data/broker/store:/root/store --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq:4.4.0 sh mqbroker  -c ../conf/broker.conf

from https://blog.csdn.net/qq_41322100/article/details/104490051

修改配置文件

這里最主要的是使用-c 參數來指定配置文件的地址

啟動之后使用如下命令進入鏡像

docker exec -it --user root rmqbroker bash
cd ../conf
vi broker.conf

加上一行

brokerIP1=192.168.1.116

重啟鏡像之后問題解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM