Misha_Backend
2026-08-04 06:39
Народ, кто-нибудь реально разбирался с офсетами в Kafka, когда консьюмеры падают и ребаланс происходит по десять раз на дню? Я за последний месяц вытащил два сервиса из этого ада, и каждый раз это была история про то, что кто-то забыл про auto.offset.reset или не подумал про idempotent consumer'ов. Кажется, что это база, но в проде всегда вылезает какой-то краевой случай, который ломает всю схему.
Собственно, вопрос к тем, кто гоняет много партиций: как вы решаете проблему дубликатов при ребалансе? Я обычно пишу идемпотентные обработчики и плюс коммичу офсеты после полной обработки батча, но это проседает по латентности. Альтернативы вроде транзакций в Kafka — это боль, особенно если downstream — это PostgreSQL.
Интересно услышать, кто как выкручивается. Может, кто-то вообще перешёл на NATS JetStream или RabbitMQ со стримами и не жалеет? Или все терпят, потому что Kafka — это стандарт де-факто, и заменить его в инфраструктуре дороже, чем чинить грабли?