RocketMQ连接报错RemotingConnectException: connect to <192.168.57.129:9876>解决

本文主要是介绍RocketMQ连接报错RemotingConnectException: connect to <192.168.57.129:9876>解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、RocketMQ 连接报错处理
    • 1.1 报错信息
    • 1.2 修改 broker.conf 文件
    • 1.3 Linux 开放端口
    • 1.4 项目启动成功


前言

上一篇文章:基于SpringBoot整合RocketMQ异步发送短信功能在项目启动的过程中报了 RocketMQ 连接错误。针对这个问题,本文给予记录。

一、RocketMQ 连接报错处理

1.1 报错信息

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-12-24 21:12:22.374 ERROR 26188 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failedjava.lang.RuntimeException: java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to [192.168.57.129:9876] failedat org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.registerContainer(ListenerContainerConfiguration.java:123) ~[rocketmq-spring-boot-2.2.2.jar:2.2.2]at java.util.HashMap.forEach(HashMap.java:1289) ~[na:1.8.0_181]at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.afterSingletonsInstantiated(ListenerContainerConfiguration.java:79) ~[rocketmq-spring-boot-2.2.2.jar:2.2.2]at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:963) ~[spring-beans-5.3.6.jar:5.3.6]at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.6.jar:5.3.6]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.6.jar:5.3.6]at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[spring-boot-2.4.5.jar:2.4.5]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782) [spring-boot-2.4.5.jar:2.4.5]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774) [spring-boot-2.4.5.jar:2.4.5]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) [spring-boot-2.4.5.jar:2.4.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) [spring-boot-2.4.5.jar:2.4.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340) [spring-boot-2.4.5.jar:2.4.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) [spring-boot-2.4.5.jar:2.4.5]at com.huang.quickstart.QuickStartApplication.main(QuickStartApplication.java:12) [classes/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.4.5.jar:2.4.5]

简单的理解就是 RocketMQ 连接不上虚拟机地址 192.168.57.129:9876 信息。

1.2 修改 broker.conf 文件

进入 broker.conf 目录下

cd /mydata/rocketmq/rocketmq-4.9.1/conf
vim broker.conf

加入两行(建议直接复制,然后再修改为自己的IP),一定是大写IP。

namesrvAddr=192.168.57.129:9876
brokerIP1=192.168.57.129

然后重启 nameserver 和 broker (一定要先启动 namesrv,因为消息服务器是注册到命名服务器上的)。

nohup sh mqnamesrv

再启动消息服务器,同时指定刚刚修改过的 conf 文件,不然还是会读取原本默认的阿里外网IP,还是会报错。

nohup sh mqbroker -n 192.168.57.129:9876 -c ../conf/broker.conf

备注:
-n 指定的是注册到哪个消息服务器上
-c 指定的是刚刚修改的conf配置文件

查看日志信息 namesrv 和broker 启动成功

[root@localhost bin]# cat nohup.out 
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
The broker[broker-a, 192.168.57.129:10911] boot success. serializeType=JSON and name server is 192.168.57.129:9876

重新启动 SpringBoot 项目,发现还是报错 !!!

1.3 Linux 开放端口

排查了一下原因:发现可能是 Linux 中 RocketMQ 的 9876 端口没有开放的问题!!!

1、开启防火墙

systemctl start firewalld

2、开放指定端口

firewall-cmd --zone=public --add-port=9876/tcp --permanent

备注:
–zone 作用域
–add-port=9876/tcp 添加端口,格式为:端口/通讯协议
–permanent 永久生效,没有此参数重启后失效

3、重启防火墙

firewall-cmd --reload

4、查看端口号
netstat -ntlp #查看当前所有tcp端口

netstat -ntulp |grep 9876 #查看所有9876端口使用情况

1.4 项目启动成功

1、开放端口以及重启防火墙

[root@localhost bin]# firewall-cmd --zone=public --add-port=9876/tcp --permanent
success
[root@localhost bin]# firewall-cmd --reload
success

2、重启启动 SpringBoot 项目

2023-12-24 21:38:39.978  INFO 24612 --- [  restartedMain] a.r.s.s.DefaultRocketMQListenerContainer : running container: DefaultRocketMQListenerContainer{consumerGroup='screening-record-consumer_status-change', namespace='', nameServer='192.168.57.129:9876', topic='screening-record-topic', consumeMode=CONCURRENTLY, selectorType=TAG, selectorExpression='status-change', messageModel=CLUSTERING', tlsEnable=false}
2023-12-24 21:38:39.978  INFO 24612 --- [  restartedMain] o.a.r.s.a.ListenerContainerConfiguration : Register the listener to container, listenerBeanName:screeningRecordStatusChangeConsumer, containerBeanName:org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer_2
2023-12-24 21:38:40.039  INFO 24612 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 9090 (http) with context path ''
2023-12-24 21:38:40.053  INFO 24612 --- [  restartedMain] c.h.quickstart.QuickStartApplication     : Started QuickStartApplication in 8.829 seconds (JVM running for 10.857)

3、项目启动成功,RocketMQ连接报错问题解决!!!

这篇关于RocketMQ连接报错RemotingConnectException: connect to <192.168.57.129:9876>解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/533476

相关文章

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,