据我所知,kafka server.properties中的“num.partitions”将适用于所有主题。现在我想为topica设置partitionnumber=1,为topicb设置partitionnumber=2。这是否可以用高级api实现?
k4ymrczo1#
num.partitions 是自动生成主题时使用的值。如果您自己生成一个主题,您可以根据需要设置任意数量的分区。您可以使用以下命令自己生成主题(复制因子3和分区数2。大写字母是你必须替换的。)
num.partitions
bin/kafka-topics.sh --create --zookeeper ZOOKEEPER_HOSTNAME:ZOOKEEPER_PORT \ --replication-factor 3 --partitions 2 --topic TOPIC_NAME
kcrjzv8t2#
有一个可以在kafka代理上设置的配置值。
auto.create.topics.enable=true
true实际上是默认设置,启用在服务器上自动创建主题。如果设置为true,则尝试为不存在的主题生成数据或获取元数据时,将使用默认复制因子和分区数自动创建该主题。因此,如果您从一个不存在的分区进行读写,就像它存在一样,if将自动为您创建一个分区。我从未听说过使用高级api自动创建一个。翻阅Kafka协议文档,似乎没有提供创建主题的方法。
2条答案
按热度按时间k4ymrczo1#
num.partitions
是自动生成主题时使用的值。如果您自己生成一个主题,您可以根据需要设置任意数量的分区。您可以使用以下命令自己生成主题(复制因子3和分区数2。大写字母是你必须替换的。)
kcrjzv8t2#
有一个可以在kafka代理上设置的配置值。
true实际上是默认设置,
启用在服务器上自动创建主题。如果设置为true,则尝试为不存在的主题生成数据或获取元数据时,将使用默认复制因子和分区数自动创建该主题。
因此,如果您从一个不存在的分区进行读写,就像它存在一样,if将自动为您创建一个分区。我从未听说过使用高级api自动创建一个。
翻阅Kafka协议文档,似乎没有提供创建主题的方法。