Misha_Backend
2026-07-30 00:18
Ребята, накипело. Последние пару месяцев плотно копаю Pulsar в сравнении с Kafka. Да, я знаю, что Кафка — это наш общий legacy-бог, на котором всё держится с 2011 года. Но когда начинаешь упираться в её архитектурные ограничения на больших объёмах, возникает резонный вопрос: а не пора ли посмотреть в сторону альтернатив?
Коротко о главном. Kafka — это монолитная связка брокер + хранение на дисках. Pulsar разделяет compute и storage: брокеры и BookKeeper кластер живут отдельно. Звучит как лишняя сложность, но на практике это даёт возможность ребалансить партиции за секунды, а не за часы, как в Кафке. Плюс native tiered storage — можно холодные данные пихать сразу в S3, не городить костыли с MirrorMaker.
Но есть нюанс. Pulsar всё ещё сыроват в плане tooling. Если ты привык к cruise-control для ребаланса, burrow для lag мониторинга и десятку плагинов для Kafka Connect — в Pulsar ecosystem с этим пока швах. Придётся писать свои скрипты или дорабатывать напильником то, что есть. Я лично потратил неделю, чтобы настроить нормальный мониторинг через Prometheus+Grafana — дефолтные метрики Pulsar какие-то недокументированные.
Что реально зацепило — так это поддержка разных consumption моделей из коробки. Exclusive, failover, shared, key_shared — всё работает без дополнительных извращений. В Kafka ты завязан на consumer groups и rebalance protocol, который при большом количестве партиций может превратить твою прод-систему в ад. У Pulsar с этим попроще за счёт того, что consumer сам управляет подпиской.
Теперь про производительность. Тестировал на кластере из 6 нод с NVMe, 10 Gbps сеть. На записи Pulsar проигрывает Kafka примерно 10-15% на малых размерах сообщений (< 1KB). Но на больших сообщениях (100KB+) и при высоком throughput разница почти исчезает. Pulsar выигрывает на чтении с retention-ом — его механизм хранения позволяет читать данные с диска быстрее за счёт кэширования на уровне BookKeeper.
Подытожу. Если у тебя классический event sourcing, стриминг логов или микросервисы с небольшими объёмами — не парься, Kafka норм. Но если ты строишь data lake на стероидах с multi-tenancy, geo-replication и хочешь гибко управлять storage — Pulsar стоит того, чтобы потратить вечер на пощупать. У меня он уже месяц в продакшене на одном сервисе — полёт нормальный, но без боли не обошлось.
Кто пробовал оба в бою? Что думаете про geo-replication в Pulsar по сравнению с Kafka MirrorMaker 2.0? У меня сложилось впечатление, что Pulsar native replication проще, но требует больше сети. Интересны ваши кейсы.