在 Kafka 0.8beta 中,可以使用如下命令创建主题,如下所述
bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 2 --partition 3 --topic test
上面的命令将创建一个名为“test”的主题,每个分区有 3 个分区和 2 个副本。
我可以使用 Java 做同样的事情吗?
到目前为止,我发现使用 Java 我们可以创建一个生产者,如下所示
Producer<String, String> producer = new Producer<String, String>(config);
producer.send(new KeyedMessage<String, String>("mytopic", msg));
这将创建一个名为“mytopic”的主题,其分区数使用“num.partitions”属性指定并开始生成。
但是有没有办法定义分区和复制呢?我找不到任何这样的例子。如果我们不能,那是否意味着我们总是需要在之前创建带有分区和复制的主题(根据我们的要求),然后使用生产者在该主题中生成消息。例如,如果我想以相同的方式创建“mytopic”但分区数量不同(覆盖 num.partitions 属性),是否有可能?