org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException

异常信息

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

开发环境描述

rocketMq 版本是 4.9.0,部署在服务器主机上, Broker 部署为单节点(单机)模式,本地需要挂载VPN,和主机进行通信。

NameServer 和 broker 的启动都是默认的启动命令。

已安装 RocketMQ Dashboard 进行管理,页面确实比较方便。

排查过程

SpringBoot 整合 RocketMq 一个demo程序,进行简单的生产和消费。

搭建了本地 RocketMq 以及 RocketMQ Dashboard,测试正常。

但是只要配置服务器的 NameServer 地址,就抛出上面的异常,查看broker日志并没有相关的日志,推断是网络通讯有问题,也就是客户端和 broker 就没有建立正常的连接。

通过 RocketMQ Dashboard 查看 Cluster 信息,发现 broker 的地址根本就不是服务器主机的地址,网络也是不通的(telnet 测试),基本上就确定了问题所在。

错误原因解析

NameServer 是 RocketMQ 中的另一个关键组件,用于管理 Broker 的地址信息。

Broker 是 RocketMQ 中负责存储和传递消息的组件,而 Producer 和 Consumer 分别是生产和消费消息的客户端。

简单的说 NameServer 是一个注册中心,Producer 和 Consumer 不直接与 Broker 通信,而是通过 NameServer 发现 Broker 的地址。

在一些云服务提供商的环境中,Broker 地址可能会被动态分配,而不需要手动配置。这通常是通过云服务平台的服务发现机制实现的。

也就是说如果没有配置 Broker,那么 IP:PORT 就由主机进行分配。

所以呢,需要手动配置 Broker,指定 IP:PORT ,然后重启 Broker 就可以测试了。

解决和测试

Broker的配置文件在:/your_rocktMq_install_path/conf/broker.conf

手动配置broker的地址和端口:

复制代码
#手动分配地址
brokerIP1= your_ip
listenPort=10911

重启 Broker

bash 复制代码
cd /your_rocktMq_install_path/
# 停止broker
sh bin/mqshutdown broker
# 启动broker
nohup sh bin/mqbroker -n [your_namesever_url]:[port] -c /your_rocktMq_install_path/conf/broker.conf &

通过 RocketMQ Dashboard 查看 broker 的地址信息,应该已经是你配置的ip和端口了,进行测试,基本上就ok了。

综述: 就是一个网络通信问题,当然了,可能也有其他的原因。

相关推荐
Riu_Peter9 小时前
【记录】Apache SeaTunnel 系统监控信息
apache
喂完待续16 小时前
【Tech Arch】Hive技术解析:大数据仓库的SQL桥梁
大数据·数据仓库·hive·hadoop·sql·apache
SelectDB17 小时前
5000+ 中大型企业首选的 Doris,在稳定性的提升上究竟花了多大的功夫?
大数据·数据库·apache
喂完待续1 天前
Apache Hudi:数据湖的实时革命
大数据·数据仓库·分布式·架构·apache·数据库架构
数据爬坡ing2 天前
过程设计工具深度解析-软件工程之详细设计(补充篇)
大数据·数据结构·算法·apache·软件工程·软件构建·设计语言
运维行者_2 天前
使用Applications Manager进行 Apache Solr 监控
运维·网络·数据库·网络安全·云计算·apache·solr
皓空揽月2 天前
php+apache+nginx 更换域名
nginx·php·apache
求知若渴,虚心若愚。4 天前
高可用实战之Nginx + Apache篇
运维·nginx·apache
富士康质检员张全蛋5 天前
RocketMQ 消息存储机制 CommitLog和ConsumerQu
rocketmq
阿里云云原生5 天前
Apache RocketMQ EventBridge:为什么 GenAI 需要 EDA?
apache·rocketmq