Чем отличается Журнал коммитов и Топик в Kafka Apache?
Чем отличается Журнал комитов и Топик в Kafka Apache? Везде написано по разному что это и чем отличается Где-то написано что Топик это виртуальное хранилище сообщений И про журнал комитов написано что он используется для хранения истории сообщений. Не сильно вижу разницу между двумя понятиями обьясните пожалуйста
Ответы (1 шт):
Топик - это как бы логический раздел, в который пишутся сообщения, высокоуровневое понятие. Вы можете подписываться на конкретные топики и получать сообщения, которые в них приходят.
Журнал коммитов - это низкоуровневый взгляд на то, как хранятся сообщения в топике. Грубо говоря, это некий каталог и файл, в который в данный момент записываются сообщения топика. Там эти файлы и каталоги понемногу ротируются, чтобы не удалять записи, а только добавлять, из-за чего Kafka так быстро работает.
То есть если вы просто работаете как пользователь с Kafka
, то вам нужно знать только про то, что есть топики, а как они там внутри хранятся вы можете не интересоваться. А если вы хотите разобраться, как хранение данных там устроено на физическом уровне, то тогда нужно понимать, что сообщения пишутся в журнал коммитов, где-то ещё там хранятся оффсеты топиков, что позволяет быстро найти и отдать потребителю те сообщения в топиках, которые он ещё не читал. Ну и ещё есть партиции, чтобы можно было раскидывать сообщения на несколько серверов, что позволяет снизить нагрузку на один сервер при чтении топика и в то же время обеспечить резервирование, если одно сообщение хранится в нескольких разделах сразу.
В общем-то это всё довольно подробно расписано в различных руководствах, главное там не путать логические и физические слои того, как всё у Kafka устроено. В принципе, там всё довольно просто, если разобраться.