Кафкисты Кафкистадоры Привет Хочу сделать демо-проект, похожий на реальность из жизни С использованием Кафка Чтобы

освоить её +\-
Подскажите, плз, что это может быть?
Эмулятор какого-нибудь сервиса обращений граждан, записи к врачу, экстренной службы?

как я понимаю, суть Кафки - собрать вал шквал входящих сообщений, чтобы потом передать Обработчику без потерь?

17 ответов

23 просмотра

Что-то, что производит сообщения в кафку и что-то, что из неё читает.

сделай стриминг из бд ондой системы в бд другой системы kafka connect, kafka streams, avro, consumers

ну кафка ж "Тупой брокер, умный потребитель", сама по себе очень проста, а всякие фичи по типу идемпотентной отправки, семантика на отправку, семантику на обработку, как офсеты можно комитить, там извратные темы с прибитием кулаком консюмеров к партициями для избежания ребаланса, метрики каки, все на стороне клиента на каком нить ЯП, можно попробовать всякие штуки которые над кафкой - кафка стримс, ксклдб

Ayrat- Автор вопроса

Смотрите. Я надумал сэмулировать вал сообщений от камер дорожных штрафов. Камеры расположены в 4-х районах города: Центр, Промзона, Спальный, Элитный. Видимо, надо делать 4 топика (соответственно районам). Далее, из этих топиков сообщения о штрафах должны будут читать консюмеры (офисы Гибдд данных районов). Когда консюмер считал сообщение, он его обрабатывает и пишет в базу (что штраф выписан). Такая логика.. может, в жизни иначе устроено со штрафами, но ладно. Также я хотел бы отобразить движение сообщений на какой-нибудь доске (франтенд), чтобы был эффект присутствия. Типа 2х подвижных столбцов: столбец А - это поступившие на обработку сигналы с камер, столбец Б - выписанные штрафы

Ayrat- Автор вопроса
Ayrat
Смотрите. Я надумал сэмулировать вал сообщений от ...

проводя аналогию с картинкой-образцом https://i122.fastpic.org/big/2023/0712/5a/05376df8028bd8b73d5903855b4e565a.png, в моём примере получается: - Районов у нас 4, в каждом пускай по 10 камер. - Камера - это Producer, соответственно продюсеров 40 штук. - Топик 1; - Партиций (базовых, "лидеров"), судя по логике, должно быть 4 (по кол-ву районов); - Когда камера (producer) пишет в топик, она знает, в какую партицию писать. Для этого использовать "ключ партиционирования"; Таким образом, в партицию района "Элитный" попадают только сообщения с камер в Элитном районе. - а вот консюмеров сколько делать, я хз. Читал, что их должно быть по количеству партиций. Но 4 консюмера это скушно, не? Я имею в виду, если делать консюмер группы (для реалистичности), скажем, в одном районе 3 офиса Гибдд, в другом 1, в остальных по 2, и каждая группа потребляет

Ayrat
проводя аналогию с картинкой-образцом https://i122...

Все смешалось в доме Облонских... (с) вам вообще не нужно думать о кол-ве партиций до тех пор, пока вы не упрётесь в ограничения производительности. Пишите всё в один топик, добавляйте в состав сообщения ID вашей камеры/района/улицы/чегоугодно. Консьюмер читая сообщения парсит мета-данные и уже от этого строит логику своей работы. консьюмер-группы - это возможность логичеки разделить консьюмеров, чтобы они двигались(читали) топик вне зависимости от состояния соседних коньсюмеров - например одна КГ, это читающая топик и выписывающая штрафы, вторая КГ - это аудит, чтобы потом сверять кол-во выписанных штрафов с кол-вом попавших событий. Разные КГ будут работать с разной логикой и возможно разной скоростью

Ayrat- Автор вопроса

то есть партиции будут содержать все подряд сообщения, вперемешку с разных камер разных районов? Но если 1 партиция = 1 консюмер, то тогда консюмер "Гибдд района Центр" не получит данных с остальных партиций? Я что-то запутался Консюмеров задумано 4, чтобы каждый только свои камеры обслуживал

Ayrat
то есть партиции будут содержать все подряд сообще...

Нет, речь о консьюмер группах, у них свои оффсеты для одного и того же топика, в этом прелесть кафки

Ayrat
то есть партиции будут содержать все подряд сообще...

давайте пока исключим слово "партиция" из обсуждения) Пусть будет топик и консьюмеры. Каждый консьюмер получит все сообщения из топика на который он подписан

Ayrat- Автор вопроса
Сергей Голод
давайте пока исключим слово "партиция" из обсужде...

Консюмер группу "Выписыватели" таки создаём? Сразу

Ayrat
Консюмер группу "Выписыватели" таки создаём? Сразу

выписыватели - это аппка которая на основании сообщения(события) в топике генерирует штраф? Да, норм - пусть будет такой консьюмер (и можно сделать под него отдельную CG, consumer-group)

Ayrat- Автор вопроса

"выписыватели" (как я это сфантазировал) - это офисы Гибдд, поделённые по районам. Чтобы не замучать чат вопросами, пока думаю моделировать 1 офис на 1 район. Каждый "выписыватель" (офис гибдд в районе) интересуется только штрафами с камер, расположенных в его районе. Раз решили пока исключить углубление в партиции (для простоты), то офисы читают все сообщения, и когда попадается "своё", то офис его обрабатывает (считал, преобразовал в что-то другое, записал это "другое" в БД).

Биллинг

Ayrat- Автор вопроса
Anton Chaporgin
Биллинг

о, а напишите развёрнутей, плз ?

Ayrat
о, а напишите развёрнутей, плз ?

ну один эвент эмитер о потреблении, кафка, какой-нибудь apache flink для агрегации, kafka connect для выгрузки и какая-нибудь конечная база (postgres) чтобы хранить выставленные счета.

Ayrat
"выписыватели" (как я это сфантазировал) - это офи...

40 камер, каждая камера шлёт инфу о всех проезжающих машинах в общий топик (топику можно сделать много партиций, пусть будет 50). Данные: ид камеры, место, номер машины, скорость, фото опционально. Из топика читают сервисы: - проверка скорости (консьюмер группа speedchecker). Берет место, сверяет со скоростью, если нарушение, пересылает дальше в топик нарушителей скоростного режима (можно пару партиций сделать, например, 4) - проверка тех осмотра (консьюмер группа checktehosmotr 😂 - с телефона, не хочу лезть переводить) - сервис будет сверять с инфой в какой-нибудь БД. Нарушителей - пеенаправлять сообщения в топик нарушителей техлсмотра (3 партиции) - сервис проверки страховки ОСТА(консьюмер группа checkinsurance) - по аналогии с предыдущим пунктом, но в третий топик. Сервис выписки штрафов - может читать из всех топиков с нарушениями, выписывать штрафы, отправляя сообщения в топик на отправку смс владельцам машин. Ещё сервис, который предложил хороший друг начальника ГИБДД: читает только топик нарушителей ОСТА и с помощью миррормейкера (или обезлиивающей аппы, оставляя только номер машины) перенаправляет сообщения в топик страховой компании. Из этого топика читает сервис страховой компании (консьюмер группа insurancecompany) и шлёт смс всем нарушителям с акционным предложение страховки на год :-)

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта