Abh*_*rai 4 java configuration apache-kafka
我正在使用名称:kafka_2.12版本:2.3.0。根据流量/负载,我想更改主题的最大分区数。一旦Kafka启动,是否可以进行这种更改并且可以通过代码完成?
是的,您可以通过代码增加分区。使用AdminClient.createPartitions 方法。
AdminClients.createPartitions 方法 API 文档
public abstract CreatePartitionsResult createPartitions(java.util.Map<java.lang.String,NewPartitions> newPartitions,CreatePartitionsOptions options)
Run Code Online (Sandbox Code Playgroud)
根据对应的值增加作为newPartitions的key给出的topic的partition数。如果为具有键的主题增加分区,则会影响分区逻辑或消息的顺序。
此操作不是事务性的,因此对于某些主题可能会成功,而对于其他主题可能会失败。
在此方法返回成功后,所有代理可能需要几秒钟才能知道分区已创建。在此期间,describeTopics(Collection) 可能不会返回有关新分区的信息。
如何使用:
public static void createPartitions(String topicName, int numPartitions) {
Properties props = new Properties();
props.put("bootstrap.servers","localhost:9092");
AdminClient adminClient = AdminClient.create(props);
Map<String, NewPartitions> newPartitionSet = new HashMap<>();
newPartitionSet.put(topicName, NewPartitions.increaseTo(numPartitions));
adminClient.createPartitions(newPartitionSet);
adminClient.close();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
579 次 |
最近记录: |