繁体   English   中英

Kafka主题数与分区数

[英]Kafka number of topics vs number of partitions

请多多包涵。 我对卡夫卡很新。 我正在研究生产者可以在运行时(不是固定数字)出现并发布消息的项目。 目前,他们发布到kafka经纪人在运行时创建的唯一主题(topic.uuid),我在另一端订阅了一个订阅了topic。*模式并订阅了所有主题,并在新主题进入时进行了重新平衡。这是正确的方法吗?

现在,我很困惑,如果我们有一个主题有多个分区或多个主题,每个分区有一个分区。技术上,它是相同的。

但是,获得新分区(在运行时)和每个分区(在运行时)的新消费者所涉及的复杂性是什么,以实现更高的吞吐量,因为在各种博客中提到,分区数应该在组中具有相同数量的消费者。

主题应该从功能上看被看着。 您可以拥有多个主题,每个主题用于特定的消息系列。

例如,您可以拥有一个分析重要消息的主题和另一个带有日志压缩的批量加载/备份主题,以获得更细粒度的每条记录保留策略。

从技术/架构的角度来看, 分区很有意思。 Kafka是一个分布式系统。 主题可以有多个分区。 当您拥有多个Kafka代理时,每个代理都将获得一组他们负责分配的分区。

例如,如果您有一个包含24个分区的主题,并且您生成3个Kafka代理,则每个代理将负责8个分区。 Kafka和Zookeeper将负责处理这些分区的负载分配,并在代理发生故障时正确地重新分配分区。

消费者可以从这些分区读取并从领导经纪人处读取。 如果在使用者组中有多个使用者,则这些使用者将分发他们从中读取的分区。

例如,如果消费者组中的消费者多于主题中的分区,则某些消费者将永远不会收到任何消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM