繁体   English   中英

单个生产者、主题和代理的 Kafka 分区

[英]Kafka Partitioning for a Single Producer, Topic and Broker

我对 Kafka 很陌生,并且有一个关于 Producer、Topic、Broker 和 Partition 之间的关系/映射的问题,在我有一个 Producer、单个 Topic 和一个 Broker 的情况下,创建多个是否有意义?这里的单个 Broker 上的 Topic 分区? 如果是,这对并行性/性能有何帮助?

谢谢。

即使您只有一个生产者、一个 Topic 和一个 Broker,在消费者上下文中,就并行性/性能而言,为该主题创建多个分区也是有意义的。 如果您在单个消费者组中有多个消费者并且主题中有多个分区,那么可以保证消费者将从不同的分区接收数据,这将在从 kafka 处理时为您提供并行性和性能提升。

首先要理解的是,主题分区是 Kafka 集群中的一个并行单元。 在 Producer 和 Broker 上,写入是并行发生的,因此您可以执行昂贵的操作(压缩等),并且在消费者端,每个分区数据都被提供给单个消费者线程。

在您的场景中,如果您在一个主题上有多个分区,并且这些多个分区由单个消费者组中的多个消费者使用,您将受益。 这样您就可以在您的应用程序中实现最大吞吐量。 如果您仅对多个分区使用单个使用者线程,则没有用。 如果您巧妙地管理集群资源,基本上更多的分区可能会导致更高的吞吐量。

除了前面的答案之外,重要的是要记住从多个分区进行消费不会保留消息/事件的顺序。 如果您的应用程序依赖于正确的消息顺序,您可能必须考虑这一事实。

暂无
暂无

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

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