微软发布用于 Kafka 生态系统的 Azure Event Hub 公开预览版

  • Steef-Jan Wiggers
  • 无明

2018 年 6 月 5 日

话题:Azure语言 & 开发架构

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在 Build 2018 大会期间,微软宣布它将支持 Kafka 客户端与Azure Event Hub的集成。负责 Azure Event Hub 的微软工程团队为用户提供了一个 Kafka 端点,用以接入事件数据。

Event Hub 是微软 Azure 的事件摄取服务,提供了一个高度可扩展的数据流平台。开发人员可以使用 Event Hub 代替 Kafka 集群,同时能够应用捕捉(Capture)、自动扩展(Auto-Inflate)和Geo 灾难恢复等功能。Tom Kerkhove 是来自 Codit 的 Azure 顾问,同时也是微软 Azure MVP,他告诉 InfoQ:

有了可以支持 Kafka 生态系统的 Event Hub,我可以使用 Kafka 协议,无需考虑基础设施问题,可以专注处理自己的事件。

Kafka 和 Azure Event Hub 都是可扩展的基于事件驱动的分布式消息平台,支持多个生产者和消费者。此外,两者都可用于处理由实时事件驱动的大规模流摄取。微软消息服务架构师 Clemens Vasters 在博文中表示:

从概念上讲,它们都是分布式、分区和复制的提交日志服务。两者都使用分区消费模式,为并行消费者提供大规模可扩展性。两者都使用了客户端游标概念,并可扩展到非常高的工作负载。

在创建 Event Hub 名称空间时启用 Kafka 端点就可以实现 Kafka 客户端应用程序与 Event Hub 的集成。



随后,在 Kafka 客户端,开发人员需要将参数切换到 Kafka 端点(即 Event Hub 名称空间的完全限定名)。此外,开发人员需要将安全机制设置为 PLAIN,并将 Event Hub 连接字符串作为密码。

bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

请注意,用于 Kafka 生态系统的 Azure Event Hub 公开预览版支持Apache Kafka 1.0及更高版本。不过,预览版存在一些限制,比如缺少对幂等生产者(Idempotent Producer)、HTTP Kafka API 和 Kafka Streams 等功能的支持。

在支持 Kafka 端点的同时,微软也推出了一个模拟 Kafka 功能的门面(facade)。 Pivotal 产品高级总监 Richard Seroter 在最近的一篇博文中写道:

Azure Cosmos DB 有自己的本地接口,但也有模拟 MongoDB 和 Apache Cassandra 的接口。 Azure Event Hub 最近加入了 Apache Kafka 接口。如果你有使用这些接口的应用程序或工具,那么就可以很方便地使用 Azure Event Hub。Azure 不提供 MongoDB、Cassandra 或 Kafka 服务,但它们的第一方服务可以让你不必更改代码即可获得 Azure 的服务。这是一个很好的策略。

Kafka 对 Event Hub 的支持目前仅在美国东部和西部地区可用,Event Hub 的价格详情请参阅定价页面。此外,有关 Kafka 支持的更多信息可在微软文档“用于 Kafka 生态系统的 Event Hub”上找到。

查看英文原文Microsoft Announces Azure Event Hubs for Kafka Ecosystems in Public Preview

Azure语言 & 开发架构