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

Azure Stream Analytics连接IoT Hub触发接收器数量超限错误求助

问题分析与解决方案

问题描述

Azure Stream Analytics(ASA)作业将IoT Hub事件路由至多个函数应用和Blob存储,输入预览时出现错误:

与EventHub通信时遇到错误:已超出消费者组中每个分区允许的最大接收器数量(5个)。已连接接收器列表 - [UID列表]

已尝试减少输出至5个、创建专属消费者组,但问题仍存在。作业查询包含5个独立的SELECT INTO语句,均从同一IoT Hub输入读取。

核心原因

  1. 多查询分支占用全部配额:每个独立的SELECT INTO语句都会对IoT Hub的每个分区创建一个独立接收器,5个查询分支刚好占满5个配额。而ASA的输入预览功能会额外创建一个临时接收器,直接触发超出限制的报错。
  2. 残留连接未释放:即使更换了消费者组,若旧的作业实例未完全停止,之前的接收器连接可能未及时断开(Event Hub连接超时通常为5分钟),叠加新连接后触发配额限制。

解决方案

1. 重构查询,复用输入连接

将多个独立查询合并为单输入读取、多分支输出的结构,仅创建一个接收器即可满足所有输出需求。修改后的查询示例:

WITH inputData AS (
    SELECT * FROM iothub
)
SELECT * INTO storage FROM inputData;

SELECT * INTO d2cMessages FROM inputData;

SELECT * INTO storageQueueFunction FROM inputData
WHERE recType LIKE '3';

SELECT * INTO heartbeatD2CFunctionApp FROM inputData
WHERE recType LIKE '51';

SELECT * INTO ackC2D FROM inputData
WHERE recType LIKE '54';

通过WITH子句统一读取一次IoT Hub数据,再分发给各个输出分支,避免重复创建接收器。

2. 预览前停止作业

作业运行状态下,预览操作会额外占用一个接收器配额。预览前先停止ASA作业,待预览完成后再重新启动。

3. 等待残留连接释放

更换消费者组后若仍报错,可等待5-10分钟,让旧的未释放连接自动断开,再重试预览或启动作业。

4. 排查隐藏连接源

确认是否有其他未注意到的资源占用接收器:

  • 本地开发环境中是否有调试代码连接了该消费者组
  • IoT Hub的事件网格订阅等内置服务是否使用了同一消费者组
  • 第三方监控工具是否在后台保持连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:20:31