До проєктівПроєкти / 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