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

Введение в Apache Kafka

Mike Metzger

Data Engineering Consultant

Компоненты Kafka

  • Сервер Kafka
    • Кластер из одного или нескольких компьютеров
    • Хранит данные
    • Управляет коммуникациями
    • Может интегрироваться с другими системами (базами данных, логами и т. д.)
  • Клиенты Kafka
    • Чтение через Kafka consumer
    • Запись через Kafka producer
    • Обработка данных по мере необходимости
Введение в Apache Kafka

Сервер Kafka

  • Хранилище, известное как Kafka Broker
    • Данные, записанные producer-ами, хранятся и организуются по топикам
    • Топики разбиваются на партиции — отдельные части хранилища
    • Сообщения/события хранятся в партиции на основе идентификатора события
    • Сообщения извлекаются в том же порядке, в котором были записаны

Хранилище и партиции Kafka

1 Изображение: https://kafka.apache.org/intro
Введение в Apache Kafka

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

  • Kafka отказоустойчива
  • Если одна система выходит из строя, остальные продолжают обслуживать запросы
  • Макс. число отказов - 1 == коэффициент репликации
  • Макс. коэффициент репликации == число серверов
  • Репликация обеспечивается копированием партиций

Кластер Kafka, брокеры и топики

Введение в Apache Kafka

Пример

Кластер Kafka, брокеры и топики

  • Кластер Kafka с 3 брокерами
  • Определены 3 топика
  • Репликация 2x — можно потерять 1 систему
  • Брокер 1 хранит копии Topic 1 и Topic 2
  • Брокер 2 хранит копии Topic 2 и Topic 3
  • Брокер 3 хранит копии Topic 1 и Topic 3
  • Каждый топик распределён между 2 брокерами кластера
Введение в Apache Kafka

Пример с 1 отказом

Кластер Kafka, брокеры и топики — 1 отказавший брокер

  • Брокер 2 выходит из строя
  • Коэффициент репликации 2x
    • 2 - 1 == система выдерживает 1 отказ
  • Каждый топик по-прежнему имеет хотя бы одну копию в кластере
Введение в Apache Kafka

Пример с 2 отказами

Кластер Kafka, брокеры и топики — 2 отказавших брокера

  • 2 отказавших брокера
  • Коэффициент репликации 2x
  • Число отказов превышает допустимое (1 система)
  • Topic 2 больше недоступен в кластере
    • Topic 1 и Topic 3 по-прежнему доступны — полного отказа нет
Введение в Apache Kafka

Давайте потренируемся!

Введение в Apache Kafka

Preparing Video For Download...