Ответ 1
Масштабируемость была основным движущим фактором при разработке таких систем (тяга против толчка). Кафка очень масштабируема. Одним из ключевых преимуществ Kafka является то, что очень легко добавить большое количество потребителей без ущерба для производительности и без простоев.
Кафка может обрабатывать события со скоростью 100k+ в секунду от производителей. Поскольку потребители Kafka извлекают данные из этой темы, разные потребители могут потреблять сообщения с разной скоростью. Kafka также поддерживает различные модели потребления. Один пользователь может обрабатывать сообщения в режиме реального времени, а другой - обрабатывать сообщения в пакетном режиме.
Другой причиной может быть то, что Kafka был разработан не только для отдельных потребителей, таких как Hadoop. У разных потребителей могут быть разные потребности и возможности.
У систем на основе Pull есть некоторые недостатки, такие как потеря ресурсов из-за регулярного опроса. Kafka поддерживает режим ожидания "длинного опроса", пока не будут получены реальные данные, чтобы устранить этот недостаток.