【问题标题】:Sending message to Azure IoT hub partition向 Azure IoT 中心分区发送消息
【发布时间】:2017-03-28 18:06:20
【问题描述】:

有谁知道是否有一个库允许您使用 Azure 将消息发送到 IoT 中心的特定分区。 我以前能够使用 azuresblite 库来实现这一点,不幸的是我无法使用。 https://github.com/ppatierno/azuresblite

【问题讨论】:

  • IoT Hub 中没有分区。
  • @CSharpRocks ,你确定吗?当您创建 IoT 中心时,它会要求您提供分区计数。您还可以在端点选项卡中查看分区数
  • 你说得对,我在考虑单位。我不确定您是否可以从发件人指定分区。你看过这个吗? docs.microsoft.com/en-us/azure/iot-hub/…
  • @CSharpRocks 您在向 IoT 中心发送消息时无法指定分区。您阅读了从 IoT 中心接收消息部分,您可以在其中指定要从哪个分区读取。
  • 谢谢@astaykov!

标签: azure iot servicebus partition azure-iot-hub


【解决方案1】:

无法将消息发送到特定分区。时期。 分区在内部用于允许扩展 IoT(事件中心)并允许扩展消费者应用程序(从中心读取事件的应用程序)。

虽然您可以在使用事件中心时指定分区键,但这确实标识了分区 ID。并且使用 IoT Hub,指定分区键的选项无论如何都是隐藏的,您无法影响它。在 Event Hub 中为消息指定分区键只会确保具有相同分区键的所有消息都将落入同一分区。但是您无法分辨哪个分区(0,1,2..n)。我见过一些项目试图在文学上滥用分区并将它们用作“租户”。完全滥用事件中心的可扩展性的非常错误的方式。

请不要滥用事件中心的分区(无论如何它是物联网中心的后端系统)。不要强制使用分区键。因此,您正在失去事件中心的平衡,并且可能会走向错误的方向。相反,请明确定义您要解决的技术问题,我们或许可以为您提供帮助。

【讨论】:

  • 有没有办法在 iot hub 内为多个租户隔离数据?我有一个想法在 MQTT 中使用主题,但这不可能使用事件处理器主机来消费数据
【解决方案2】:

Azure IoT 中心可确保从 IoT 中心读取消息时消息的正确排序。 PF链接了解更多详情—— https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-d2c#ordering-guarantees-with-at-least-once-delivery

【讨论】:

  • 我还发现 - 对于给定的设备 ID,IoT 中心使用设备 ID 的哈希值来确定存储其消息的分区。这也有助于确保在从 IoT 中心读取消息时正确排序。docs.microsoft.com/en-us/azure/iot-hub/iot-hub-amqp-support>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多