Что такое фиксация текущего смещения в брокере Kafka

курс kafka spark, курс kafka spark, курсы администрирования kafka, курс kafka spark, apache kafka для начинающих, kafka это, ksql, kafka streams, обучение kafka, курсы потоковой обработки kafka, курс kafka spark, Big Data, курсы администраторов spark, курс kafka spark, курсы kafka rest, курсы администраторов spark, курс kafka spark, apache kafka для начинающих, apache kafka, курсы администраторов spark, apache kafka для начинающих, Big Data, Data Science, kafka streaming, Kafka, брокер kafka, avro

В прошлый раз мы говорили про пользовательское секционирование в брокере Apache Kafka. Сегодня поговорим про особенности механизма фиксации текущего смещения в Kafka. Читайте далее про механизм фиксации текущего смещения в популярном распределенном брокере Kafka.

Что представляет собой фиксация текущего смещения в Kafka

Смещение (offset) в Kafka — порядковый номер (индекс), который указывает на положение записи (сообщения) в топике (или в разделе топика). Брокер Kafka узнает о появлении новой записи благодаря фиксации смещений. Фиксация смещений — это обновление текущей позиции (или добавление новой) записи в разделе топика. Фиксация текущего смещения представляет собой механизм, который фиксирует все сообщения данного пакета, получаемые методом poll() независимо от возникновения разного рода ошибок (за исключением тех, которые нельзя избежать программно) и только после фиксации каждого сообщения в данном пакете происходит переход к следующему пакету [1].

Особенности фиксации текущих смещений в Kafka: несколько практических примеров

Фиксация текущего смещения представляет собой синхронный вид фиксаций. Стоит также отметить, что этот вид фиксаций является наиболее надежным, так как он фиксирует смещение сразу же в момент выполнения метода poll() (отвечает за получение сообщений) и сразу же после этого завершает выполнение данной процедуры фиксации. В случае сбоя генерируется исключение вида CommitFailedException. За фиксацию текущего смещения отвечает метод commitSync(). В качестве примера рассмотрим фиксацию текущих смещений после завершения обработки каждого последнего пакета сообщений [1]:

while (true) {
 ConsumerRecords<String, String> records = consumer.poll(100);
 for (ConsumerRecord<String, String> record : records)
 {
 System.out.printf("topic = %s, partition = %s, offset =
 %d, customer = %s, country = %s\n",
 record.topic(), record.partition(),
 record.offset(), record.key(), record.value());
 }
 try {
// фиксация каждого последнего сообщения
 consumer.commitSync();
 } catch (CommitFailedException e) {
//  запись в журнал в случае сбоя фиксации
 log.error("commit failed", e)
 }
}

В данном примере после завершения обработки всех записей текущего пакета вызывается метод commitSync() для фиксации последнего смещения, прежде чем выполнять опрос для получения остальных сообщений. Стоит также отметить, что метод commitSync() будет повторять фиксацию до тех пор, пока не возникнет непоправимая ошибка (например, выход из строя брокера), которая можно разве что записать в журнал [1].

Таким образом, благодаря фиксации текущих смещений, брокер Kafka может гарантировать весьма надежное хранение Big Data с низким уровнем их потерь. Это делает Apache Kafka универсальным и надежным средством для хранения и обмена большими потоками данных, что позволяет активно использовать этот брокер сообщений в задачах Data Science и разработке распределенных приложений.

Администрирование кластера Kafka

Код курса
KAFKA
Ближайшая дата курса
11 июля, 2022
Длительность обучения
24 ак.часов
Стоимость обучения
60 000 руб.

Освоить Apache Kafka на профессиональном уровне в качестве администратора Big Data кластеров, разработчика распределенных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Kafka в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

Записаться на курс

Смотреть раcписание

Источники

  1. Н.Нархид, Г.Шапира, Т.Палино. Apache Kafka. Потоковая обработка и анализ данных

Добавить комментарий

Поиск по сайту