Что такое Kafka?
Этот асинхронный API реализован с помощью протокола Apache Kafka. Это платформа событий публикации-подписки, которая обеспечивает отказоустойчивость, высокую пропускную способность и малое время ожидания при обработке лент данных в реальном времени.
Kafka запускается в качестве кластера, состоящего из одного или нескольких серверов (посредников Kafka). Кластер распределяет нагрузку между серверами.
Основные концепции
Тема
Для сохранения потока сообщений применяются категории, называемые темами. В документе AsyncAPI темы представлены как каналы. Каждая тема состоит из одного или нескольких разделов. Каждый раздел - это упорядоченный список сообщений. Сообщениям в разделе присваиваются последовательно увеличивающиеся номера, которые называются смещением.
Сообщение/запись
Единица данных Kafka, состоящая из двух частей: заголовки и значение. Заголовки обычно содержат сведения о сообщении, а значение является телом сообщения.
Источник
Процесс, отвечающий за публикацию потоков сообщений в темах Kafka. Источник может опубликовать одну или несколько тем, а также может выбрать раздел, в котором хранятся данные.
Приемник
Процесс, который принимает сообщения из тем Kafka и обрабатывает ленту сообщений. Приемник может использовать произвольное число тем или разделов.
Группа клиентов
Именованная группа, состоящая из одного или нескольких приемников, которые вместе принимают сообщения из набора тем. Каждый приемник из группы читает сообщения из назначенного ему раздела. Каждый раздел назначается одному приемнику из группы. За назначение отвечают свойства приемника 'client.id' и 'group.id'.
Получение из API
Для подключения и подписки нужен клиент Kafka. Библиотеки клиентов Kafka доступны для разных языков программирования. На основе примера кода для каждого канала можно начать работу с клиентом Java Kafka для получения событий с помощью приемника Kafka.