Wstęp (analiza problemu)

Czy jako architekt lub programista platformy e-commerce kiedykolwiek doświadczyłeś stresu związanego z przygotowaniem się do takich wydarzeń jak “618” czy “Double 11”? Gdy ogromna liczba użytkowników jednocześnie spamuje przycisk “Kup teraz”, twój system zostaje poddany poważnemu testowi.

  • Nadmierna sprzedaż zapasów:Konflikty między odczytami a zapisami w bazie danych doprowadziły do sytuacji, w której faktycznie wyprzedana została cała ilość towaru, mimo to udało się zrealizować zamówienia, co skutkowało stratami finansowymi i reklamacjami ze strony klientów.
  • Wąskie gardło w bazie danych:Zapytania o natychmiastowe wykonanie zleceń napływały do centralnej bazy danych niczym tsunami, powodując przeciążenie procesora i liczby połączeń, a także znaczne opóźnienia w odpowiedziach, co doprowadziło do całkowitego załamania systemu.
  • Zła jakość obsługi użytkownika:Strona ładuje się powoli, a po kliknięciu przycisku nie dzieje się nic. Użytkownik widzi tylko komunikat “System jest zajęty” i ostatecznie odchodzi rozczarowany.

Podsumowując w jednym zdaniu:Jeśli zmagasz się z problemami związanymi z wyprzedaniem zapasów, wąskimi gardłami w bazach danych i stabilnością systemu w scenariach wysokiej częstotliwości i szybkich wyprzedaży, ten artykuł przedstawi kompleksowe, wysokowydajne rozwiązanie oparte na TDSQL-C w chmurze Tencent.

Diagram architektury rozwiązania i jego opis.

Poniższy rysunek wyraźnie pokazuje architekturę rozwiązania do przeprowadzania wyprzedaży w ciągu kilku sekund w oparciu o TDSQL-C w chmurze Tencent.

Jak Tencent Cloud TDSQL-C (w wersji PostgreSQL) rozwiązuje problem z szybkim uszczupleniem zapasów podczas akcji typu „kup teraz” przy dużym ruchu? - LikaCloud

Opis architektury: żądania użytkowników są przyspieszane przez Tencent Cloud CDN, aby załadować zasoby statyczne, a następnie są dystrybuowane przez równoważnik obciążenia CLB. Aplikacje biznesowe są wdrażane na serwerach CVM i integrowane z Tencent Cloud Redis w celu buforowania danych z częstym dostępem. Najważniejsze jest to, że kluczowe operacje zmniejszania stanów magazynowych są wykonywane bezpośrednio przez wysokowydajną i wysoce kompatybilną bazę danych TDSQL-C (w wersji PostgreSQL), co zapewnia absolutną spójność danych i wysoką wydajność.

Krótki opis procesu pracy:

  1. Dostęp do ruchu i jego dystrybucja:Użytkownik najpierw żąda przyspieszenia ładowania statycznych stron przez Tencent Cloud CDN, a następnie za pośrednictwem równoważenia obciążenia (CLB) żądanie jest równomiernie rozdzielane pomiędzy klastrami serwerów biznesowych znajdującymi się w zapleczu.
  2. Rozdzielenie odczytu od zapisu:Gdy serwer biznesowy odczytuje informacje o produktach i inne dane niekluczowe, ma pierwszeństwo dostęp do pamięci podręcznej Tencent Cloud Redis, co znacznie zmniejsza obciążenie bazy danych. W przypadku kluczowych transakcji, takich jak odliczanie zapasów, aplikacja łączy się bezpośrednio z głównym egzemplarzem TDSQL-C.
  3. Odliczenie podstawowe:TDSQL-C wykorzystuje zaawansowane możliwości przetwarzania transakcji i blokowania wierszy w PostgreSQL, aby wykonywać proces “wyszukiwanie w bazie danych -> sprawdzenie, czy ilość jest większa niż 0 -> odjęcie zapasów” na poziomie bazy danych w formie operacji atomowej, co zasadniczo eliminuje ryzyko nadmiernej sprzedaży.
  4. Wynik:Po pomyślnym odliczeniu aktualizujemy pamięć podręczną i przekazujemy użytkownikowi informację o powodzeniu. Instancja tylko do odczytu odpowiada za obsługę zapytań o zamówienia i innych zapytań o odczyt, co dodatkowo zmniejsza obciążenie bazy danych głównej.

Propozycja wartości:To rozwiązanie wykorzystuje architekturę “Redis do buforowania danych ważnych dla wydajności + TDSQL-C do zapewnienia spójności danych przy bardzo dużym natężeniu ruchu”, dzięki czemu można korzystać z wysokiej wydajności pamięci podręcznej, a jednocześnie zapewnić wysoką spójność danych w bazie przy bardzo dużym obciążeniu, co pozwala skutecznie rozwiązywać główne problemy związane z transakcjami typu flash sale.

Szczegółowe informacje o głównych produktach i komponentach.

