最近正在备考微软的AZ 204 开发者认证考试,发现其中的对于Event Grids, Event Hubs和Service Bus的使用场景是一个重点,查找了微软的在线文章和Stackoverflow里的用户回答,翻译并总结了以下要点,分享出来以助大家快速区别这几个概念:
简单定义:
- Azure Event Grids: 简单事件驱动, 不负责处理事件,使用Publish-Subscription模型(Reactive Programming)
- Azure Event Hubs: 多源的大数据流处理平台,使用Pipeline存储和Push-Pull模型(用于Telemetry数据,Log数据)
- Azure Service Bus: 消息驱动,传统的企业代理消息传递系统,使用Queue存储和Push-Pull模型(类似 Azure Queue,且提供许多高级功能)
Event Grids与Event Hubs之间的区别
- Event Grids不保证事件的顺序,但Event Hubs使用带有有序序列的分区,因此它可以保证同一分区中的事件顺序。
- Event Hubs仅接受用于数据采集的端点,它们不提供响应机制,相对Event Grids会发送 HTTP 请求通知已发生的事件。
- Event Grids可以触发 Azure 函数。 对于Event Hubs,Azure 函数需要主动拉取和处理事件。
- Event Grids是一个Distribution系统,不是队列机制。 如果一个事件被导入,它会立即被导出,如果它没有得到处理,它就会不再存