关于 Kafka 主题和分区的一个简单问题。假设以下场景:
问题是:每个Topic内部有多少个分区?难道真的要靠消费者数量来推动并行吗?或者它只是设置到文件 server.config 中的参数?在后一种情况下,有没有办法让不同的主题具有不同数量的分区?
首先要了解的是,主题分区是 Kafka 中的并行单位。在生产者和代理端,对不同分区的写入可以完全并行完成。在消费者方面,Kafka总是将单个分区的数据提供给一个消费者线程。因此,消费者(在消费者组内)的并行度受到正在消费的分区数量的限制。因此,一般来说,Kafka集群中的分区越多,能够实现的吞吐量就越高。
每个Topic内部有多少个分区?这是可配置的。您可以增加分区,但一旦增加,就无法减少它。 Apache Kafka 为我们提供了 alter 命令来更改 Topic 行为和添加/修改配置。我们将使用 alter 命令向现有主题添加更多分区。
以下是将主题“my-topic”的分区数增加到 20 的命令 -
./bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic my-topic --partitions 20
您可以使用describe命令验证分区是否已增加,如下所示 -
./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-topic
一个主题需要设置多少个分区?请在这里阅读这份写得很好的文档:https://www.confluence.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/ https://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)