Ответ 1
Как я понимаю, получение хорошей пропускной способности от Kafka зависит не только от размера кластера; Есть и другие конфигурации, которые необходимо учитывать. Я постараюсь поделиться как можно больше.
Пропускная способность Kafka должна быть линейно масштабируемой с количеством дисков, которые у вас есть. Новая функция нескольких каталогов данных, представленная в Kafka 0.8, позволяет разделам Kafka иметь разные разделы на разных машинах. По мере того, как число разделов значительно возрастает, возрастают и шансы на то, что процесс выборов лидера будет медленнее, что также повлияет на изменение баланса потребителей. Это то, что нужно учитывать, и может стать узким местом.
Другой ключевой вещью может быть скорость очистки диска. Поскольку Kafka всегда немедленно записывает все данные в файловую систему, чем чаще данные записываются на диск, тем более "привязанным" будет поиск Kafka и тем ниже пропускная способность. Опять же, очень низкая скорость сброса может привести к различным проблемам, так как в этом случае объем данных, подлежащих очистке, будет большим. Таким образом, предоставление точной цифры не очень практично, и я думаю, что по этой причине вы не смогли найти такой прямой ответ в документации Kafka.
Будут и другие факторы. Например, размер fetch
потребителя, сжатия, размер пакета для асинхронных производителей, размеры буфера сокета и т.д.
Аппаратное обеспечение и ОС также будут играть ключевую роль в этом, так как использование Kafka в среде на основе Linux целесообразно благодаря механизму pageCache для записи данных на диск. Подробнее об этом здесь
Возможно, вы также захотите взглянуть на то, как поведение сброса ОС играет ключевую роль, прежде чем вы действительно настроите его под свои нужды. Я считаю, что это ключ к пониманию философии дизайна, которая делает его настолько эффективным с точки зрения пропускной способности и отказоустойчивости.
Еще один ресурс, который я считаю полезным копать
- https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines
- http://blog.liveramp.com/2013/04/08/kafka-0-8-producer-performance-2/
- https://grey-boundary.io/load-testing-apache-kafka-on-aws/
- https://cwiki.apache.org/confluence/display/KAFKA/Performance+testing