Kafka Flashcards

(24 cards)

1
Q

Что такое Apache Kafka?

A

Распределённая платформа потоковой передачи данных для обработки больших потоков в реальном времени.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какие основные компоненты Kafka?

A

Broker, Topic, Partition, Producer, Consumer, (Zookeeper / KRaft).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое Topic и Partition?

A

Topic — поток сообщений по категории.

Partition — подмножество сообщений для параллелизма и масштабируемости.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Как работает продюсер в Kafka?

A

Отправляет сообщения в топики, может назначать partition по ключу.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Как работает консьюмер в Kafka?

A

Читает сообщения из топиков; группы консьюмеров распределяют нагрузку между собой.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какие есть модели доставки сообщений?

A

At-most-once — может потеряться, дубликатов нет

At-least-once — все сообщения доставляются, возможны дубликаты

Exactly-once — каждое сообщение доставляется ровно один раз

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как Kafka обеспечивает отказоустойчивость?

A

Репликация partition-ов: leader обрабатывает записи, followers синхронизируют данные; при сбое failover на follower.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое offset в Kafka?

A

Позиция консьюмера в partition; хранится в Kafka или внешнем хранилище для отслеживания прочитанных сообщений.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое Kafka Connect?

A

Фреймворк для интеграции Kafka с внешними системами (базы данных, Data Lakes, очереди) с помощью готовых коннекторов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Как реализуется exactly-once доставка?

A

1) Идемпотентность продюсеров
2) Транзакции

Идемпотентность продюсеров — это свойство систем, где сообщение, отправленное продюсером (producer), может быть безопасно отправлено повторно, и при этом в очередь попадёт только один экземпляр сообщения, или система гарантирует, что повторная отправка не приведёт к дублированию или порче данных.
Если идемотентости нет, то можно создать таблицы с id сообщениями и проверять было ли уже такое сообщение или нет.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что хранит Kafka-сообщение?

A

Ключ, значение, offset, timestamp, headers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Как повысить пропускную способность продюсера?

A

1) Увеличить размер батча (batch.size)
2) Повысить время ожидания для формирование батча (linger.ms)
3) Использовать сжатие данных compression.type=zstd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Какие есть типы acks у продюсера?

A

acks - это настройка, которая показывает, сколько реплик должны подтвердить запись данных, чтобы продюсер счел запись успешной.
0 — не ждёт ответа; 1 — ждёт лидера; all — ждёт всех в ISR.
ISR (In-Sync Replicas) — это группа реплик Kafka, которые синхронизированы с лидером и содержат актуальные данные.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как повысить производительность брокера?

A

1) Использовать ssd
2) Использовать больше RAM
3) Правильно настроить количество пар тиций
4) Тюнить параметры продюсера
5) Тюнить параметры сети и буфера

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Что такое ретенция логов?

A

Период/размер, после которого Kafka удаляет старые сообщения.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Как повысить отказоустойчивость?

A

1) Увеличение фактора репликации (replication.factor=3)
2) Настройка подтвреждения от всех реплик (acks=all)

17
Q

Какие ключевые метрики важны?

A

1) Lag (задержка)
2) ISR size (список реплик, которые полностью синхронизированы с лидером)
3) Пропускная способность (byte-in, byte-out)

18
Q

Что такое ISR?

A

In-Sync Replicas — реплики, синхронизированные с лидером.

19
Q

Какие есть стратегии партиционирования?

A

По ключу, случайное, кастомный партиционер.

20
Q

Какой оптимальный размер segment.bytes для больших топиков?

A

Обычно 1 GB.

21
Q

Какие алгоритмы компрессии рекомендуются?

A

lz4 (быстро), zstd (лучшее сжатие).

22
Q

Что влияет на задержku (latency)?

A

1) linger.ms (время, которое дается для формирования батча)
2) acks (подтверждения на уровне кворуму, сколько брокеров должны подтвердить запись)
3) размер batch
4) скорость дисков

23
Q

Как оптимизировать потребителя?

A

1) fetch.min.bytes (минимальный размер данных прежде, чем кафка ответит)
2) fetch.max.wait.ms (сколько кафка максимум может ждать)
3) следить за lag (количество сообщений, которые кафка не успел обработать)

24
Q

.option(“startingOffsets”, “earliest”) # и “latest”
В чем разница?

A

Если укажем “earlest”, то браться новые сообщения, а также и те, которые уже были в kafka.
“latest” - будут браться только сообщения, которые пришли после запуска стриминга