Wróć do projektówProjekty / Onlihub Catalog

Onlihub Catalog

Różne ścieżki danych dla różnych obciążeń

Architektura i implementacja usługi katalogu
01 / Wyzwanie

Wyzwanie

Duże zbiory ofert i kosztowne zapytania wymagały modelu odczytu dopasowanego do sposobów korzystania z danych.

02 / Moje podejście

Moje podejście

Rozdzieliłem szybką warstwę obsługi w Rust, rezerwową ścieżkę Python, cache i odczyt/wyszukiwanie od przechowywania transakcyjnego. Równoważenie obciążenia i ograniczanie żądań kontrolowały powtarzalny ruch, a przetwarzanie wsadowe oraz optymalizacja zapytań obsługiwały kosztowne operacje danych.

Przepływ systemu
  1. Kontrola ruchu

  2. Szybka ścieżka odczytu

  3. Cache i wyszukiwanie

  4. Dane transakcyjne

Co to oznacza w praktyce

Architektura i decyzje

01

Osobna usługa i jawne ścieżki danych

Katalog marketplace’u stał się osobną usługą z własną architekturą obsługi. Rust odpowiadał za główną szybką ścieżkę, uzupełnianą przez rezerwową ścieżkę Python. Odpowiadałem za architekturę i implementację, oddzielając obciążenie katalogu od szerszej aplikacji commerce.

02

Cache, wyszukiwanie i transakcje mają różne zadania

Redis buforował dane do powtarzanych odczytów, Elasticsearch zapewniał model wyszukiwania i odczytu, a PostgreSQL zachowywał odpowiedzialność transakcyjną. Oddzielało to pobieranie danych katalogu od zapisu stanu biznesowego. Operacje wsadowe i optymalizacja ciężkich zapytań uzupełniały ten podział.

03

Kontrola powtarzanego ruchu na wejściu

Równoważenie obciążenia i ograniczanie częstotliwości były częścią projektu usługi. Klientów z nadmierną liczbą powtarzanych żądań można było spowolnić, zanim zdominowali ruch. Kontrolę żądań, cache i szybką warstwę obsługi projektowano razem, uwzględniając napływ zapytań oraz sposób odczytu danych.

03 / Rezultat

Rezultat

Wyszukiwanie i częste odczyty otrzymały własną ścieżkę, a zapis transakcyjny i logika biznesowa zachowały odrębne odpowiedzialności.

04 / Narzędzia i technologie

Narzędzia i technologie

Odkrywaj dalej

Manufacturing Engineering

Kontakt

Złożone wyzwanie? Znajdźmy rozwiązanie.

Architektura, przywództwo techniczne lub produkt, który potrzebuje solidnych podstaw.

Porozmawiajmy

Rola, produkt lub wyzwanie techniczne. Opisz krótko kontekst.

Aby skorzystać z formularza, włącz JavaScript. Możesz też napisać do mnie bezpośrednio na Telegramie.

Napisz na Telegramie