Как чтение Кафки может быть постоянным независимо от размера данных? - PullRequest
0 голосов
/ 21 февраля 2019

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

Что я не делаюПонятно, что многие утверждают, что производительность Kafka постоянна независимо от размера обрабатываемых данных.

Как случайное чтение может быть постоянным временем в линейной структуре данных?

Если у меня есть тема одного раздела с 1 миллиардом сообщений.Как может время, необходимое для извлечения первого сообщения, быть таким же, как время, необходимое для извлечения последнего сообщения, если чтения всегда последовательные?

1 Ответ

0 голосов
/ 21 февраля 2019

В Kafka журнал для каждого раздела не является отдельным файлом.На самом деле он разделен на сегменты фиксированного размера.

Для каждого сегмента Кафка знает начальные и конечные смещения.Так что для случайного чтения легко найти правильный сегмент.

Тогда у каждого сегмента есть пара индексов (основанных на времени и смещении).Это файлы с именами *.index и *.timeindex.Эти файлы позволяют прыгать прямо в место рядом (или в) с желаемым значением для чтения.

Таким образом, вы можете видеть, что общее количество сегментов (также общий размер журнала) на самом деле не влияет на логику чтения.

Также обратите внимание, что размер сегментов, размер индексов и интервал между индексами являются настраиваемыми параметрами (даже на уровне темы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...