添加更多的消费者如何提高kafka处理的可伸缩性

cu6pst1q  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(328)

假设:我的代码使用扇出模型(单分区多用户)
制作人将消息m1-m10插入Kafka
我启动consumer1(c1),它开始处理消息。在m3上,我启动第二个耗电元件。
消费者2(c2)现在开始处理m1,然后移动到下一条消息。同时c1继续。
所以c1总是引导c2,c2只是重新处理c1已经处理过的相同消息。
因此,增加更多的消费者对可伸缩性没有任何帮助,或者看起来是这样。我一定是误解了文件。

gblwokeq

gblwokeq1#

因此,增加更多的消费者无助于提高可伸缩性
这是正确的。如果有多个使用者从同一分区读取数据,则无法实现任何并行性。
Kafka的缩放单位是分区:
日志中的分区有多种用途。首先,它们允许日志扩展到可以容纳单个服务器的大小之外。每个单独的分区必须适合承载它的服务器,但是一个主题可能有许多分区,因此它可以处理任意数量的数据。第二,它们在某种程度上充当了平行性的单位文档
因此,为了衡量你所描述的情况,你必须划分你的消费者正在阅读的主题。然后,当您可以添加消费者时,就可以实现并行性。

相关问题