TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2684 2.56K
День 2226. #ЗаметкиНаПолях
Kafka и Event-Driven Архитектура. Начало

Kafka — это распределённая платформа потоковой передачи событий с открытым исходным кодом, предназначенная для обработки потоков данных в реальном времени.

Первоначально разработанная в LinkedIn, а затем с открытым кодом в Apache Software Foundation, Kafka теперь широко используется для создания высокопроизводительных, отказоустойчивых и масштабируемых конвейеров данных, аналитики в реальном времени и архитектур, управляемых событиями.

Какие проблемы решает?
До Kafka широко использовались традиционные очереди сообщений, такие как RabbitMQ и ActiveMQ, но у них были ограничения при обработке больших потоков данных в реальном времени с высокой пропускной способностью.

Kafka была разработана для решения этих проблем, предоставляя:
1. Обработку больших данных
Оптимизирована для приёма, хранения и распределения потоков данных большого объёма по распределённым системам.
2. Отказоустойчивость
Реплицирует данные на несколько узлов, гарантируя, что даже в случае сбоя брокера данные останутся доступными.
3. Долговечность
Сообщения сохраняются на диске, что позволяет потребителям воспроизводить события при необходимости.
4. Поддержку Event-Driven архитектуры
Обеспечивает асинхронную связь между микросервисами, что делает её идеальной для современных облачных приложений.

Когда использовать?
1. Сообщения
Kafka хорошо подойдёт в качестве замены более традиционному брокеру сообщений для отделения обработки от производителей данных, для буферизации необработанных сообщений и т.д. По сравнению с большинством систем обмена сообщениями Kafka имеет лучшую пропускную способность, встроенное партиционирование, репликацию и отказоустойчивость, что делает её хорошим решением для крупных приложений обработки сообщений.

2. Отслеживание активности веб-сайта
Первоначальным вариантом использования Kafka была возможность перестроить конвейер отслеживания активности пользователя в виде набора тем публикации-подписки в реальном времени. Это означает, что активность сайта (просмотры страниц, поиски или другие действия, которые могут выполнять пользователи) публикуется в темах по типу активности. Эти темы доступны для подписки для различных вариантов использования, включая обработку и мониторинг в реальном времени, загрузку в Hadoop или автономные системы хранения данных для автономной обработки и отчётности.

3. Метрики
Kafka часто используется для данных оперативного мониторинга: агрегации статистики из распределённых приложений для создания централизованных каналов оперативных данных.

4. Агрегация журналов
Агрегация журналов обычно собирает физические файлы журналов с серверов и помещает их в единое место для обработки. Kafka абстрагирует детали файлов и даёт более чистую абстракцию данных журнала или событий в виде потока сообщений. Это позволяет обрабатывать данные с меньшей задержкой и упрощает поддержку нескольких источников данных и распределённого потребления данных.

5. Потоковая обработка
Многие пользователи Kafka обрабатывают данные в конвейерах обработки, состоящих из нескольких этапов, где необработанные входные данные потребляются из тем Kafka, а затем агрегируются, обогащаются или иным образом преобразуются в новые темы для дальнейшего потребления или последующей обработки.

6. Event Sourcing
Это стиль проектирования приложений, в котором изменения состояния регистрируются как упорядоченная по времени последовательность записей. Поддержка Kafka очень больших хранимых данных журнала делает её отличным бэкэндом для приложений, созданных в этом стиле.

7. Журнал транзакций
Kafka может служить своего рода внешним журналом транзакций для распределённой системы. Журнал помогает реплицировать данные между узлами и действует как механизм повторной синхронизации для отказавших узлов для восстановления их данных.

Окончание следует…

Источники:
-
https://dev.to/lovestaco/why-kafka-a-developer-friendly-guide-to-event-driven-architecture-4ekf
-
https://kafka.apache.org
  • 👍 14
More from @netdeveloperdiary
  1. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  2. Oct 3, 2026Post #3360
  3. Oct 3, 2026День 2803. #Оффтоп Чем Заняться, Пока Работают Агенты? У VS Code Есть Ответ Сейчас большую…
  4. Oct 2, 2026День 2802. #Карьера #Юмор Секреты Программирования, Известные Только Легендам Ещё один пос…
  5. Oct 1, 2026Post #3357
  6. Sep 30, 2026Post #3356
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →