Please enable JavaScript.
Coggle requires JavaScript to display documents.
Apache Kafka - Coggle Diagram
Apache Kafka
Термины
консьюмеры — считывают эти сообщения, используя модель pull.
Брокер (сервер)
Контроллер - брокер, который определяет лидеров
-
Сообщение
-
При записи получает offset, число, которое выдаёт брокер
-
-
-
-
acks
0 (at most once, попробовать один раз) - не ждёт подтверждения отправки сообщения (могут теряться сообщения)
1 (at least once, Хотя-б одно дойдёт) - ждёт подтверждения от лидера (могут потеряться сообщения если упадёт лидер после отправки подтверждения, не успев отправить на фоловеры)
all (exacly once, idempotence, Именно один раз) - ждёт подтверждения от лидера и ISR-реплик
min.insync.replicas задает число реплик, которые должны быть синхронизированы
-
Partition (сегмент)
-
-
Лидер - партиция, с которой работают клиенты
-
Фоловер - партиция, на которую реплицируются лидеры
-
in-sync реплика (ISR) - folover-реплика, в которую данные из лидера пишутся синхронно
Нужно для того, чтобы не возникла рассинхронизация после падения лидера из-за не успевания реплицирования новых сообщений
-
Настройки
segment.ms - период роллапа сегмента после его открытия, 1 неделя по умолчанию
segment.bytes — максимальный размер сегмента, 1 ГБ по умолчанию.
Группа
Это группа консьюмеров, привязанных к одному топику
-
-
offset-commit
Сообщает брокеру о том, что сообщение было обработанно консьюмером
-
-
-
-
Ручное тестирование
Создание топика
docker-compose -f docker-compose.local.yaml exec kafka1 kafka-topics --create --partitions 1 --replication-factor 1 --topic baeldung_linux2 --bootstrap-server localhost:9092
Публикация сообщений
docker-compose -f docker-compose.local.yaml exec kafka1 kafka-console-producer --topic baeldung_linux2 --bootstrap-server localhost:9092
Подписка на сообщения
docker-compose -f docker-compose.local.yaml exec kafka1 kafka-console-consumer --topic baeldung_linux2 --bootstrap-server localhost:9092 --consumer-property auto.offset.reset=earliest
-
-
-
-
-
-
Особенности
-
Основное отличие: Сообщения в Kafka не удаляются брокерами по мере их обработки консьюмерами — данные в Kafka могут храниться днями, неделями, годами.
-
-
-
-
-
-