?
Есть допустим 1к в секунду запросов на изменение баланса некоего аккаунта. А так же получением разрешения на проведения операции?(баланс больше ноля и тп) Кто какие методы использовал ?
Понятное дело что через лок на баланс можно все уладить. Но тогда это все дело будет в один поток. Что сильно ограничивает масштабируемость системы.
Вопрос чисто философский. Может у кого есть какие видео или документы конкретно по этому вопросу ? Буду благодарен.
А у тебя запросы все на одного юзера? В один поток будут запросы для проверки баланса одного и того же юзера. Или ты собрался лочить всю таблицу?
думаю тебе поможет философия CQRS и Event Sourcing ))
На одного юзера. Допустим это банк или платёжка. А мерчант-партнёр имеет корреспондентский счёт откуда куда нужно списывать добавлять баланс
Допустим. Cqrs пофиг. Будет 1к запросов на изменение. Как их масштабировать если баланс должен меняться атомарно. ЕС на запись ок. Но перед записью транзакции нужно проверить можно ли ее туда писать (списать 100 баксов с баланса). А это опять же только в один поток, как я понимаю.
1. Изменение баланса затрагивает один аккаунт за раз. Аккаунт наша партиция, мы можем раскидывать партиции на разные ноды базы. 2.перевод с одного аккаунта на другой это всегда две транзакции на двух аккаунтах Такая схема должна хорошо масштабироваться. Если проблема что тысяча транзакций в пределах аккаунта - если у тебя es можно в целом не полагаться на базу и там мутить всякие райплайны курсоры и батчинг.
да, проблема как раз в "1000 транзакций одновременно на один аккаунт"
Обсуждают сегодня