Azure IoT on Edge - IoTSDK - 从 ModuleClient 读取一批消息

Azure IoT on Edge - IoTSDK - Read batch of messages from ModuleClient

我正在尝试开发一个高频消息调度应用程序,我正在观察 SDK 的行为,即使用“仅 TCP 上的 MQTT”传输设置从连接到 edgeHub 的 ModuleClient 读取消息。

似乎没有办法从edgeHub一次(批量)读取多条消息(我认为与底层协议有关)。 所以结果是必须依次读取消息、处理消息并将 ack 返回给集线器。

有没有一种方法可以同时处理多条消息而不用等待前一条消息的处理? 这种“限制”是否与底层协议有关?

我通过在 Kubernetes 工作负载上使用 Azure IoT Edge,在部署在 Azure Kubernetes (AKS) 上的 .NET Core 3.1 应用程序上使用 Microsoft.Azure.Devices.Client 1.37.2。

你是对的,不能在MQTT协议中使用batch。这是使用 MQTT 协议时与 IoTHub 相关的限制。

IoT Hub only supports batch send over AMQP and HTTPS at the moment. The MQTT implementation loops over the batch and sends each message individually.

参考:https://github.com/Azure/azure-iot-sdk-csharp

建议你增加一个新的功能请求,如果使用MQTT连接时需要IoTHub支持批处理:https://feedback.azure.com/forums/321918-azure-iot-hub-dps-sdks