Обмен технологиями

Вывод диаграммы основных компонентов Kafka

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Контроллер-брокер

Вставьте сюда описание изображения

В кластере Kafka есть Controller Broker, который отвечает за управление и координацию метаданных.

Kafka использует Zookeeper в качестве инструмента хранения и управления метаданными кластера. Zookeeper сохраняет информацию о состоянии кластера, включая всю информацию о теме, разделе, лидере и реплике и т. д.

Когда статус кластера изменится, Controller Broker запишет информацию об изменении в Zookeeper.

Когда текущий брокер-контроллер выходит из строя, другие брокеры в кластере Kafka обнаруживают эту ситуацию и проводят выборы через Zookeeper.

После того, как брокер будет успешно выбран в качестве нового брокера контроллера, он будет читать последние метаданные кластера из Zookeeper.

Гарантийный механизм

  • Постоянные метаданные: Zookeeper постоянно хранит метаданные кластера, гарантируя, что самую свежую информацию о состоянии можно будет получить в любое время.
  • механизм сердцебиения: Соединение между брокером и Zookeeper поддерживается с помощью механизма контрольного сигнала для быстрого обнаружения сбоев контроллера-брокера.
  • избирательный механизм: с помощью механизма выборов Zookeeper можно быстро выбрать нового брокера-контроллера и синхронизировать метаданные с Zookeeper.

2. Компонентная архитектура

Вставьте сюда описание изображения

1. Менеджер журналов

LogManagerВ основном отвечает за управление хранением и получением журналов Kafka (журнал).

Например: производитель отправляет сообщение Leader Broker1 из Partition0.LogManagerЗапишите сообщение в файл журнала Partition0 на Broker1.

2. Менеджер репликации

ReplicationManagerВ основном отвечает за управление репликацией и синхронизацией данных разделов.

Синхронизация между Лидером и Ведомым каждого раздела осуществляется независимо. То есть каждый раздел имеет свой процесс синхронизации и не зависит от других разделов.

Хотя процесс синхронизации каждого раздела независим, каждый брокер запускает соответствующие потоки репликации для каждого раздела, которым он управляет (лидера или последователя), и эти потоки отвечают за выполнение определенных задач синхронизации.

например:ReplicationManagerОтправьте недавно написанные сообщения на Broker1 ведомым Broker2 и Broker3 раздела 0.ReplicationManagerЗапросы репликации, полученные от Broker1, обрабатываются на Broker2 и Broker3, записывая сообщения в соответствующие файлы журналов.

3. Сокет-сервер

SocketServer Это компонент Kafka Broker, отвечающий за обработку сетевых подключений и операций ввода-вывода. Он отвечает за прием запросов на соединение от клиентов и других брокеров и назначение потока для обработки каждому соединению.

4. Сетевой сервер

NetworkServer Это основная часть инфраструктуры сетевых коммуникаций Kafka, которая отвечает за управление и планирование сетевых запросов. Он использует NIO (неблокирующий ввод-вывод) для обработки высококонкурентных сетевых подключений.

5. ZKClient

Компонент, который взаимодействует с Zookeeper.