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

如何配置Airflow的RabbitMQ broker心跳使其显示在RMQ管理界面Connections页

配置RabbitMQ broker心跳的方法

你要的RabbitMQ传输层心跳不是Airflow应用层的worker心跳,是由Celery的底层传输组件控制的,通过以下步骤配置即可:

  • 打开airflow.cfg配置文件,定位到[celery]配置段
  • 修改/新增broker_transport_options参数,传入RabbitMQ心跳相关配置,示例如下:
broker_transport_options = {"heartbeat": 30, "heartbeat_checkrate": 2}

其中heartbeat参数就是RabbitMQ连接的心跳间隔,单位为秒,你可以按需调整数值;heartbeat_checkrate是客户端侧的心跳检测频率,上述示例代表每15秒(心跳间隔/检测频率)校验一次心跳是否正常。

  • 配置完成后,重启所有Airflow服务(scheduler、所有worker节点),即可在RabbitMQ管理后台的Connections页看到对应连接的心跳数值。
异常现象说明

部分连接无心跳值的原因

和zombie任务确实存在关联:Airflow 1.10.15版本对异常退出的任务进程/pod的连接回收逻辑存在缺陷,zombie任务残留的RabbitMQ连接没有活跃的心跳上报逻辑,就会显示为空。除此之外还有两个常见原因:

  • Airflow scheduler建立的短期同步连接,使用后未被即时回收,进入RabbitMQ的待释放队列
  • 旧版本kombu(Celery的RabbitMQ传输依赖库)的已知bug,偶发心跳上报中断但连接未被RabbitMQ服务端回收

删除连接后出现心跳为0的新连接的原因

该连接确实是Airflow worker创建的。当你在RabbitMQ后台主动断开worker的现有连接后,worker的连接池会自动触发重连逻辑,刚完成TCP握手但还未完成第一次心跳上报的连接,在RabbitMQ后台就会显示心跳值为0,等待1~2个心跳周期后就会自动更新为你配置的心跳值,属于正常现象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:30:05