Inleiding (analyse van de pijnpunten)

Beste e-commerce-architecten en -ontwikkelaars, wanneer de startschoten worden gegeven voor grote promotiecampagnes als “Double Eleven” en “618”, en jullie worden geconfronteerd met een toevloed van gebruikersverkeer, hebben jullie dan wel eens met de volgende problemen te kampen?

  • Het systeem ging onmiddellijk uit:Zodra de flash-verkoop begint, klikken miljoenen gebruikers tegelijkertijd, waardoor de piekbelasting van het verkeer de database doet overstromen en het hele systeem crasht. Hierdoor kunnen pagina's niet worden geopend en worden er enorme transactieverliezen geleden.
  • Het probleem van oververkoop van voorraden:Onder gelijktijdige verzoeken worden de prestatiebeperkingen van traditionele database-lees- en schrijfslots duidelijk. Dit leidt vaak tot fouten bij het verminderen van de voorraad, “overselling” en grote financiële verliezen en klachten van klanten.
  • De reactie is extreem traag:Zelfs als het systeem niet volledig is uitgevallen, zijn de kerntransactielinks traag. Gebruikers moeten tientallen seconden wachten op een bestelverzoek, wat een slechte ervaring is en het aantal mensen dat hun winkelwagentje verlaat, doet stijgen.
  • De kosten van hulpbronnen en het probleem van flexibiliteit:De grote hoeveelheid machines die zijn gekocht om pieken het hoofd te bieden, blijven na de flash sale ongebruikt en de resource-utilisatie is zeer laag, wat tot hoge kosten leidt. Handmatige schaalvergroting is inefficiënt en biedt geen oplossing voor tijdelijke schommelingen in het verkeer.

Als u op zoek bent naar een oplossing voor het ontwerp van een sekssysteem dat bestand is tegen miljoenen gelijktijdige aanvragen, dat zorgt voor gegevensconsistentie en dat kostenefficiënt is, biedt de door Tencent Cloud geleverde architectuuroplossing voor sekssystemen, die is gevalideerd door tal van bedrijven, u een duidelijk en betrouwbaar antwoord.

Oplossingsarchitectuur en overzicht

De onderstaande afbeelding toont de kernarchitectuur en het gegevensstroomproces van de Tencent Cloud Flash Sale-oplossing:

De architectuuroplossing van Tencent Cloud voor flash-verkoop: hoe kunnen e-commercewebsites miljoenen QPS-bestellingen verwerken zonder uitvaltijd? - LikaCloud

