kkk*_*kkk 4 apache-kafka kafka-consumer-api
我的主题只有一个分区,但我需要实现多重处理。我有大量异步生成的消息,我想异步读取所有这些消息并提交每条消息。
AFAIK 如果没有多个分区(即至少两个),就无法实现并行处理。在 Kafka 中,分区是并行级别。此外,Kafka集群中的分区越多,可以实现的吞吐量就越高。
Kafka 主题分为多个分区,通过将数据拆分到多个代理来实现并行性。多个分区使多个消费者能够并行地读取一个主题。因此,为了实现并行处理,您需要将主题划分为多个分区。
为了增加现有主题的分区数量,您只需运行
bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic topicName --partitions 40
Run Code Online (Sandbox Code Playgroud)
但这不会移动现有数据
关于消费者、消费者组和分区的注意事项
如果您有 N 个分区,则同一消费者组内最多可以有 N 个消费者,每个消费者都从单个分区读取数据。当消费者少于分区时,一些消费者将从多个分区中读取数据。此外,如果您的消费者多于分区,那么某些消费者将处于不活动状态,并且根本不会收到任何消息。
归档时间: |
|
查看次数: |
597 次 |
最近记录: |