比较 IoT 中心的消息路由和事件网格
Azure IoT 中心可以从已连接的设备流式传输数据并将该数据集成到商业应用程序中。 IoT 中心提供了两种将 IoT 事件集成到其他 Azure 服务或商业应用程序的方法。 本文讨论提供此功能的两个功能,以便你可选择最适合你的方案的选项。
注意
本文中提到的某些功能(例如云到设备消息传递、设备孪生、设备管理)仅在 IoT 中心的标准层中提供。 有关 IoT 中心基本层和标准/免费层的详细信息,请参阅选择适合你的解决方案的 IoT 中心层。
IoT 中心消息路由 :借助此 IoT 中心功能,用户可将设备到云消息路由到服务终结点,如 Azure 存储容器、事件中心、服务总线队列和服务总线主题。 路由还提供了一种查询功能,让你先筛选数据,再将其路由到终结点。 除了设备遥测数据之外,还可以路由非遥测事件,并将其用于触发操作。
IoT 中心与事件网格的集成:Azure 事件网格是一种完全托管的事件路由服务,使用发布 - 订阅模型。 IoT 中心和事件网格共同协作,准实时地将 IoT 中心事件集成到 Azure 和非 Azure 服务中。 IoT 中心同时发布设备事件和遥测事件。
差异
尽管消息路由和事件网格都启用了警报配置,但两者之间存在一些重要差异。 有关详细信息,请参照下表:
Feature | IoT 中心消息路由 | IoT 中心与事件网格的集成 |
---|---|---|
设备消息和事件 | 是,消息路由支持遥测数据、设备孪生更改、设备生命周期事件、数字孪生体更改事件和设备连接状态事件。 | 是,事件网格支持遥测数据和设备事件,例如已创建/已删除/已连接设备和已断开设备连接。 但事件网格不支持设备孪生更改事件和数字孪生体更改事件。 |
中间件排序 | 是,消息路由会维护事件的顺序。 | 否,事件网格不保证事件的顺序。 |
筛选 | 对消息应用程序属性、消息系统属性、消息正文、设备孪生标记和设备孪生属性执行的丰富筛选。 筛选不会应用于数字孪生更改事件。 有关示例,请参阅消息路由查询语法。 | 基于事件类型、使用者类型和每个事件中的属性进行筛选。 有关示例,请参阅了解在事件网格订阅中筛选事件。 订阅遥测事件时,可以对数据应用筛选器,以在发布到事件网格之前在 IoT 中心筛选消息属性、消息正文和设备孪生。 请参阅如何筛选事件。 |
Endpoints |
付费IoT 中心 SKU(S1、S2 和 S3)可以拥有每个 IoT 中心 10 个自定义终结点和 100 个路由。 |
事件网格支持每个 IoT 中心 500 个终结点。 有关最新的终结点列表,请参阅事件网格事件处理程序。 |
成本 | 不会针对消息路由单独收费。 仅针对 IoT 中心的遥测数据入口收费。 例如,如果将一条消息路由到三个不同终结点,将仅收取一条消息的费用。 | 不收取 IoT 中心费用。 事件网格每月免费提供前 100,000 次操作,之后每百万次操作收取 0.60 美元。 |
相似性
IoT 中心消息路由和事件网格也具有相似之处,其中一些详细信息如下表所示:
功能 | IoT 中心消息路由 | IoT 中心与事件网格的集成 |
---|---|---|
最大消息大小 | 256 KB,设备到云 | 256 KB,设备到云 |
可靠性 | 高:向终结点发送所有消息,每个路由至少一次。 所有未在一小时内发送的消息将会过期。 | 高:向 Webhook 发送所有消息,每个订阅至少一次。 所有未在 24 小时内发送的事件将会过期。 |
伸缩性 | 高:已经过优化,可支持数百万个同时连接的设备发送数十亿条消息。 | 高:每个区域每秒可路由 10,000,000 个事件。 |
延迟 | 低:准实时。 | 低:准实时。 |
发送到多个终结点 | 是,将一条消息发送到多个终结点。 | 是,将一条消息发送到多个终结点。 |
安全性 | Iot 中心提供每设备标识和可吊销的访问控制。 有关详细信息,请参阅 IoT 中心访问控制。 | 事件网格提供三点验证:事件订阅、事件发布和 Webhook 事件传送。 有关详细信息,请参阅事件网格安全性和身份验证。 |
如何选择
IoT 中心消息路由和 IoT 中心与事件网格的集成通过执行不同的操作来实现类似结果。 它们均从 IoT 中心解决方案中获取信息并传递信息,以便其他服务可作出反应。 那么,如何决定使用哪一种? 制定决策时,请思考以下问题:
要向终结点发送什么类型的数据?
必须将遥测数据发送到其他服务时,请使用 IoT 中心消息路由。 借助消息路由,还可以查询消息应用程序和系统属性、消息正文、设备孪生标记和设备孪生属性。
IoT 中心与事件网格的集成可与 IoT 中心服务中发生的事件一起使用。 这些 IoT 中心事件包括遥测数据,设备已创建、已删除、已连接和已断开连接。 订阅遥测事件时,在发布到事件网格之前,你可以对数据应用其他筛选器来基于你的 IoT 中心内的消息属性、消息正文和设备孪生进行筛选。 请参阅如何筛选事件。
哪些终结点需要接收此信息?
IoT 中心消息路由支持有限数量的终结点和终结点类型,但可构建连接器以将数据和事件重新路由到其他终结点。 有关受支持终结点的完整列表,请参阅上节中的表。
与事件网格的 IoT 中心集成支持每个 IoT 中心 500 个终结点和大量的终结点类型。 它本身集成了 Azure Functions、逻辑应用、存储和服务总线队列,并且还与 Webhook 配合使用,以便扩展向 Azure 服务生态系统外部发送数据以及将数据发送到第三方业务应用程序中。
数据按顺序到达是否重要?
IoT 中心消息路由保持消息的发送顺序不变,以便其以相同顺序到达。
事件网格不保证终结点按照事件的发生顺序接收事件。 如果消息的绝对顺序至关重要,并/或使用者需要消息的可信唯一标识符,建议使用消息路由。
后续步骤
- 了解有关 IoT 中心消息路由和 IoT 中心终结点的详细信息。
- 通过使用逻辑应用发送有关 Azure IoT 中心事件的电子邮件通知,尝试事件网格集成。