最近,微软正式发布Azure Event Hubs for Kafka。用户将获得两方面的好处——Kafka 的生态系统和工具,以及 Azure 的安全性和全球规模。此外,通过将两个功能强大的分布式流媒体平台集成在一起,用户无需管理服务器或网络即可访问 Kafka 生态系统应用程序。
6 月初,InfoQ报道了 Kafka 与 Azure Event Hubs 集成预览版,当时负责 Azure Event Hubs 的工程团队为他们的用户提供了一个 Kafka 端点,用于将事件数据通过流式的方式导入其中。现在,集成已经具备了一般可用性,并且该团队还添加了新功能,让用户能够从使用 Kafka 协议的应用程序将数据以流式的方式传输到 Event Hubs,而且只需要修改连接字符串。此外,用户可以继续使用现有的 Kafka 应用程序、框架和工具与 Event Hub 进行通信。
有了 Event Hubs for Kafka,用户可以使用 Kafka 协议直接将事件从应用程序流式传输到 Event Hubs。微软负责管理这项服务,用户不需要运行 Zookeeper,也不需要控制或配置任何群集。此外,Azure Service Bus 项目经理 Shubha Vijayasarathy 在最近的 Azure Friday 节目中说:
使用 Azure Event Hubs for Kafka 的最大好处是你不需要修改客户端,也不需要更改代码、生产者、应用程序、工具或框架。
用户也可以使用 Kafka Connect 或 MirrorMaker 与 Event Hubs 通信,也无需更改任何代码。
根据公告博客,Kafka 与 Azure Event Hub 集成的其他好处是:
利用 Event Hubs 将数据发送到 Blob 存储或 Data Lake 存储,以便进行长期保留或使用Event Hubs Capture微批次处理。
从兆字节数据级别扩展到太字节数据级别,同时通过Auto-Inflate控制何时以及可以扩展多少。
支持 Event Hubs for Geo Disaster-Recovery。
Event Hubs 与 Azure Databricks、Azure Stream Analytics 和 Azure Functions 等其他 Azure 服务深度集成。因此,用户可以进行进一步的分析和处理。
Event Hubs for Kafka 支持 Apache Kafka 1.0 及更高版本——该工程团队已经将Apache Kafka协议映射到原生 AMQP 1.0 协议。此外,这种协议转换允许其他基于 AMQP 1.0 的应用程序与 Kafka 应用程序通信。基于 JMS 的应用程序可以使用Apache Qpid向基于 Kafka 的消费者发送数据。
Azure Event Hubs 和 Kafka 都旨在处理大规模的实时流摄取,而且是分布式、分区的复制提交日志服务。此外,两者都使用了具有客户端游标概念的分区消费者模型,为工作负载提供了水平可伸缩性。通过为 Kafka 添加端点,Event Hub 可以模拟 Kafka。在 Azure Friday 节目中,Shubha Vijayasarathy 解释了两者的概念架构:
在 Event Hubs 的概念架构中,你有一个 Event Hub 或 Kafka 主题,两者非常相似。Event Hubs 或 Kafka 获取数据的方式都是通过分区,数据就分布在这些分区中。你有一群事件生产者,以及一群对这些数据感兴趣的事件接收者,数据以统一的模式分布在 Event Hubs 或 Kafka 主题中。
有关 Azure Event Hubs for Apache Kafka 的更多详细信息,请参见网站文档。定价页面提供了定价详情
查看英文原文:Microsoft Announces the General Availability of Azure Event Hubs for Apache Kafka
评论