Kluczowe komponentyGranie rólKluczowe zalecenia dotyczące konfiguracji/wyboru.Dlaczego wybrałeś to?
Tencent Cloud TDSQL-C (wersja PostgreSQL)Warstwa danych głównych jest odpowiedzialna za transakcje o wysokiej spójności, które umożliwiają odliczanie zapasów.To jest klucz do rozwiązania problemu wyprzedaży.Zaleca się wybór wersji bezserwerowej, która automatycznie skaluje się w zależności od rzeczywistego wykorzystania zasobów obliczeniowych, z łatwością radząc sobie z pikami ruchu; pamięć jest rozliczana według rzeczywistej ilości danych, co zapewnia optymalne koszty.Maxymalna wydajność:Architektura z rozdzielonymi obliczeniami i pamięcią, z wydajnością we/wy dwu- lub trzykrotnie większą niż w lokalnych dyskach SSD, gwarantuje reakcję w ciągu zaledwie kilku milisekund.
0% jest kompatybilny z PostgreSQL:Nie ma potrzeby modyfikowania kodu biznesowego, co zapewnia płynną migrację.
Maxymalna dostępność:Wiele kopii danych, automatyczne przełączanie w przypadku awarii oraz dostępność usług na poziomie 99,991% TP4T.
Tencent Cloud RedisWarstwa pamięci podręcznej, która buforuje szczegóły produktów popularnych wśród klientów, statusy promocji typu „kup teraz” itp.Objęcie większości żądań odczytu i ochrona bazy danych zaplecza.Wybierz specyfikację pamięci, która zapewni szybkość odczytu i zapisu, ustaw rozsądny czas wygaśnięcia oraz wykonaj wszystkie czynności przed rozpoczęciem wyprzedaży.Rozgrzewanie pamięci podręcznej.Bardzo wysoka przepustowość:Obciążenie bazy danych zostało znacznie zmniejszone dzięki obsłudze setek tysięcy zapytań na sekundę (QPS).
Bogata struktura danych:Możliwe jest użycie takich struktur jak lista i zbiór, aby zaimplementować złożone mechanizmy, np. kolejkę do promocji typu „kup teraz”.
Utrwalanie danych:Należy unikać sytuacji, w której ponowne uruchomienie pamięci podręcznej skutkuje utratą danych.
Równoważenie obciążenia w chmurze Tencent (CLB)Portal wejściowy, który równomiernie rozdziela ogromną liczbę żądań użytkowników na wiele serwerów biznesowych znajdujących się w zapleczu.Konfiguracja do monitorowania na czterech poziomach (TCP) lub siedmiu poziomach (HTTP/HTTPS) oraz włączenie kontroli integralności w celu automatycznego wykluczania nieprawidłowo działających serwerów zaplecza.Bardzo wysoka wydajność:Jedna grupa może obsługiwać setki milionów połączeń i bez problemów radzić sobie z nagłym wzrostem ruchu.
Wysoka dostępność:Wdrożenie w klastrze eliminuje pojedyncze punkty awarii.
Elastyczna skalowalność:Można to automatycznie dostosować w zależności od natężenia ruchu.
Serwer w chmurze (CVM) / elastyczna skalowalność (AS)Serwer aplikacji, który obsługuje logikę biznesową.Za pomocą elastycznej grupy skalowania można automatycznie zwiększyć liczbę serwerów podczas promocji typu flash sale, a następnie automatycznie ją zmniejszyć po zakończeniu promocji, co pozwala zaoszczędzić na kosztach.Elastyczna konfiguracja:Dostępnych jest wiele różnych konfiguracji obliczeniowych, z których można wybrać według potrzeb.
Bezproblemowa integracja z CLB:CVM w grupie skalowalnej automatycznie rejestruje i wyrejestrowuje się w CLB.

Streszczenie zalet rozwiązania.

  • ⛓️ Zapobiega nadmiernej sprzedaży:Dzięki silnym właściwościom transakcyjnym TDSQL-C możliwe jest precyzyjne odliczanie zapasów, co pozwala zapobiegać stratom finansowym i reklamacjom klientów wynikającym z nadmiernej sprzedaży.
  • ⚡ Najwyższa wydajność:Doskonała wydajność we/wy TDSQL-C w połączeniu z pamięcią podręczną Redis gwarantuje stabilną i płynną pracę systemu podczas akcji „kup teraz” oraz wygodne zakupy dla użytkowników.
  • 📈 Wysoka dostępność i elastyczność:Wysoka dostępność całej sieci (CLB, grupy skalowane CVM, wiele kopii TDSQL-C), brak pojedynczych punktów awarii w systemie oraz automatyczne skalowanie w zależności od natężenia ruchu przy kontrolowanych kosztach.
  • 🛡️ Płynna migracja:TDSQL-C 100% jest kompatybilny z PostgreSQL, dzięki czemu istniejące usługi można uruchomić przy minimalnych zmianach, co znacznie zmniejsza bariery techniczne i ryzyko migracji.

Scenariusze użycia i klienci, dla których są przeznaczone.

  • Główny scenariusz:Chwilowe scenariusze wysokiej intensywności na platformach e-commerce, takie jak wyprzedaże, zakupy pod presją czasu, oferty specjalne z ograniczonym czasem trwania czy loterie.
  • Charakterystyka klientów, dla których jest to przeznaczone:
    • W biznesie występują cykliczne lub nagłe wzrosty ruchu, w związku z czym istnieje duże zapotrzebowanie na elastyczną skalowalność systemu.
    • Wymagania dotyczące spójności danych są bardzo wysokie i nie można zaakceptować takich usterek biznesowych jak nadmierna sprzedaż zapasów.
    • Obecnie korzystamy z bazy danych PostgreSQL i chcemy znaleźć bardziej zaawansowane i wygodniejsze rozwiązanie w zakresie chmurowej bazy danych.

Powiązane linki

Tencent Cloud TDSQL-C 1000TP4T jest kompatybilny z MySQL i PostgreSQL.
Bezpłatna wersja próbna TDSQL-C. Po okresie próbnym opłata za przedłużenie wynosi 35%, a przepustowość sięga ponad miliona QPS.
Przeniesienie do chmury PostgreSQL. Migracja z wersji TDSQL-C PostgreSQL do chmurowej bazy danych PostgreSQL.
Tencent Cloud Redis Kompatybilny z protokołami Redis i Memcached.
CVM Pheasant Type Konfiguracja na okres od 1 miesiąca do 5 lat, spełniająca wymagania różnych scenariuszy, z rabatem nawet do 55%.