在Kafka中,我可以将主题划分为多个分区。在Kafka中,我不能拥有比分区更多的使用者,因为分区被用作扩展主题的一种方式。如果我有更多的负载,则可以增加分区数,这将允许我增加使用者的数目,这将使我可以对给定主题进行更多的线程/进程处理。
在卡夫卡,有一个消费群体的概念。如果我们在一个主题上有10个消费者组,则每个消费者组将有机会处理一个主题中的每条消息。使用者组仍然利用分区的可伸缩性(即每个使用者组最多可以有'n'个使用者,其中'n'是一个主题上的分区数)。这就是kafka的优点,可扩展性和多 channel 读取是两个独立的概念,需要旋转两个独立的旋钮。
在Kinesis中,我们被告知,如果使用Kinesis库客户端,则可以通过定义不同的Kinesis应用程序来获得与使用者组相同的功能。换句话说,我们可以有不同的Kinesis应用程序独立地从同一流和不同时间流式传输所有记录。
我们还被告知“Amazon Kinesis客户端库(KCL)为每个Amazon Kinesis应用程序自动创建一个Amazon DynamoDB表,以跟踪和维护状态信息,例如重新分片事件和序列号检查点。”
好的,所以我准备开始阅读KCL代码here了,但是我希望有人可以回答这些问题以节省一些时间。
我已经看到了here这个问题,但没有回答我的问题。特别是我的第三个问题!同样,这个问题在两种类似技术之间进行了直接比较。它将帮助了解Kafka的人们更快地学习Kinesis。
最佳答案
关于apache-kafka - Kinesis如何实现Kafka风格的消费者群体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50190549/