MessageПредставляет из себя набор Key-Value значений.
Обычно может содержать уникальный идентификатор Id.
ProducerКлиент производитель сообщений
ConsumerКлиент потребитель сообщений
  
TopicСодержит внутри себя одну и более Partition. Кол-во Partition определяет максимальную степень параллелизма при потреблении сообщений.
При отправке сообщение в топик, для него выбирается один из Partition, в который и размещается сообщение.
После потребления сообщения оно не удаляется сразу и некоторое время продолжает храниться и доступно для чтения (Определяется конфигурацией).
PartitionПредставляет из себя очередь, содержащую последовательность экземпляров сообщений, при этом у каждого сообщения есть свой уникальный числовой порядковый номер.
Для каждого читаемого Partition у потребителя храниться значение Offset - смещение, порядковый номер текущего сообщения. После прочтения Offset увеличивается на 1.
ConsumerGroupConsumers, находящиеся в разных ConsumerGroup, читают данные параллельно и независимо друг от друга (Получают одни и те же сообщения).
В рамках одной ConsumerGroup кол-во активных Consumer не может быть больше чем кол-во Partition в рамках одного Topic.

Каждому активному Consumer назначается 1 и более Partition для чтения данных.
Неактивные Consumer выполняет роль резервных и будут подключены автоматически, если один из активных Consumer выйдет из строя. (Или если количество Partition будет увеличено).
OffsetСмещение.
Содержит информации о текущей позиции читателя для каждой пары <TopicName>.<PartitionId>.<ConsumerGroupId>

 

Теги: