IoT Edge SendEventBatchAsync
IoT Edge SendEventBatchAsync
我目前一直在试验 Azure IoT Edge,并试图降低向 IoT 中心发送大量遥测数据的成本。
起初我是使用DeviceClient
和方法SendEventAsync()
发送消息。现在我正在保存它们并将它们作为一个批次发送。
据我了解,这是为了降低 IoTHub 的吞吐量并降低将遥测数据发送到 IoT Hub 的成本。但是,当我查看 IoT Hub 时,无论是立即发送还是每次保存并每 5 分钟批量发送一次,我仍然使用相同数量的消息。
我已经在网上搜索了一段时间了,我不知道我错过了什么。
我希望任何人都可以帮助我解决这个问题。
更多信息和我尝试过的事情:
我正在使用 C# 编写软件。我正在使用 DeviceClient 通过使用 AMQP 的透明网关发送消息。
我试过使用 MQTT 或 HTTP1 进行批处理,但都不起作用。 DeviceClient 甚至不支持 HTTP1。
The maximum message size for messages sent from a device to the cloud is 256 KB. These messages are metered in 4 KB blocks for the paid tiers so for instance if the device sends a 16 KB message via the paid tiers it will be billed as 4 messages.
所以在定价方面使用SendEventAsync()
或SendEventBatchAsync()
似乎并不重要。
此外,当涉及到 IoT Edge 时:您的叶设备通过哪种协议连接到 Edge Hub 不会影响 Edge Hub 连接到 IoT Hub 的方式。默认情况下,它将使用 AMQP,但如果需要,您可以通过 UpstreamProtocol
env variable 更改它。
如下评论所述:
我的理解是每条消息 4KB 是最大值。较小的消息也将被计为每条消息 1 条。您可以做的是在内部批处理消息并将多个实际遥测消息放入一个 Microsoft.Azure.Devices.Client.Message。这些应该是 IoT 中心配额的依据。你在那些有效载荷内的批处理方面所做的与配额无关紧要
我目前一直在试验 Azure IoT Edge,并试图降低向 IoT 中心发送大量遥测数据的成本。
起初我是使用DeviceClient
和方法SendEventAsync()
发送消息。现在我正在保存它们并将它们作为一个批次发送。
据我了解,这是为了降低 IoTHub 的吞吐量并降低将遥测数据发送到 IoT Hub 的成本。但是,当我查看 IoT Hub 时,无论是立即发送还是每次保存并每 5 分钟批量发送一次,我仍然使用相同数量的消息。
我已经在网上搜索了一段时间了,我不知道我错过了什么。
我希望任何人都可以帮助我解决这个问题。
更多信息和我尝试过的事情: 我正在使用 C# 编写软件。我正在使用 DeviceClient 通过使用 AMQP 的透明网关发送消息。 我试过使用 MQTT 或 HTTP1 进行批处理,但都不起作用。 DeviceClient 甚至不支持 HTTP1。
The maximum message size for messages sent from a device to the cloud is 256 KB. These messages are metered in 4 KB blocks for the paid tiers so for instance if the device sends a 16 KB message via the paid tiers it will be billed as 4 messages.
所以在定价方面使用SendEventAsync()
或SendEventBatchAsync()
似乎并不重要。
此外,当涉及到 IoT Edge 时:您的叶设备通过哪种协议连接到 Edge Hub 不会影响 Edge Hub 连接到 IoT Hub 的方式。默认情况下,它将使用 AMQP,但如果需要,您可以通过 UpstreamProtocol
env variable 更改它。
如下评论所述:
我的理解是每条消息 4KB 是最大值。较小的消息也将被计为每条消息 1 条。您可以做的是在内部批处理消息并将多个实际遥测消息放入一个 Microsoft.Azure.Devices.Client.Message。这些应该是 IoT 中心配额的依据。你在那些有效载荷内的批处理方面所做的与配额无关紧要