Как данные текли через Kafka? Как события приходили?

В Kafka данные передаются в виде событий (сообщений), которые публикуются в топики.

Короткий ответ

Что ответить на собеседовании

В Kafka данные передаются в виде событий (сообщений), которые публикуются в топики. Каждый топик разбит на партиции, и события внутри партиций упорядочены по смещениям (offset). Продюсер отправляет сообщения в определённый топик, а консьюмеры подписываются на топики и читают события последовательно, отслеживая смещения.

Подробный разбор

Ответ с пояснениями

В Kafka данные передаются в виде событий (сообщений), которые публикуются в топики. Каждый топик разбит на партиции, и события внутри партиций упорядочены по смещениям (offset). Продюсер отправляет сообщения в определённый топик, а консьюмеры подписываются на топики и читают события последовательно, отслеживая смещения.

События приходят в консьюмеры через pull-модель: консьюмеры запрашивают новые сообщения, указывая смещение, с которого хотят читать. Это позволяет им контролировать, какие события уже обработаны, и при необходимости повторно читать данные.

Пример на Go с использованием библиотеки sarama:

consumer, err := sarama.NewConsumer(brokers, nil)
if err != nil {
    panic(err)
}
partitionConsumer, err := consumer.ConsumePartition("topic", 0, sarama.OffsetNewest)
if err != nil {
    panic(err)
}

for msg := range partitionConsumer.Messages() {
    fmt.Printf("Получено сообщение: %s\n", string(msg.Value))
}

Таким образом, поток данных через Kafka организован как последовательность сообщений в топиках, а события приходят консьюмерам по запросу с контролем позиции чтения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее