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

\

看新闻很累?看技术新闻更累?试试下载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的集成。

\\

f4cf6ae06e226f89e866de1391fe5200.png

\\

随后,在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