[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-kafka-kak-ustroena-arkhitektura-prodyusera":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},800,"kak-ustroena-arkhitektura-prodyusera",21,"kafka","Kafka","📨","Как устроена архитектура продюсера?","Продюсер — это клиент Kafka, который формирует, буферизирует и отправляет сообщения в топики.\n\n### Этапы работы продюсера\n\n1. **Создание сообщения (Record)** — продюсер формирует сообщение с ключом (необязательным), значением и метаданными (время отправки)\n2. **Выбор партиции** — если ключ указан, Kafka использует его хеш для определения партиции (сообщения с одинаковым ключом попадают в одну партицию). Если ключа нет — round-robin или sticky partitioning\n3. **Буферизация (Batching)** — продюсер группирует сообщения в пакеты перед отправкой, снижая сетевые задержки\n4. **Сжатие (Compression)** — опциональное сжатие через GZIP, Snappy, LZ4 или ZSTD для уменьшения объёма данных\n5. **Асинхронная отправка** — сообщения записываются в буфер памяти и отправляются брокеру без ожидания завершения предыдущих операций\n6. **Подтверждения (Acknowledgments)** — настраиваемый уровень подтверждений от брокеров (acks=0, 1, all)\n7. **Ретрай и идемпотентность** — повторная отправка при сбоях; идемпотентный режим предотвращает дублирование\n8. **Error handling** — обработка ошибок через callback\n\n### Резюме\n\n- Продюсер выбирает партицию для сообщения\n- Продюсер выбирает уровень гарантии доставки\n- В продюсере можно тюнить производительность\n\n> **На собеседовании:** часто спрашивают про связку batching + linger.ms. Объясните, что продюсер не отправляет каждое сообщение отдельно — он накапливает пакет и отправляет его через `linger.ms` миллисекунд или когда пакет достигает `batch.size`. Это ключ к высокой производительности Kafka.","","middle",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":19,"keywords":20,"schemaAnswer":19,"featuredSnippetReady":21},"Как устроена архитектура топика? — Gymterview","Топик — это логическая единица организации данных в Kafka, разбитая на партиции для параллельной обработки.",[7,13],true]