Увеличить количество разделов для темы в Java - PullRequest
0 голосов
/ 22 октября 2019

Я использую имя: kafka_2.12 версия: 2.3.0 . Исходя из трафика / нагрузки, я хочу изменить максимальное число разделов для темы. Можно ли внести изменения такого рода после запуска Kafka и можно ли это сделать с помощью кода?

1 Ответ

1 голос
/ 23 октября 2019

Да, вы можете увеличить раздел по коду. Используйте метод AdminClient.createPartitions.

Метод API AdminClients.createPartitions Документ API

public abstract CreatePartitionsResult createPartitions(java.util.Map<java.lang.String,NewPartitions> newPartitions,CreatePartitionsOptions options)

Увеличение количества разделов темприведены в качестве ключей newPartitions согласно соответствующим значениям. Если разделы увеличены для темы, у которой есть ключ, это повлияет на логику раздела или порядок сообщений.

Эта операция не является транзакционной, поэтому она может завершиться успешно для некоторых тем при сбоедля других.

Может пройти несколько секунд после того, как этот метод вернёт успех, чтобы все брокеры узнали, что разделы созданы. В течение этого времени descriptionTopics (Коллекция) может не возвращать информацию о новых разделах.

Как использовать:

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...