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了。

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

相关推荐
南山丶无梅落33 分钟前
文件上传漏洞1
apache·绕过·文件上传漏洞·网安·upload闯关·文件类型验证
我是一颗柠檬2 小时前
【Java项目技术亮点】多级缓存一致性方案:Canal+MQ实现数据库与缓存的最终一致
java·数据库·spring·缓存·kafka·rocketmq
kke_882 小时前
电商/教育/工具类小程序,UV分析的3种不同思路
大数据·apache
真香号20 小时前
记一次生产RocketMQ消息积压消费慢的排查与解决
数据库·rocketmq·java-rocketmq
nvd111 天前
深度解析:Apache Beam YAML 部署至 GCP Dataflow 的架构与最佳实践
架构·apache
Tenifs1 天前
深入对比分析 RabbitMQ、RocketMQ 和 Kafka
后端·kafka·消息队列·rabbitmq·rocketmq·爱编程的阿彬
Rick19931 天前
Kafka、RocketMQ、RabbitMQ 三大消息队列
kafka·rabbitmq·rocketmq
仙俊红2 天前
rocketmq学习
大数据·学习·rocketmq
27669582922 天前
拼多多m端/小程序 encrypt_info
java·小程序·apache·encrypt_info·encrypt_info解密·拼多多小程序·拼多多m端
ylscode3 天前
Apache CXF LDAP注入漏洞允许攻击者获取任意证书
apache