А кто-то сталкивался с расчетом баланса аккаунта под высокими нагрузками

?
Есть допустим 1к в секунду запросов на изменение баланса некоего аккаунта. А так же получением разрешения на проведения операции?(баланс больше ноля и тп) Кто какие методы использовал ?
Понятное дело что через лок на баланс можно все уладить. Но тогда это все дело будет в один поток. Что сильно ограничивает масштабируемость системы.
Вопрос чисто философский. Может у кого есть какие видео или документы конкретно по этому вопросу ? Буду благодарен.

6 ответов

18 просмотров

А у тебя запросы все на одного юзера? В один поток будут запросы для проверки баланса одного и того же юзера. Или ты собрался лочить всю таблицу?

думаю тебе поможет философия CQRS и Event Sourcing ))

Dmitry- Автор вопроса
Volodymyr Melko
А у тебя запросы все на одного юзера? В один поток...

На одного юзера. Допустим это банк или платёжка. А мерчант-партнёр имеет корреспондентский счёт откуда куда нужно списывать добавлять баланс

Dmitry- Автор вопроса
𝔏𝔦𝔩𝔦𝔱𝔥
думаю тебе поможет философия CQRS и Event Sourcing...

Допустим. Cqrs пофиг. Будет 1к запросов на изменение. Как их масштабировать если баланс должен меняться атомарно. ЕС на запись ок. Но перед записью транзакции нужно проверить можно ли ее туда писать (списать 100 баксов с баланса). А это опять же только в один поток, как я понимаю.

1. Изменение баланса затрагивает один аккаунт за раз. Аккаунт наша партиция, мы можем раскидывать партиции на разные ноды базы. 2.перевод с одного аккаунта на другой это всегда две транзакции на двух аккаунтах Такая схема должна хорошо масштабироваться. Если проблема что тысяча транзакций в пределах аккаунта - если у тебя es можно в целом не полагаться на базу и там мутить всякие райплайны курсоры и батчинг.

Dmitry- Автор вопроса
Sergey P
1. Изменение баланса затрагивает один аккаунт за р...

да, проблема как раз в "1000 транзакций одновременно на один аккаунт"

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
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
Карта сайта