首页 > 代码库 > Azure IoT 技术研究系列5-Azure IoT Hub与Event Hub比较

Azure IoT 技术研究系列5-Azure IoT Hub与Event Hub比较

上篇博文中,我们介绍了Azure IoT Hub的使用配额和缩放级别:

Azure IoT 技术研究系列4-Azure IoT Hub的配额及缩放级别

本文中,我们比较一下Azure IoT Hub和Event Hub,同时启动Azure Event Hub(事件中心)的研究。

Azure IoT Hub的另一个主要应用场景是从设备侧接收遥测数据。 与 Azure IoT Hub一样,Azure Event Hub是一个事件处理服务,主要用于向云端提供大规模的事件与遥测数据入口,并且具有较低的延迟和较高的可靠性,其有点类似于Kafka作为Hadoop数据入口的场景,唯一不一样的是Azure Event Hub以事件为主要载体和抓手,Kafka更多是各种数据。在我们的实际应用场景中,Kafka作为监控数据、业务数据、设备侧数据的数据缓冲和入口。

回到正题,Azure IoT Hub和Azure Event Hub的主要不同有哪些:

1. 通信模式

    Azure IoT Hub:启用设备到云通信(消息传递、文件上传及报告属性)和云到设备之间的通信(直接方法、所需属性、消息传递)

    Azure Event Hub: 仅支持事件引入(通常视为设备到云的方案)

2. 设备状态管理

    Azure IoT Hub:可存储和查询设备状态信息

    Azure Event Hub: 不支持

3. 设备通信协议支持

   Azure IoT Hub: 支持 MQTT、基于 WebSockets 的 MQTT、AMQP、基于 WebSockets 的 AMQP 和 HTTP。 此外,IoT 中心还可使用 Azure IoT 协议网关(一种可自定义协议网关实现)以支持自定义协议。

   Azure Event Hub: 支持 AMQP、基于 WebSockets 的 AMQP 和 HTTP。

4. 安全

   Azure IoT Hub:提供每个设备的标识与可吊销的访问控制权限

   Azure Event Hub: 提供事件中心范围的共享访问策略,通过发布者策略提供有限的权限吊销支持

5. 弹性伸缩

   Azure IoT Hub:支持数百万个设备同时连接

   Azure Event Hub: 可支持的同时连接数具有更大的限制:根据 Azure 服务总线配额,最多只支持 5,000 个 AMQP 连接,另一方面,支持每个发送的消息指定分区

6. 设备SDK

   Azure IoT Hub:除直接 MQTT、AMQP 和 HTTP API 外,还为各种平台和语言提供设备 SDK

   Azure Event Hub: 在 .NET、Java、C 以及 AMQP 和 HTTP 发送接口上提供支持

7. 文件上传

   Azure IoT Hub:支持将文件从设备上载到云

   Azure Event Hub: 不支持

综上,Azure IoT Hub主要处理设备到云、云到设备之间的通信,而Azure Event Hub处理的是将后期事件引入实时处理引擎,后者比较类似Kafka将数据写入Hadoop再进行大数据分析场景。

 

周国庆

2017/5/1

Azure IoT 技术研究系列5-Azure IoT Hub与Event Hub比较