Альтернатива опции `—num-threads` в org.apache.kafka.tools.ProducerPerformance Kafka

#apache-kafka #kafka-producer-api

#apache-kafka #kafka-producer-api

Вопрос:

Kafka удалил --num-threads опцию из option of org.apache.kafka.tools.ProducerPerformance в Kafka 2.0

Каково другое решение из этого?

Ответ №1:

Сначала нам нужно понять, для чего изначально использовался параметр —num-threads.

Этот параметр --num-threads ранее использовался для управления пропускной способностью сообщений в потоке.

Что-то вроде

  ProducerPerformanceThread[] producerPerformanceThreads = new ProducerPerformanceThread[numThreads];
        long numRecordsPerThread = numRecords / numThreads;
        int throughputPerThread = throughput <= 0 ? throughput : Math.max(throughput / numThreads, 1);
        int batchSize = 1;
  

Однако теперь с этим изменением они покончили с грубым способом регулирования пропускной способности и вместо этого предоставили вам возможность полностью отказаться от регулирования, что вы можете сделать, установив для параметра —throughput значение -1

если присмотреться, внутренняя реализация теперь выглядит примерно так

 ThroughputThrottler throttler = new ThroughputThrottler(throughput, startMs);
  

Итак, теперь вам следует установить только значение пропускной способности и не беспокоиться о количестве потоков.