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

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

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

Как в этом поступают разработчики таких проектов? Идут на риск и держат данные только в оперативной памяти, идут на компромисс и периодически выгружают данные в файловую систему или делают все самым надежным способом, несмотря на накладные расходы?
  • Вопрос задан
  • 238 просмотров
Подписаться 4 Простой Комментировать
Ответ пользователя bugbuster К ответам на вопрос (2)
@bugbuster
Исходный вопрос вместил в себя слишком много разнородных тем и он немного сложнее, чем просто выбор между хранением данных в памяти и на диске. Все-таки, насколько я понимаю вопрос в архитектуре очередей в высоконагруженной системе?
Если да, то во-первых, в необходимо использовать очередь, состоящую из кластера узлов.
Во-вторых, надо определиться, что именно важнее для вашей системы: согласованность или доступность кластера.
Например, с RabbitMQ можно выбирать в какую сторону проводить оптимизацию.
Ответ написан
Комментировать