解决方案构想
本文介绍了一种解决方案构想。 云架构师可以通过本指南来帮助可视化此体系结构的典型实现的主要组件。 以本文为起点,设计一个符合工作负荷特定要求的架构合理的解决方案。
本文介绍在 Azure Kubernetes 服务 (AKS) 上运行的带有 KEDA 缩放器的无服务器事件驱动体系结构的变体。 此解决方案引入数据流并处理数据,然后将结果写入后端数据库。
体系结构
下载此体系结构的 Visio 文件。
数据流
- 带有 KEDA 缩放器的 AKS 用于根据需要处理的事件数自动缩放 Azure Functions 容器。
- 事件到达输入事件中心。
- 触发“取消批处理和筛选”Azure 函数以处理事件。 此步骤会筛选掉不需要的事件,并对收到的事件取消批处理,然后再提交到输出事件中心。
- 如果“取消批处理和筛选”Azure 函数无法成功存储事件,则会将事件提交到死信事件中心 1。
- 到达输出事件中心的事件会触发“转换”Azure 函数。 此 Azure 函数将事件转换为适用于 Azure Cosmos DB 实例的消息。
- 该事件将存储在 Azure Cosmos DB 数据库中。
组件
- Azure Kubernetes 服务 (AKS) 通过减少 Azure 的运营开销,简化了在 Azure 中部署托管 Kubernetes 群集的过程。 作为一个托管的 Kubernetes 服务,Azure 可以自动处理运行状况监视和维护等关键任务。
- KEDA 是一种事件驱动的自动缩放器,用于根据需要处理的事件数来缩放 Kubernetes 群集中的容器。
- 事件中心引入数据流。 事件中心面向高吞吐量数据流方案。
- Azure Functions 是一个无服务器计算选项。 它使用事件驱动的模型,其中的一段代码(“函数”)由触发器调用。
- Azure Cosmos DB 是一个多模型数据库服务,可在基于消耗的无服务器模式下使用。 对于此方案,事件处理函数将使用 Azure Cosmos DB for NoSQL 存储 JSON 记录。
注意
对于物联网 (IoT) 场景,建议使用 Azure IoT 中心。 IoT 中心包含与 Azure 事件中心 API 兼容的内置终结点,因此,无需对后端处理进行重大更改,就能在本体系结构中使用任一服务。 有关详细信息,请参阅将 IoT 设备连接到 Azure:IoT 中心和事件中心。
方案详细信息
本文介绍在带有 KEDA 缩放器的 AKS 上运行的无服务器事件驱动体系结构。 此解决方案引入数据流并处理数据,然后将结果写入后端数据库。
可能的用例
实现端到端事件流处理模式的一个常用用例包括了事件中心流式引入服务,以便使用通过高度可扩展的、事件中心触发的函数实现的取消批处理和转换逻辑来按秒接收并处理事件。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Rajasa Savant | 高级软件开发工程师
若要查看非公开领英个人资料,请登录领英。