Use Azure Event Hubs from Apache Kafka applications
Kafka是什么
流式数据处理平台
Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines,streaming analytics,data integration,and mission-critical applications.
Kafka 和Event Hub概念映射
Kafka Concept |
Event Hubs Concept |
Cluster(集群) |
Namespace |
Topic |
Event Hub |
Partition |
Partition |
Consumer Group |
Consumer Group |
Offset |
Offset |
*这个使用者组合Kafka Consumer中Group是类似的概念,但是从下面的图例看,Kafka的每个消费组 Group 都能同时消费同一Topic的消息,Azure Event Hub则不是,更多的是并行事件使用。
Partition
Offset(偏移量)和消息的顺序
每一个consumerGroup的书签,为了定位消息和重复消费,与consumer没有关系基于consumerGroup
Partition 中的每条记录都会被分配一个唯一的序号,称为 Offset(偏移量)。
Offset 是一个递增的、不可变的数字,由 Kafka 自动维护。
当一条记录写入 Partition 的时候,它就被追加到 log 文件的末尾,并被分配一个序号,作为 Offset。
Partition&consumer&consumerGroup
1个Partition中的消息可以被不同的组重复消费,但只能由1个consumerGroup中的1个consumer消费(不能出现一个group中的不同consumer读取同一个partition)
1个consumer可以拉取多个Partition中的消息
consumerGroup 确定 partition中的消息消费进度 每一个consumerGroup记录一个offset
1个consumerGroup中,consumer的个数超过partirion的个数是没有意义的,会有部分consumer无法读取数据