You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pulsar配置RabbitMQ源连接器出现健康检查失败连接拒绝报错

问题根因

核心报错来自日志最内层栈:

Caused by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: /127.0.0.1:46247
  • 这个连接拒绝是Pulsar Function Worker主进程访问本地环回地址127.0.0.1:46247失败,该端口是Pulsar给RabbitMQ Source连接器子进程随机分配的gRPC健康检查端口,和远端RabbitMQ服务没有任何关系。
  • 你能在RabbitMQ管理台看到初始连接记录,已经证明RabbitMQ侧的网络连通性、账号权限、端口配置全部正常,完全不需要调整RabbitMQ服务端的任何配置。
  • 报错的本质是:RabbitMQ Source连接器对应的独立子进程启动后意外崩溃/提前退出,没有在本地指定端口上监听健康检查接口,Pulsar主进程轮询健康状态时直接触发连接拒绝。
常见触发原因
  • 本地运行Pulsar二进制时,给连接器/函数运行时分配的内存不足,连接器进程刚启动就因OOM被操作系统杀掉
  • Pulsar 2.10.0早期版本的RabbitMQ Source连接器存在已知的类加载冲突、依赖兼容问题,启动后抛出未捕获异常直接退出
  • 启动Pulsar的操作系统用户对Pulsar临时工作目录没有读写权限,连接器进程初始化写临时文件失败直接退出
  • 配置中填写的requestedChannelMax: 0参数和部分RabbitMQ版本的连接协商逻辑不兼容,连接器和RabbitMQ建连后触发未捕获异常退出
修复排查步骤
  1. 进入Pulsar安装目录下的logs/connectors/rabbit-connector-local-0路径,查看连接器独立进程的输出日志,这里会记录进程退出的具体错误栈,比Function Worker侧的健康检查报错信息精准得多
  2. 临时删除配置中的requestedChannelMax参数,或将其改为RabbitMQ默认的2047,验证是否为参数协商导致的进程崩溃
  3. 修改conf/functions_worker.yml中的functionRuntimeFactoryConfigs配置,给连接器进程分配不低于512MB的堆内存,避免OOM被杀
  4. 若当前使用Pulsar 2.10.0版本,建议升级到2.10.3及以上的稳定小版本,或单独替换RabbitMQ连接器为对应大版本的最新发行包,修复早期版本的类加载兼容问题

内容的提问来源于stack exchange,提问作者Filippos Ser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 01:09:35