digital-garden/_inbox/Kafka.md

36 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
- кафка
- kafka
tags:
- type/moc
date:
- - 2024-07-02
- - 2024-07-02
zero-link:
- "[[00 Архитектура ПО]]"
linked:
---
Apache Kafka это платформа потоковой передачи, которую можно использовать для быстрой обработки большого количества событий.
Доставка сообщений в Kafka может осуществляться как минимум тремя способами:
- не менее одного раза (at-least-once) сообщение будет отправляется потребителям до тех пор, пока те не подтвердят его получение;
- не более одного раза (at-most-once) сообщение отправляется только один раз и в случае сбоя не отправляется повторно;
- точно один раз (exactly-once) потребитель гарантированно получит сообщение ровно один раз.
![](c85390a0-94b2-48f9-8dea-02d9bacc2562.jpg)
![](49356685-5474-490b-975a-d198d7f966bb.jpg)
![](3ad2bf28-e12a-4be7-9336-c38c7b5d7018.jpg)
Помимо различных семантик доставки, есть еще одно общее преимущество использования брокера сообщений если приложение потребитель потерпело аварию или остановлено для технического обслуживания, то производитель может не ждать, пока его сообщение будет обработано. Когда потребители возобновят работу и вернутся в сеть, они смогут продолжить с того места, на котором остановились, и обработать ожидающие сообщения.
Платформа Kafka изначально была ориентирована на работу с несколькими потребителями. Это означает, что приложение, читающее сообщение из брокера сообщений, не делает это сообщение недоступным для других приложений, которые также могут захотеть его получить и использовать.
Сообщение, также называемое записью, является основной частью данных, проходящих через Kafka. Сообщения это представление ваших данных в Kafka. Каждое сообщение имеет отметку времени, значение и необязательный ключ. При желании также можно добавлять свои заголовки
![](ae8f6a39-5a3f-4195-8f6a-0b96e492413c.jpg)
## Заметки
- Реализована на Java