zoukankan      html  css  js  c++  java
  • 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
    

    重启镜像之后问题解决

  • 相关阅读:
    mysql语句-DDL语句
    Web框架本质
    HTTP协议那些事儿(Web开发补充知识点)
    利用random模块生成验证码
    前端小练习
    常用模块collections
    强大的图片展示插件,JQuery图片预览展示插件
    笔记本电脑清除BIOS密码
    js中的new Option默认选中
    使用PHPMailer发送邮件
  • 原文地址:https://www.cnblogs.com/lijunyzzZ/p/14687315.html
Copyright © 2011-2022 走看看