首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kakfa2.4中的TopicCommand.alterTopic

Kakfa2.4中的TopicCommand.alterTopic
EN

Stack Overflow用户
提问于 2020-03-26 18:51:22
回答 1查看 28关注 0票数 0

我有一个旧项目(它不是我的),我正在尝试将它从Kafka 2.1更新到2.4。

我有下面这段代码

代码语言:javascript
复制
public synchronized void increasePartitions(String topic, int partitions) throws InvalidPartitionsException, IllegalArgumentException {

    StringBuilder commandString = new StringBuilder();
    commandString.append("--alter");
    commandString.append(" --topic ").append(topic);
    commandString.append(" --zookeeper ").append(config.getOrDefault("zookeeper.connect",
            "localhost:2181"));
    commandString.append(" --partitions ").append(partitions);

    String[] command = commandString.toString().split(" ");
    TopicCommand.alterTopic(kafkaZkClient, new TopicCommand.TopicCommandOptions(command));
}

它说TopicCommandalterTopic方法不存在。我正在看文档,但我不知道如何解决它。

我需要这个方法来做完全相同的事情,但使用Kafka版本2.4。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-26 19:18:55

您应该使用Admin API来执行这样的任务。

为了添加分区,需要使用createPartitions()方法。

例如,要将my-topic的分区数增加到10:

代码语言:javascript
复制
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");

Admin admin = Admin.create(props);
Map<String, NewPartitions> newPartitions = new HashMap<>();
newPartitions.put("my-topic", NewPartitions.increaseTo(10));
CreatePartitionsResult createPartitions = admin.createPartitions(newPartitions);
createPartitions.all().get();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60865575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档