假设:我的代码使用扇出模型(单分区多用户)
制作人将消息m1-m10插入Kafka
我启动consumer1(c1),它开始处理消息。在m3上,我启动第二个耗电元件。
消费者2(c2)现在开始处理m1,然后移动到下一条消息。同时c1继续。
所以c1总是引导c2,c2只是重新处理c1已经处理过的相同消息。
因此,增加更多的消费者对可伸缩性没有任何帮助,或者看起来是这样。我一定是误解了文件。
假设:我的代码使用扇出模型(单分区多用户)
制作人将消息m1-m10插入Kafka
我启动consumer1(c1),它开始处理消息。在m3上,我启动第二个耗电元件。
消费者2(c2)现在开始处理m1,然后移动到下一条消息。同时c1继续。
所以c1总是引导c2,c2只是重新处理c1已经处理过的相同消息。
因此,增加更多的消费者对可伸缩性没有任何帮助,或者看起来是这样。我一定是误解了文件。
1条答案
按热度按时间gblwokeq1#
因此,增加更多的消费者无助于提高可伸缩性
这是正确的。如果有多个使用者从同一分区读取数据,则无法实现任何并行性。
Kafka的缩放单位是分区:
日志中的分区有多种用途。首先,它们允许日志扩展到可以容纳单个服务器的大小之外。每个单独的分区必须适合承载它的服务器,但是一个主题可能有许多分区,因此它可以处理任意数量的数据。第二,它们在某种程度上充当了平行性的单位文档
因此,为了衡量你所描述的情况,你必须划分你的消费者正在阅读的主题。然后,当您可以添加消费者时,就可以实现并行性。