Перейти до основного вмісту

Основні поняття Apache Kafka

Producer - клієнт, який генерує (публікує) повідомлення в Kafka-топік. Може відправляти повідомлення в конкретну партицію (використовуючи ключ) або дозволяти Kafka автоматично вибирати партицію. Підтримує acknowledgments для підтвердження успішного запису.

Consumer - клієнт, який читає повідомлення з Kafka-топіка. Консюмери об'єднуються в групи споживачів (consumer groups), щоб розподіляти навантаження. Кожна партиція обробляється лише одним консюмером у межах групи.

Message - основна одиниця даних у Kafka. Складається з ключа (optional), значення (дані) та метаданих. Зберігається у партиції топіка.

Topic - логічна категорія або ім'я каналу, через який Kafka передає дані. Дані в Kafka організовані в топіки. Кожен топік може мати одну або більше партицій. Споживачі (consumers) читають дані із заданих топіків.

Partition - фізичний підрозділ топіка, який зберігає впорядковану послідовність повідомлень. Повідомлення у партиції мають унікальний offset (зміщення). Партиції розподіляються між брокерами для масштабованості.

Broker - сервер у кластері Kafka, який зберігає дані топіків і обробляє запити на читання та запис. Кожен брокер відповідає за одну або кілька партицій. Один із брокерів може виконувати роль контролера, який координує кластер.

Offset - унікальний номер, що визначає позицію повідомлення в партиції. Консюмери використовують offset для відстеження того, які повідомлення вже прочитані.

Consumer Group - Kafka гарантує, що кожна партиція буде оброблятися лише одним консюмером у межах групи. Дозволяє масштабувати обробку даних.

Cluster - група брокерів, що працюють разом. Забезпечує високу доступність і стійкість до відмов. Брокери використовують ZooKeeper або Kafka Raft (KRaft) для координації.

Replication - процес копіювання даних із партиції на інші брокери. Кожна партиція має лідерську репліку та одну чи більше резервних (follower replicas). Лідер обробляє всі операції читання та запису.

ZooKeeper - зовнішній сервіс, який координує брокери та слідкує за станом кластера. Використовується в старих версіях Kafka.

Kafka Raft (KRaft) - інтегрована система координації в Kafka, яка замінює ZooKeeper у нових версіях.

Producer Acknowledgment - механізм підтвердження від брокера, що повідомлення було успішно записано.

  • acks=0 - без підтвердження
  • acks=1 - лише лідер підтверджує запис
  • acks=all - підтверджують усі репліки

Retention Policy - політика зберігання повідомлень у Kafka.

Типи:

  • За часом. Повідомлення видаляються через заданий проміжок часу.
  • За розміром. Видаляються найстаріші повідомлення, коли досягається граничний розмір.

Rebalancing - процес перерозподілу партицій між консюмерами в разі змін у групі споживачів. Може виникати під час додавання або видалення консюмерів.

Stream Processing - обробка потокових даних у реальному часі за допомогою Kafka Streams або інших фреймворків, наприклад Apache Flink або Spark. Використовується для трансформації, фільтрації, агрегації даних тощо.

Коментарі