mirror of
https://github.com/SantaSpeen/santaspeen.ru-blog.git
synced 2026-02-16 02:30:58 +00:00
add kafka docs
This commit is contained in:
36
docs/misc/kafka.md
Normal file
36
docs/misc/kafka.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Kafka
|
||||
|
||||
## Вопросы про партиции
|
||||
|
||||
1. То есть каждый консьюмер видит не все сообщения в топике, а то только ту часть, которая попала в его партицию?
|
||||
|
||||
>Да, это так. Каждый консьюмер в консьюмер-группе читает только из своей выделенной партиции топика.
|
||||
>Если количество консьюмеров совпадает с количеством партиций в топике, то каждый консьюмер будет читать только из своей партиции, и соответственно не будет видеть сообщения, которые находятся в других партициях.
|
||||
>
|
||||
> Это может быть полезно для обработки большого объема данных и для масштабирования консьюмеров.
|
||||
>
|
||||
> Однако, если количество консьюмеров не совпадает с количеством партиций, то некоторые партиции будут обрабатываться несколькими консьюмерами.
|
||||
> Это может быть полезно, если некоторые из партиций генерируют больше данных, чем другие.
|
||||
>
|
||||
>Используя партиционность, можно обеспечить балансировку нагрузки между консьюмерами и обеспечить распределенную обработку данных. Это может улучшить производительность и масштабируемость вашей системы.
|
||||
|
||||
|
||||
2. Если нужно, чтобы все консьюмеры видели все сообщения в топике, то они не должны быть в одной группе?
|
||||
|
||||
|
||||
>Нет. Если мы добавим ещё одного консьюмера в группу, то партиции автоматически распределятся между ними.
|
||||
>Скажем, у нас 3 партиции. c1(consumer1) теперь будет читать сообщения из первой и второй партиции, а c2 — из третьей. Добавив ещё одного консьюмера (c3), мы добьёмся идеального распределения нагрузки, и каждый из консьюмеров в этой группе будет читать данные из одной партиции.
|
||||
А вот если мы добавим в группу ещё одного консьюмера (c4), то он не будет задействован в обработке сообщений вообще.
|
||||
>
|
||||
>Важно понять: внутри одной консьюмер-группы партиции назначаются консьюмерам уникально, чтобы избежать повторной обработки.
|
||||
>
|
||||
>Если консьюмеры не справляются с текущим объёмом данных, то следует добавить новую партицию в топик. Только после этого консьюмер c4 начнёт свою работу.
|
||||
|
||||
|
||||
3. Если в один топик пишутся события для разных консьюмеров и они находят нужное им событие по определенному uuid и консьюмеры не объединены в группу, то получается каждый прочтет свое сообщение и тк его прочтут не все консьюмеры, то оно будет лежать в топике, пока не выйдет его время жизни и Кафка сама его не почистит?
|
||||
|
||||
>Если 1 партиция, где лежат разного рода данные, тогда создайте разные консюмер-группы под каждый случай, либо делайте разные топики для каждого типа сообщения. Да, кафка удалит сообщение после retention периода
|
||||
Reference in New Issue
Block a user