kafka不同的主题设置不同的分区

时间:2015-11-20 09:38:44

标签: apache-kafka partition apache-zookeeper

据我所知,kafka server.properties中的'num.partitions'将适用于所有主题。 现在我想为topicA设置partitionNumber = 1,为topicB设置partitionNumber = 2。 这可能是用高级API实现的吗?

2 个答案:

答案 0 :(得分:1)

num.partitions是自动生成主题时使用的值。如果您自己生成主题,则可以根据需要设置任意数量的分区。

您可以使用以下命令自行生成主题。 (复制因子3和分区数量2.大写单词是你必须替换的。)

bin/kafka-topics.sh --create --zookeeper ZOOKEEPER_HOSTNAME:ZOOKEEPER_PORT \
--replication-factor 3 --partitions 2 --topic TOPIC_NAME

答案 1 :(得分:0)

可以在Kafka Broker上设置配置值。

auto.create.topics.enable=true

True实际上是默认设置,

  

在服务器上启用主题的自动创建。如果将此设置为true,则尝试为不存在的主题生成数据或获取元数据将自动使用默认复制因子和分区数创建它。

因此,如果您从一个不存在的分区读取或写入,就好像它已存在一样,如果您将自动为您创建一个分区。我从来没有听说过使用高级API来自动创建一个。

查看Kafka Protocol Documentation,似乎没有提供创建主题的方法。