Kafka Flashcards

1
Q

Общее описание, термины

A
  • Кафку можно использовать как брокер сообщений, сервис интеграции разных источников, микросервисов, отделов и пр. в компании
  • Продьюсер создаёт сообщение и пишет в топик
  • Топики разделены на партиции для масштабирования чтения
  • Консьюмер подписан на топик и это новое сообщение читает
  • Оффсет обозначает последнее обработанное сообщение в партиции
  • Консьюмеры рекомендуется объединять в группы для автоматической балансировки нагрузки
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Как хранится offset

A

Кафка хранит оффсеты в разрезе [topic, partition, consumer_group] в техническом топике __consumer_offsets. Поменяй любую составляющую, получишь другой оффсет.

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

Consumer group, масштабирование чтения

A

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

Пусть p — партиция топика, c — консьюмер, g — группа консьюмеров:
1. Вначале p=[p1, p2], g=[c1]: с1 читает из [p1, p2]
2. Добавляем c2 в группу, g=[c1, c2]: p1->c1, p2->c2
3. Добавляем c3 в группу, g=[c1, c2, c3]: c3 простаивает
4. Убиваем c1, g=[c2, c3]: p1->c3, p2->c2
5. Добавляем 2 партиции, p=[p1, p2, p3, p4]: [p1, p3]->c3, [p2, p4]->c2

p.s. новая группа создаётся при конфигурации консьюмера просто указанием названия, которое отличается от прошлой группы; отдельных команд нет

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

Особенности интеграции с Clickhouse

A

У клика есть kafka engine – возможность забирать данные из топика кафки без ETL инструментов. При этом, если кликхауз шардирован и реплицирован, то количество партиций в топике должно без остатка делиться на количество серверов CH, иначе возможен перекос данных из-за логики выбора партиции. Подробнее в докладе (рекомендую вообще целиком глянуть).

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

Масштабирование записи, подтверждение об успешной записи (Acknowledgements)

A

TODO

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

At most once, At least once, Exactly once delivery

A

TODO

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