Сеть розничной торговли столкнулась с проблемой долгой загрузки данных об остатках товаров из распределенных учетных систем, что приводило к ложным заказам и снижению рейтинга на маркетплейсах. Изначально шина данных последовательно собирала данные из всех систем, что занимало около трех часов. Переход на запросы остатков «по требованию» увеличил актуальность данных, но вызвал перегрузку учетных систем и шины из-за большого количества запросов.
Для решения проблемы было решено вынести функцию получения данных в отдельный микросервис с кешированием. Сервис собирает полные данные об остатках и ценах из учетных систем каждые 5 минут и хранит их в базе данных Postgres, а характеристики товаров обновляются раз в несколько часов. Это позволило снизить нагрузку на учетные системы и обеспечить доступность данных для потребителей в режиме 24/7.
Сервис не только предоставляет актуальные данные об остатках и ценах, но и данные об основных характеристиках товара. Реализация микросервиса оказалась простой, надежной и экономичной в эксплуатации. Перенос функции кеширования данных позволил снять нагрузку с учетных систем, а также оптимизировать получение данных.
Переход на новую архитектуру потребовал переработки всех потребителей данных, что было самой сложной частью проекта. Однако, эта архитектура обеспечивает масштабирование для 2000 простых и 20 сложных запросов в секунду с актуальностью данных в пределах 5 минут. Тем не менее, проблема дальнейшего роста системы остается открытой.
Изображение носит иллюстративный характер
Для решения проблемы было решено вынести функцию получения данных в отдельный микросервис с кешированием. Сервис собирает полные данные об остатках и ценах из учетных систем каждые 5 минут и хранит их в базе данных Postgres, а характеристики товаров обновляются раз в несколько часов. Это позволило снизить нагрузку на учетные системы и обеспечить доступность данных для потребителей в режиме 24/7.
Сервис не только предоставляет актуальные данные об остатках и ценах, но и данные об основных характеристиках товара. Реализация микросервиса оказалась простой, надежной и экономичной в эксплуатации. Перенос функции кеширования данных позволил снять нагрузку с учетных систем, а также оптимизировать получение данных.
Переход на новую архитектуру потребовал переработки всех потребителей данных, что было самой сложной частью проекта. Однако, эта архитектура обеспечивает масштабирование для 2000 простых и 20 сложных запросов в секунду с актуальностью данных в пределах 5 минут. Тем не менее, проблема дальнейшего роста системы остается открытой.