【问题标题】:Exceeded the maximum number of allowed receivers. Azure stream analytics job connected to Iot Hub超过了允许的接收器的最大数量。连接到 IoT 中心的 Azure 流分析作业
【发布时间】:2022-11-04 14:40:56
【问题描述】:

我有一个 Azure 流分析 (ASA) 作业,我用它来将事件从我的 Iot Hub 路由到一些函数应用程序和 blob 存储。我最近在 ASA 作业中选择了我的 IoT 集线器时,在输入预览中遇到了以下错误:

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

我最初认为这是由于 ASA 中的输出太多,因为我有 6 个,但我将其减少到 5 个并且仍然得到错误。然后,经过一些研究,问题似乎出在物联网中心/事件中心方面,有太多接收器试图访问同一个消费者组。我从here 得到这个假设:

EventHubReceiverQuotaExceeded 原因:流分析无法连接到 一个分区,因为每个允许的接收器的最大数量 已达到消费者组中的分区。建议:确保 其他流分析作业或服务总线资源管理器未使用 同一个消费群体。

所以我检查了我的天蓝色资源以确保,但我没有任何其他 ASA 作业,也没有任何服务总线资源管理器资源。我还进入了物联网中心,专门为我的 ASA 工作创建了一个新的消费者组,然后更改了我的 ASA 工作以使用这个消费者组。

不走运,我仍然收到错误消息。

关于可能导致这种情况的任何想法?

作为参考,这是我的 ASA 工作查询:

SELECT
    *
INTO
    storage
FROM
    iothub

SELECT
    *
INTO
    d2cMessages
FROM
    iothub

SELECT
    *
INTO
    storageQueueFunction
FROM
    iothub
WHERE
    recType LIKE '3'
    
SELECT
    *
INTO
    heartbeatD2CFunctionApp
FROM
    iothub
WHERE
    recType LIKE '51'

SELECT
    *
INTO
    ackC2D
FROM
    iothub
WHERE
    recType LIKE '54'

【问题讨论】:

    标签: azure azure-iot-hub azure-eventhub azure-stream-analytics


    【解决方案1】:

    您的工作中有多个查询,它们都从 IoT 中心输入读取。来自docs

    如果您的流式查询语法多次引用同一输入事件中心资源,则作业引擎可以使用来自同一使用者组的每个查询的多个读取器。当对同一个消费者组的引用过多时,作业可能会超过五个的限制并引发错误。

    一个简单的解决方法是创建一个临时结果集,如下所示:

    WITH telemetry AS (
       SELECT * FROM iotHub
    )
    

    然后,您可以将查询更改为从 telemetry 读取。

    SELECT
        *
    INTO
        storageQueueFunction
    FROM
        telemetry 
    WHERE
        recType LIKE '3'
    

    解决问题的另一种方法是为事件中心创建多个输入,每个输入都有不同的使用者组。

    【讨论】:

      猜你喜欢
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2014-09-23
      • 2018-02-12
      相关资源
      最近更新 更多