交代一下背景:

RocketMQ服务端搭建在ECS上面(问题就出在这里)

SpringBoot应用根据官网Demo(参考:https://github.com/apache/rocketmq-spring/tree/master/rocketmq-spring-boot-samples)构建

项目启动的时候就开始打印远程地址为空,发送消息失败并且也打印远程地址为空:

RocketmqRemoting: closeChannel: close the connection to remote address[] result: true

remote address是空的,开始以为是项目的rocketmq.name-server配置有问题,通过获取RocketMQTemplate的namesrvAddr发现没问题,代码如下

rocketMQTemplate.getProducer().getNamesrvAddr()

再看一下SendCallback的Throwable,错误信息如下:

org.apache.rocketmq.client.exception.MQClientException: Send [1] times, still failed, cost [5325]ms, Topic: ADDRESS_PART_TOPIC, BrokersSent: [broker-a]
See http://rocketmq.apache.org/docs/faq/ for further details.
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:638)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.access$300(DefaultMQProducerImpl.java:90)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl$3.run(DefaultMQProducerImpl.java:491)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.4:10911> failed
at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeAsync(NettyRemotingClient.java:537)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessageAsync(MQClientAPIImpl.java:484)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:441)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:811)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:557)
... 8 more

看到192.168.0.4:10911这个地址就知道问题是出在RocketMQ的Broker服务,192.168.0.4是ECS内网IP地址

这里再看一下Broker启动信息:

The broker[broker-a, 192.168.0.4:10911] boot success. serializeType=JSON and name server is X.X.X.X:9876

确定问题是brokerIP是服务器的内网IP导致producer无法与之建立连接导致

解决方法:

//查看broker配置
sh ./bin/mqbroker -m

在conf/broker.conf配置文件中增加

brokerIP1=X.X.X.X(公网IP)

再次启动broker服务

nohup sh bin/mqbroker -n 111.231.XX.XX:9876 -c conf/broker.conf autoCreateTopicEnable=true &

启动结果:

The broker[broker-a, X.X.X.X:10911] boot success. serializeType=JSON and name server is 106.12.x.x:9876

重启本地项目,测试producer发送消息成功

RocketMQ一直打印RocketmqRemoting closeChannel: close the connection to remote address[] result: true的更多相关文章

  1. org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout 和 RocketmqRemoting closeChannel: close the connection to remote address[] result: true

    org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout ...

  2. Bind 远程连接DNS服务器时出现 rndc: connection to remote host closed

    使用命令:rndc -s 192.168.1.2 status 连接远程的bind 搭建的DNS服务器时出现下面的错误:   rndc: connection to remote host close ...

  3. RocketMQ实战:生产环境中,autoCreateTopicEnable为什么不能设置为true

    1.现象 很多网友会问,为什么明明集群中有多台Broker服务器,autoCreateTopicEnable设置为true,表示开启Topic自动创建,但新创建的Topic的路由信息只包含在其中一台B ...

  4. RocketMQ初入门踩坑记

    本文主要是讲在Centos中安装RocketMQ并做简单的示例.如果你按照本文安装100%是可以成功的,如果按照阿里官方的说明,那只能呵呵了~ 安装 官方地址为:https://rocketmq.ap ...

  5. rocketMQ No route info of this topic 错误

    最近在使用rocketmq 发送消息,出现了No route info of this topic 异常,但奇怪的是我的其它的服务都可以成功发送,唯有crs服务不能成功发送,在网上搜索的解决方式基本上 ...

  6. springboot整合RocketMq(非事务)

    1.配置文件 1.yml配置文件 rocketmq: #mq配置 producer: iseffect: true type: default # (transaction,default) tran ...

  7. Kafka,RocketMQ,RabbitMQ部署与使用体验

    前言 近期在研究各种消息队列方案,为了有一个直观的使用体验,我把Kafka,RocketMQ,RabbitMQ各自部署了一遍,并使用了最基本的生产与消费消息功能.在部署过程中也遇到一些问题,特此记录. ...

  8. RocketMQ专题1:入门

    RocketMQ入门 源码和应用下载 ​ 这里以RocketMQ的4.3.0版本为例,本地环境为windows10,jdk1.8, maven3.2.1. 源码下载地址: http://mirrors ...

  9. RocketMQ详解(二)安装使用详解

    专题目录 RocketMQ详解(一)原理概览 RocketMQ详解(二)安装使用详解 RocketMQ详解(三)启动运行原理 RocketMQ详解(四)核心设计原理 RocketMQ详解(五)总结提高 ...

  10. RocketMQ(七):高性能探秘之MappedFile

    RocketMQ作为消息中间件,经常会被用来和其他消息中间件做比较,比对rabbitmq, kafka... 但个人觉得它一直对标的,都是kafka.因为它们面对的场景往往都是超高并发,超高性能要求的 ...

随机推荐

  1. 群晖DS218+部署PostgreSQL(docker)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 起因是懒 最近在开发中要用到PostgreSQL数据库 ...

  2. chatglm2-6b在P40上做LORA微调

    背景: 目前,大模型的技术应用已经遍地开花.最快的应用方式无非是利用自有垂直领域的数据进行模型微调.chatglm2-6b在国内开源的大模型上,效果比较突出.本文章分享的内容是用chatglm2-6b ...

  3. 《Python魔法大冒险》009 魔法之语:字符串的奥秘

    随着小鱼和魔法师的深入,他们来到了一个被薄雾笼罩的湖泊.湖中央有一个小岛,岛上有一棵巨大的古树,树上挂满了闪闪发光的果实,每一个果实上都刻着一个字母或符号. 小鱼好奇地问:"这些是什么果实? ...

  4. GIT提交修改的项目到远程仓库

    1.在项目目录下右键选择Git Bash. 2.执行提交命令三部曲 git add . //文件-暂存区,即将所有新增的文件添加到提交索引中,,add后面是"空格 点"就表示当前目 ...

  5. js获取当前月的天数

    //取得本月天数(实际代码:) var now=new Date(); var d = new Date(now.getFullYear(),now.getMonth()+1,0); var days ...

  6. C# MySqlHelp类 "DbModel.MySql"数据库操作类

    以前做易语言/PHP的. 最近刚入门C#, 就简单的封装了一个类库, 边学边玩才容易学到东西嘛, 比起sqlserver, 我还是觉得mysql更加有亲切感; 于是模仿ThinkPHP编写了一个&qu ...

  7. Vika and Her Friends

    Smiling & Weeping ----早知道思念那么浓烈,不分手就好了 题目链接:Problem - A - Codeforces 题目大意:有n个Vika的朋友在一个n*m的方格中去捉 ...

  8. 当你使用Taro时,你需要了解的一些事儿

    2017 年 1 月 9 日凌晨,万众期待的微信小程序正式上线,前有跳一跳等爆圈小游戏的带动,后有特殊时期下各类健康码小程序的加持,小程序成为了国内技术圈独树一帜的存在.但随着小程序的迅猛发展,其实在 ...

  9. @Validated指定校验顺序

    在Java中,使用@NotNull注解时,可以指定多个参数的顺序.为了指定顺序,你可以使用@GroupSequence注解. 首先,为每个需要校验的参数定义一个接口,并在接口上添加@GroupSequ ...

  10. Teamcenter RAC开发 GoToHelper

    RAC开发,有时候会用到发送到我的Teamcenter 可以参考 com.teamcenter.rac.tcapps 包下 package com.teamcenter.rac.tracelinks; ...