Azure 事件中心:原生支持 Apache Kafka 的实时数据流式处理平台

Azure 事件中心是云中的一种原生数据流式处理服务,它能够以较低的延迟每秒将数百万个事件从任何源流式传输到任何目标。 事件中心与 Apache Kafka 兼容。 它使你无需进行任何代码更改即可运行现有的 Kafka 工作负载。

企业可以使用事件中心来引入和存储流数据。 通过使用流数据,企业可以获得有价值的见解,推动实时分析,并在事件发生时响应事件。 他们可以使用此数据来提升整体效率和客户体验。

显示 Azure 事件中心如何适应事件流式处理平台的示意图。

事件中心是基于 Azure 构建的任何事件流式处理解决方案的首选事件引入层。 它与 Azure 内外的数据和分析服务集成,生成完整的数据流式处理管道来处理以下用例:

关键功能

在以下部分中了解 Azure 事件中心的主要功能。

Azure 事件中心上的 Apache Kafka

事件中心是一个多协议事件流式处理引擎,它原生支持高级消息排队协议 (AMQP)、Apache Kafka 和 HTTPS 协议。 因为它支持 Apache Kafka,所以你无需进行任何代码更改,即可将 Kafka 工作负载引入事件中心。 无需设置、配置或管理你自己的 Kafka 群集,也不需要使用非 Azure 原生的 Kafka 即服务产品。

事件中心是作为云原生代理引擎构建的。 因此,你能够以更好的性能、更好的经济效益运行 Kafka 工作负载,而且没有运营开销。

有关详细信息,请参阅适用于 Apache Kafka 的 Azure 事件中心

使用流分析实时处理流事件

事件中心与 Azure 流分析集成,以实现实时流处理。 借助内置的无代码编辑器,可以使用拖放功能轻松开发流分析作业,无需编写任何代码。

显示了“处理数据”页面的屏幕截图,其中包含“启用基于事件的实时见解”磁贴。

或者,开发人员可以使用基于 SQL 的流分析查询语言来执行实时流处理,并利用各种函数来分析流数据。

使用 Azure 数据资源管理器探索流数据

Azure 数据资源管理器是一个用于大数据分析的完全托管的平台,它可提供高性能,并支持近乎实时地分析大量数据。 通过将事件中心与 Azure 数据资源管理器集成,可以对流数据执行近乎实时的分析和探索。

显示了 Azure 数据资源管理器查询和输出的示意图。

有关详细信息,请参阅将数据从事件中心引入 Azure 数据资源管理器

Azure Functions、SDK 和 Kafka 生态系统

使用事件中心,你可以实时引入、缓冲、存储和处理流,以获取具有操作性的见解。 事件中心使用分区的使用者模型。 它可让多个应用程序同时处理流,并允许你控制处理速度。 事件中心还与 Azure Functions 集成,以实现无服务器体系结构。

有广泛的生态系统可用于行业标准 AMQP 1.0 协议。 这些 SDK 以 .NET、Java、Python 和 JavaScript 等语言提供,因此你可以从事件中心开始处理流。 所有支持的客户端语言提供低级别集成。

生态系统还允许你集成 Azure Functions、Azure Spring Apps、Kafka 连接器和其他数据分析平台和技术,例如 Apache Spark 和 Apache Flink。

事件流式处理灵活且经济高效

你可以通过事件中心的各个层级(包括标准层、高级层和专用层)实现灵活且经济高效的事件流式处理。 这些选项可满足从几 MB /秒到几 GB/秒的数据流需求。你可以选择适合你的需求的匹配项。

可缩放

使用事件中心可以从 MB 量级的数据流着手,然后逐步扩展到 GB 甚至 TB 量级的处理。 有很多选项根据用量需求扩展吞吐量单位数或处理单位数,而自动扩充功能是其中之一。

支持流式处理大型消息

在大多数流式处理场景中,数据的特点是轻量级,通常小于 1 MB,但具有高吞吐量。 在某些情况下,消息不能分成更小的段。 事件中心可通过自助式可缩放的专用群集容纳高达 20 MB 的事件,无需额外费用。 此功能允许事件中心处理各种消息大小,以确保业务运营不间断。

捕获流数据以供长期保留和批处理分析

在 Azure Blob 存储或 Azure Data Lake Storage 中近乎实时地捕获数据,以进行长期保留或微批处理。 可以基于用于派生实时分析的同一个流实现此行为。 设置捕获极其简单。

示意图显示了如何使用托管标识将事件中心数据捕获到 Azure 存储或 Azure Data Lake Storage 中。

工作原理

事件中心提供统一的事件流式处理平台和时间保留缓冲区,将事件生成者与事件使用者分离开来。 生成者和使用者应用程序可以通过多个协议执行大规模数据引入。

下图显示了事件中心体系结构的主要组件。

显示事件中心的主要组件的示意图。

事件中心的主要功能组件包括:

  • 生成者应用程序:这些应用程序可以使用事件中心 SDK 或任何 Kafka 生成者客户端将数据引入事件中心。
  • 命名空间:用于一个或多个事件中心或 Kafka 主题的管理容器。 管理任务(例如分配流式处理容量、配置网络安全、启用异地灾难恢复)是在命名空间级别处理的。
  • 事件中心/Kafka 主题:在事件中心内,可以将事件组织到事件中心或 Kafka 主题中。 它是仅进行追加的分布式日志,可以包含一个或多个分区。
  • 分区:它们用来缩放事件中心。 他们就像高速公路里的车道。 如果需要更多流式处理吞吐量,则可以添加更多分区。
  • 使用者应用程序:这些应用程序可以通过在事件日志中查找数据以及维护使用者偏移量来使用数据。 使用者可以是 Kafka 使用者客户端,也可以是事件中心 SDK 客户端。
  • 使用者组:此使用者实例逻辑组从事件中心或 Kafka 主题中读取数据。 它使多个使用者能够按照自己的节奏及其偏移量独立读取事件中心中的相同流数据。

若要开始使用事件中心,请参阅以下快速入门。

使用事件中心 SDK (AMQP) 对数据进行流式传输

可使用以下示例之一通过 SDK 将数据流式传输到事件中心。

使用 Apache Kafka 流式传输数据

可使用以下示例将数据从 Kafka 应用程序流式传输到事件中心。