Время обработки Kafka topic по partitions и consumers

MediumАлгоритмы
05:00
Лучше работает на десктопе
AlgorithmsKafkaParallelismQueueing
EasyOffer00:41:28-00:47:19eo_video_1593_20260210_Tevian_Python_seniorСтраница собеса

В Kafka topic есть 10 partitions. В topic положили 100 задач, которые равномерно легли по partitions: по 10 задач в каждой.

Из этих задач:

  • 90 задач выполняются по 90 ms;
  • 10 задач выполняются по 1 s.

Внутри одной partition сообщения обрабатываются последовательно. В consumer group одна partition назначается максимум одному consumer, поэтому полезный параллелизм не может быть больше числа partitions.

Нужно вернуть best и worst completion time для consumer group из consumers consumers.

Сигнатура

def kafka_processing_bounds(consumers: int) -> list[float]:

Верните [best_seconds, worst_seconds], округляя значения до 6 знаков.

Примеры

Пример 1

Вход:
consumers = 1
Выход:[18.1,18.1]

Один consumer делает всю работу последовательно

Пример 2

Вход:
consumers = 10
Выход:[1.81,10]

Полезный параллелизм равен числу partitions

Пример 3

Вход:
consumers = 20
Выход:[1.81,10]

Лишние consumers простаивают

Консоль
Нажмите Run или Ctrl+Enter для запуска