Het centrale ontwerpidee van dit plan is ​\n​“Gelaagde interceptie, asynchrone verwerking, uiteindelijke consistentie”Het werkproces hiervan is als volgt:

  1. 1.Toegang tot en verkeersafhandeling:De gebruiker vraagt eerst om toestemming.Global Application Acceleration (GAAP)OfCDNGa snel naar de ingang en ga viaLoad balancing (CLB)Gelijkmatig verdelen.
  2. 2.Het optimaliseren en controleren van leesverzoeken:De meeste verzoeken om informatie (zoals productdetails en voorraadchecks) worden rechtstreeks doorgestuurd naar de hoogpresterende systemen.RedisCache. Tegelijkertijd door middel vanCloud Functions (SCF)Het realiseren van lichte toegangsverificatie (zoals captcha's) en het blokkeren van kwaadaardige verzoeken.
  3. 3.Het schrijven van een verzoek om pieken te verminderen en asynchroon te werken:Na de validatie voert de centrale flash-verkoopaanvraag geen directe database-operaties uit, maar worden de gegevens onmiddellijk opgeslagen.Het berichtenwachtrij-systeem KafkaHierdoor keert de gebruiker snel terug naar de status “in de wachtrij”. Dit zorgt ervoor dat pieken in het verkeer worden geëlimineerd en de consumptie gelijkmatig verloopt, waardoor de druk op de back-end aanzienlijk wordt verlicht.
  4. 4.Bestelverwerking en data-persistentie:De orderverwerkingservice aan de achterkant verwerkt de berichten uit CKafka gelijkmatig en voltooit de database.TencentDB voor MySQLDe transactionele voorraadaftrek en het aanmaken van bestellingen worden verwerkt en de cache wordt bijgewerkt.
  5. 5.Resultaatsmededeling:Na de verwerking wordt de gebruiker via een websocket of langdurige polling op de hoogte gebracht van het uiteindelijke resultaat van de bestelling.

De waardepropositie van deze architectuur is:Het bereikt een absolute piekvermindering van het verkeer via een berichtenwachtrij (CKafka), neemt het grootste deel van de leesdruk op zich via caching (Redis) en reageert flexibel op de berekeningsbehoeften met behulp van elastische schaling (AS). Hierdoor worden kwetsbare relationele databases beschermd en wordt ervoor gezorgd dat het hele systeem stabiel en efficiënt blijft werken onder hoge druk.

Detailbeschrijving van de kernproducten en -onderdelen

De naam van het onderdeel.Het spelen van een rolBelangrijke configuratie-/selectieadviezenWaarom heb je hiervoor gekozen?
De clouddatabase RedisDe cache en de tellerkernHet ophalen van voorraadinformatie voordat de flash sale begint, het inhouden van voorraad tijdens de flash sale en de tellerfunctie, verminderen de druk op de database aanzienlijk.- ​Versie selecteren:Kies voor de versie met het meeste geheugen voor de hoogste prestaties.
- ​Capaciteitsplanning:Reserveer een bufferruimte van meer dan 30% om pieken te kunnen verwerken.
- ​Implementatiemodel:Met behulp van een master-slave-versie of een clusterversie wordt een hoge beschikbaarheid gegarandeerd.
De prestaties zijn zeer hoog en ondersteunen honderdduizenden lees- en schrijfbewerkingen per seconde. Het biedt atomaire bewerkingen (zoals DECR) om de nauwkeurigheid van de voorraadvermindering te garanderen en is de eerste keuze voor het oplossen van problemen met hoge parallelle lees- en telleroperaties.
Het berichtenwachtrij-systeem CKafka.De kern van het verminderen van de piekbelasting en het ontkoppelen van verkeer.We verwerken alle verzoeken voor sekskills en zetten de plotselinge, piekbelasting om in een asynchrone, gelijkmatige berichtenstroom, zodat de downstream-systemen voor orderverwerking niet worden overbelast.- ​Capaciteitsraming:Bereken het aantal topic-partities en de schijfcapaciteit op basis van het aantal producten in de flash-verkoop en de piek-QPS.
- ​Behoudstrategie: ​Stel een redelijke bewaartijd voor berichten in om te voorkomen dat de schijf vol raakt.
Hoog doorvoer, lage latentie, compatibel met het Apache Kafka-protocol, waardoor miljoenen TPS'en met gemak kunnen worden verwerkt. De grote capaciteit voor het opslaan van berichten zorgt ervoor dat er geen verzoeken verloren gaan, zelfs niet als het verkeer veel groter is dan verwacht.
Elastische schaalbaarheid ASDe kern van de elastische planning van rekenbronnen.Het aantal orderverwerkingsservers wordt automatisch verhoogd of verlaagd op basis van indicatoren zoals het aantal berichten in de wachtrij van Kafka of de CPU-belasting.- ​Uitstelstrategie:Stel een waarschuwingsschaalstrategie in op basis van het aantal berichten om snel capaciteit uit te breiden.
- ​Afkoeltijd: ​Stel een redelijke afkoeltijd in om frequent uitrekken en samenpersen te voorkomen.
Het realiseren van “on demand gebruik” van computerbronnen, waarbij de resources automatisch worden uitgebreid om pieken te verwerken wanneer een flash sale begint, en vervolgens automatisch worden ingekrompen om resources vrij te geven wanneer de sale is afgelopen, leidt tot een grote kostenbesparing.
Cloudserver CVMDe kern van de bedrijfslogica berekeningenDeze worden gebruikt om de orderverwerking en bedrijfsvalidatieservices uit te voeren, enzovoort.- ​Maak een mirror:Het vooraf maken van een image met bedrijfscode, maakt het eenvoudig om deze snel in een schaalbare groep te implementeren.
- ​Voorbeeldtype: ​Kies een instance met rekenoptimalisatie om de snelheid van de orderverwerking te garanderen.
Het biedt stabiele, betrouwbare en flexibele rekenkracht en is naadloos geïntegreerd met producten als AS en CLB. Dit vormt de basis voor het uitvoeren van bedrijfslogica.
Load balancing CLBDe kern van het verkeersdistributieproces.De enorme hoeveelheid gebruikersverzoeken wordt gelijkmatig verdeeld over meerdere bedrijfsservers in de back-end, waardoor oververhitting van één punt wordt voorkomen.- ​Planningsalgoritme:Er worden algoritmen gebruikt zoals Weighted Round Robin (WRR).
- ​Gezondheidscontrole:Activate de gezondheidscontrole om automatisch abnormale achtergronddiensten te verwijderen.
Het verbeteren van de beschikbaarheid en schaalbaarheid van services is een essentieel onderdeel van horizontale schaalbaarheid.
Cloud Functions SCFDe lichtgewicht logische verwerkingkernHet wordt gebruikt voor het uitvoeren van lichte logica, zoals frequentiebeperking, het controleren van de gebruikerskwalificaties (bijvoorbeeld of ze al hebben deelgenomen) en het controleren van captcha's.- ​Tijdoverschrijding: ​Stel een redelijke tijdslimiet in voor de uitvoering van de functie.
- ​Geheugenconfiguratie: ​Configureer voldoende geheugen op basis van de logische complexiteit.
Een serverloze architectuur, waarbij je geen machines hoeft te beheren en je betaalt per uitgevoerde actie. Deze architectuur is ideaal voor het omgaan met tijdelijke pieken en heeft zeer lage kosten.

Samenvatting van de voordelen van het plan

  • ⚡ Ultieme prestaties, miljoenen gelijktijdige verbindingen: ​Redis-caching en asynchrone verwerking met Kafka ondersteunen moeiteloos lees- en schrijfverzoeken op miljoenniveau QPS en zorgen voor een soepele en stabiele werking van het systeem.
  • Kostenoptimalisatie, flexibele schaalbaarheid:De automatische schaalstrategie op basis van het aantal berichten zorgt voor een nauwkeurige levering van computerbronnen. Na de piek worden deze bronnen automatisch vrijgegeven, waardoor de kosten met meer dan 501 TP4T worden verlaagd.
  • ?️ Gegevens zijn consistent en overselling is uitgesloten: ​Met behulp van atomaire bewerkingen en databasetransacties in Redis wordt absolute nauwkeurigheid gegarandeerd bij het verminderen van de voorraad in een omgeving met een hoge mate van parallelle verwerking, waardoor het probleem van oververkoop volledig wordt opgelost.
  • High beschikbaarheid, zorgeloos zakendoen:De kerncomponenten (Redis, Kafka, CLB) bieden allemaal een hoge beschikbaarheid en automatische foutoverdracht, zodat de bedrijfsactiviteiten tijdens piekuren ononderbroken door kunnen gaan.
  • ? Snelle implementatie, eenvoudig beheer en onderhoud:Het is gebaseerd op de volwassen producten van Tencent Cloud, waardoor er geen complexe middleware hoeft te worden gebouwd. Het kan direct worden gebruikt, waardoor de complexiteit van ontwikkeling en beheer aanzienlijk wordt verminderd.

Toepassingsscenario's en geschikte klanten

Dit plan is zeer geschikt voor de volgende zakelijke scenario's en klanten:

  • Toepassingsscenario: ​
    • E-commerce flash sale:Zoals tijdelijke aanbiedingen, beperkte koopacties en de introductie van populaire producten.
    • Regelmatig koopjes scoren:Zoals het kopen van kortingsbonnen, treinkaartjes, concertkaartjes, etc.
    • Grote promotie-evenementen: ​Zoals activiteiten als Double 11 en 618, waarbij het aantal bezoekers tientallen keren zo groot is als op een gewone dag.
  • Toepasselijke klanten:
    • Alle e-commerceplatforms en online transactiesystemen die te maken hebben met uitdagingen op het gebied van hoge parallelle verwerking.
    • Verkopers die van plan zijn een grote promotiecampagne te organiseren en bang zijn dat hun systeem de toestroom van verkeer niet aankan.
    • Technische teams die de overgang willen maken van het zelf bouwen van complexe architecturen naar het gebruiken van gehoste services in de cloud, om zo de kosten van beheer en onderhoud te verlagen.

Gerelateerde links