Архітектура Kafka

Вступ до Apache Kafka

Mike Metzger

Data Engineering Consultant

Компоненти Kafka

  • Сервер Kafka
    • Кластер з одного або більше комп'ютерів
    • Зберігає дані
    • Керує обміном даними
    • Також інтегрується з іншими системами (бази даних, логи тощо)
  • Клієнти Kafka
    • Читають через Kafka consumer
    • Пишуть через Kafka producer
    • Обробляють дані за потреби
Вступ до Apache Kafka

Сервер Kafka

  • Сховище, також відоме як Kafka Broker
    • Дані від продюсерів зберігаються й організуються за топіками
    • Топіки розбито на партиції, тобто окремі частини
    • Повідомлення/події в партицію потрапляють за ідентифікатором події
    • Повідомлення зчитуються в тій самій послідовності, що й записані

Сховище Kafka та партиції

1 Image sourced from https://kafka.apache.org/intro
Вступ до Apache Kafka

Партиції та реплікація

  • Kafka відмовостійка
  • Якщо одна система вимкнеться, інші нададуть потрібні дані
  • Макс. кількість збоїв — 1 == коефіцієнт реплікації
  • Макс. коефіцієнт реплікації == кількість серверів
  • Реплікацію забезпечує копіювання партицій

Kafka cluster, brokers, and topics.png

Вступ до Apache Kafka

Приклад

Kafka cluster, brokers, and topics.png

  • Кластер Kafka з 3 брокерами
  • Визначено 3 топіки
  • Реплікація 2× == можна втратити 1 систему
  • Broker 1 має копії Topic 1 і Topic 2
  • Broker 2 має копії Topic 2 і Topic 3
  • Broker 3 має копії Topic 1 і Topic 3
  • Кожен топік розміщено на 2 брокерах у кластері
Вступ до Apache Kafka

Приклад з 1 збоєм

Kafka cluster, brokers, and topics - 1 failed broker.png

  • Вийшов з ладу Broker 2
  • Коефіцієнт реплікації 2×
    • 2 - 1 == витримує 1 збій системи
  • Кожен топік і далі має щонайменше одну копію в кластері
Вступ до Apache Kafka

Приклад із 2 збоями

Kafka cluster, brokers, and topics - 2 failed brokers.png

  • 2 брокери вийшли з ладу
  • Коефіцієнт реплікації 2×
  • Збоїв більше, ніж підтримується (1 система)
  • Topic 2 недоступний у кластері
    • Topic 1 і Topic 3 доступні, тож це не повний збій
Вступ до Apache Kafka

Давайте потренуємось!

Вступ до Apache Kafka

Preparing Video For Download...