Задать вопрос
Bandicoot
@Bandicoot
Вась-программист

Как платежные системы решают вопросы сохранности данных при использовании очередей?

Практически все платежные системы представляют собой высоконагруженные сервисы. Почти всегда атрибутом такого проекта являются очереди сообщений для асинхронной работы с данными. Очереди как правило работают с данными в оперативной памяти. Но сервер, на котором находится брокер сообщений, может неожиданно упасть. Сохранность данных в этом случае может обеспечить их выгрузка в файловую систему. Но с другой стороны, активная работа с файловой системой существенно снизит производительность.

Как в этом поступают разработчики таких проектов? Идут на риск и держат данные только в оперативной памяти, идут на компромисс и периодически выгружают данные в файловую систему или делают все самым надежным способом, несмотря на накладные расходы?
  • Вопрос задан
  • 237 просмотров
Подписаться 4 Простой Комментировать
Решения вопроса 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Очереди как правило работают с данными в оперативной памяти

Вот тут и вся проблема наличия данного вопроса. Нет и еще раз нет. Практически никто не работает напрямую из памяти и вообще есть несколько подходов к реализации. Разумеется в HA используются подходы с сохранением на диск данных по аналогии с Kafka. А что до платежных систем так там все иначе работает, абсолютно. Ну, то есть очереди присутствуют все еще, но транзакционность достигается не за их счет
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bugbuster
Исходный вопрос вместил в себя слишком много разнородных тем и он немного сложнее, чем просто выбор между хранением данных в памяти и на диске. Все-таки, насколько я понимаю вопрос в архитектуре очередей в высоконагруженной системе?
Если да, то во-первых, в необходимо использовать очередь, состоящую из кластера узлов.
Во-вторых, надо определиться, что именно важнее для вашей системы: согласованность или доступность кластера.
Например, с RabbitMQ можно выбирать в какую сторону проводить оптимизацию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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