В 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 знаков.
consumers = 1[18.1,18.1]Один consumer делает всю работу последовательно
consumers = 10[1.81,10]Полезный параллелизм равен числу partitions
consumers = 20[1.81,10]Лишние consumers простаивают