Мы сейчас разрабатываем систему лояльности, в которой создаются фильры событий,

которые связываются с кафка топиками и с flink sql
Дальше весь этот поток данных нужно как читать из топиков
Пока что пришли к мысли, что нужно создать рантайм процесс, который создает одного коньсюмера, читатет N топиков и выполняет свою логику, которая сейчас не особа важна для обсуждения
Возник вопрос, как управлять поведением системы, если хочется удалить бизнесовый фильтр событий
Подумали, что нужно тогда и топики удалить?
А что будет с рантайм процессом, если он будет читать несуществующий топик?)

Короче, я готов быть закиданным помидорками, если укажете на ошибки в рамках обсуждения кафки!

11 ответов

21 просмотр

avro+shema-regesstry

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

Владислав Килин
Один консюмер на несколько топиков плохо скейлится...

им бы архитектора туда, ну или хотя бы лида который понимает хоть чуть чуть в аналитике

Владислав Килин
Один консюмер на несколько топиков плохо скейлится...

А один топик -> несколько консюмеров? Мне казалось, в этом один из юзкейсов кафки, например если у меня на одни и те же данные несколько разных представлений/агрегаций

Maxim Kosov
А один топик -> несколько консюмеров? Мне казалось...

если это одна консьюмер-группа, и в ней число консьюмеров = числу партиций у топика - можно добиться параллелизма вашей обработки

Я говорил про разные группы. Разные сервисы, которые обрабатывают один и тот же поток и делают разные проекции данных.

Maxim Kosov
А один топик -> несколько консюмеров? Мне казалось...

Один топик на несколько групп нормальная история. Топик скейлится партициями, группы скейлятся так же.

Maxim Kosov
Я говорил про разные группы. Разные сервисы, котор...

в таком случае, запускаете количество инстансов сервиса (подов) = количество партиций, и каждый инстанс обрабатывает свою партицию гип-гип ураа, параллельная обработка

Владислав Килин
Один топик на несколько групп нормальная история. ...

Хорошо, просто после мысли 1топик = 1 консюмер, я подумал может это уже анти паттерн)

Maxim Kosov
Хорошо, просто после мысли 1топик = 1 консюмер, я ...

Мысль была не такая. Мысль в том что в идеале один сервис = один консюмер

Похожие вопросы

Обсуждают сегодня

if (user?.choseType === 'oneDay') { await ctx.reply( 'Добро пожаловать в команду «Магнита»! Правда, на один день ☺️ ', ); await ctx.s...
Kokni
1
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Это фейк @cruppto_newbot?
Antskup
13
всем салют сегодня утро заметил что бот не может отправлять фотки по url. ручками в браузере ссылка норм открывает фотки. падает ошибка 'Bad Request: failed to send message ...
Vasya Ivanov
9
ребят, привет. за какое время бот полученную заявку на вступление в группу может принять \отклонить? Помню речь была про 5 минут, сейчас как?
Роман Ромашин :)
10
Доброго времени суток. Правильно ли я понимаю, что с введением новой платежной единицы stars, я просто могу оставить текущую платёжку от Юкассы, которая выполняется на сайте с...
Prokhor Chulkov
7
вопрос: кто как решает вопрос с динамической подгрузкой скриптов для отдельных страниц с включенным turbo router?
Sergei Toroptsev
25
Добрый день! Не подскажете как к модели Категории Шопоголика добавить отношение Тейлора. Пробовал по документации, но не получается. Мб уже кто-то делал?
Николай Афанасенко
6
@veranikaEU получилось? Можно увидеть рабочий код?
Alex Kom
8
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
Карта сайта