Kafka喜欢Kinesis Stream的补偿吗?

Man*_*odi 3 amazon-web-services amazon-kinesis

我过去曾与Kafka合作过,最近需要在AWS Kinesis Stream上移植部分数据管道.现在我已经读到Kinesis实际上是Kafka的一个分支并且有许多相似之处.

但是我没有看到我们如何让多个消费者从同一个流中读取,每个消费者都有相应的偏移量.每个数据记录都有一个序列号,但我找不到任何特定于消费者的信息(Kafka group Id?).

是否真的可以让不同的消费者拥有与同一AWS Kinesis Stream不同的摄取率?

az3*_*az3 7

是.

您可以拥有多个Kinesis Consumer Applications.假设你有2个.

  1. 第一个消费者应用程序(我认为它是Kafka中的"消费者群体")可以是"first-app"并将其存储在DynamoDB"first-app-table"中.它可以包含任意数量的节点(ec2实例).
  2. 第二个消费者应用程序也可以在同一个流上工作,并将它的位置存储在另一个DynamoDB表上,让我们说"second-app-table".

每个表将包含"应用程序Y的分片X上最后处理的位置"信息.因此,2个应用程序在不同的位置存储相同分片的检查点,这使它们独立.

关于摄取率,使用KCL的使用者应用程序中存在" idleTimeBetweenReadsInMillis "值,即Amazon Kinesis API for Get操作的轮询间隔.例如,第一个应用程序可以具有"2000"轮询间隔,因此它将每2秒轮询流的分片以查看是否有任何新记录.

我不知道卡夫卡,但据我记得; Kafka"分区"在Kinesis中是"碎片",同样Kafka"offset "在Kinesis中是" 序列号 ".Kinesis Consumer Library 对存储的序列使用术语" 检查点 ".就像你说的那样,概念是相似的.

  • 我们是否必须编写维护偏移量的逻辑(这里是序列号)?还是它内置的? (2认同)