Apache Kafka
Apache Kafka – это платформа потоковой обработки событий в реальном времени.
Она создана для того, чтобы обрабатывать большие объёмы данных с минимальными задержками и высоким уровнем надёжности.
Как работает Kafka:
• Сообщения в Kafka попадают в топики (topics) – это как категории или каналы, по которым идут события.
• Каждый топик делится на разделы (partition). Это нужно, чтобы сообщения можно было читать параллельно сразу нескольким обработчикам.
• Kafka не удаляет сообщения сразу после того, как кто-то их прочитал. Они хранятся в журнале событий (commit log) в течение заданного времени (от нескольких часов до недель).
• Каждый потребитель сам отслеживает, на каком сообщении он остановился (offset). Это значит, что можно "перечитывать" сообщения и обрабатывать их заново при необходимости.
Рассмотрим простой сценарий использования Kafka:
Допустим, у нас интернет-магазин. В Kafka могут лететь события:
• "пользователь добавил товар в корзину"
• "оплата прошла"
• "оформлен возврат"
• "доставлен заказ"
Эти события читаются разными сервисами:
• аналитикой,
• системой лояльности,
• службой доставки.
Все они читают из одного и того же топика, в нужном им темпе и в своей логике. Kafka в этом плане – как централизованная лента событий, доступная для всех.
Что важно знать системному аналитику:
Kafka – это не очередь, а журнал событий. Это значит, что:
▪️сообщения могут читаться многократно,
▪️порядок сообщений сохраняется внутри одного partition,
▪️консьюмер (потребитель данных) сам управляет смещением (offset),
▪️идеально подходит для хореографии микросервисов.
Kafka не удаляет сообщения после обработки, и это нужно учитывать в логике системы.
Нужно уметь описывать сценарии взаимодействия с Kafka: кто продюсер, кто консьюмер, какой топик, какие события, где храним offset и т.д.
Если вам важно не терять данные и строить архитектуру вокруг событий – Kafka отличный выбор. Это мощная, но требовательная платформа, которая даёт огромные возможности в больших системах.
Post #830
505
- 🔥 20
- ✍ 4
- 👍 3