К проектамПроекты / Onlihub Catalog

Onlihub Catalog

Разные пути данных для разных нагрузок

Архитектура и реализация сервиса каталога
01 / Задача

Задача

Большие наборы объявлений и тяжёлые запросы требовали модели чтения, соответствующей способам доступа к данным.

02 / Как я это реализовал

Как я это реализовал

Я разделил быстрый обслуживающий слой на Rust, резервный Python-путь, кеш и поиск/чтение с транзакционным хранилищем. Балансировка и ограничение частоты сдерживали повторный трафик, а пакетная обработка и оптимизация запросов работали с тяжёлыми операциями над данными.

Поток системы
  1. Управление трафиком

  2. Быстрый путь чтения

  3. Кеш и поиск

  4. Транзакционные данные

Что это значит на практике

Архитектура и решения

01

Отдельный сервис и определённые пути данных

Каталог маркетплейса стал отдельным сервисом с собственной обслуживающей архитектурой. Rust отвечал за основной быстрый путь, рядом работал резервный Python-подход. Я отвечал и за архитектуру, и за реализацию, отделяя нагрузку каталога от более широкого commerce-приложения.

02

У кеша, поиска и транзакций разные задачи

Redis кешировал данные для повторных чтений, Elasticsearch обеспечивал модель поиска/чтения, а PostgreSQL сохранял транзакционные обязанности. Это разделяло получение данных каталога и хранение бизнес-состояния. Пакетные операции и оптимизация тяжёлых запросов дополняли это распределение.

03

Контроль повторного трафика на входе

Балансировка и ограничение частоты были частью дизайна сервиса. Клиентов с избыточными повторными запросами можно было замедлить до преобладания их трафика. Управление запросами, кеш и быстрый обслуживающий слой проектировались вместе, учитывая и поступление запросов, и способ чтения данных.

03 / Результат

Результат

Поиск и частые чтения получили собственный путь, а транзакционное хранение и бизнес-логика сохранили отдельные обязанности.

04 / Инструменты и технологии

Инструменты и технологии

Изучайте дальше

Manufacturing Engineering

Контакт

Сложная задача? Найдём решение.

Архитектура, техническое лидерство или продукт, которому нужна прочная основа.

Начнём разговор

Роль, продукт или техническая задача. Расскажите немного о контексте.

Чтобы воспользоваться формой, включите JavaScript. Также можно написать мне напрямую в Telegram.

Написать в Telegram