Introduction (analyse des points douloureux)

En tant qu'architecte ou développeur d'une plateforme de commerce électronique, avez-vous déjà passé des nuits blanches à la veille d'une “deuxième vente” ou d'une “grande promotion” ? Lorsque des millions d'utilisateurs cliquent sur “Acheter maintenant” au même moment, votre système est-il confronté aux défis suivants ?

  • La pression de la base de données est montée en flèche.Les informations sur les produits chauds et les demandes de renseignements sur les stocks sont instantanément transmises à la connexion à la base de données, ce qui entraîne une avalanche de services.
  • L'énigme de la survente des stocks.Dans un environnement concurrentiel, les faibles performances des verrous transactionnels des bases de données traditionnelles peuvent facilement conduire à une déduction incorrecte des stocks et à une “survente”, entraînant une perte de capital et des réclamations de la part des clients.
  • La réponse est extrêmement lente.Les pages des utilisateurs traînaient et tournaient en rond, les demandes de commande restaient sans réponse pendant de longues périodes, ce qui a finalement conduit à l'effondrement de l'expérience utilisateur et à la perte de la campagne.
  • Attaque par requête malveillante.Les scripts d'escalade et les outils de débroussaillage s'emparent des ressources normales des utilisateurs et compromettent l'équité de l'événement.

Si vous êtes confronté à des problèmes de stabilité du système, de cohérence des données et d'expérience utilisateur dus à des pics de concurrence élevés, cet article vous fournira une solution éprouvée et complète de meilleures pratiques pour AliCloud.

Diagramme et aperçu de l'architecture de la solution

Le diagramme ci-dessous montre clairement comment construire une architecture de système séculaire robuste en utilisant les produits AliCloud :

AliCloud Redis alimente le système de pointe : mise en cache des données chaudes et meilleures pratiques de déduction d'inventaire - LikaCloud

Les principales idées de conception du programme sont les suivantes“Interception par couches, asynchronisation et cohérence à terme”

Flux de travail.

  1. Couche d'accès et de protection du trafic.Les demandes des utilisateurs sont d'abord acheminées par l'intermédiaire duAccélération de la sécurité en périphérie (ESA)peut-êtreCDNRevenez rapidement aux ressources de la page statique, puis à l'élémentPare-feu pour applications web (WAF)Nettoyage du trafic malveillant.
  2. Couche logique d'entreprise.flux netÉquilibrage de la charge (SLB)Distribuer aux serveurs d'applications sans état (ECSpeut-êtreFonction Calcul FC), effectuer des contrôles de base tels que l'identité de l'utilisateur et l'éligibilité à l'accrochage.
  3. Cache central et couche de déduction.Une fois le contrôle d'éligibilité passé, le serveur appelle la fonctionBase de données en nuage Edition Tair/RedisIl peut également être utilisé pour vérifier et pré-déduire les stocks de manière atomique, enregistrer le statut d'achat de l'utilisateur et renvoyer le résultat instantanément.
  4. Couche de traitement des commandes asynchrone.Les demandes de pré-déduction acceptées sont envoyées sous forme de messages à l'adresse suivanteFiles d'attente de messages Édition RocketMQafin de réduire les pics de trafic. Les services en aval consomment des messages de manière asynchrone pour effectuer des opérations qui prennent du temps, telles que la création de commandes et la persistance de la base de données.
  5. Couche de persistance des données.​ ​Cloud Database RDS MySQL Editionen tant que magasin de données ultime, en utilisant sonIndice d'inventaireCette fonctionnalité gère efficacement les mises à jour des rangées de hotspots afin d'assurer la cohérence avec Redis.
  6. Suivi complet des liens.​ ​Service de surveillance en temps réel des applications (ARMS)Tout au long du processus, il fournit des informations sur les performances de l'ensemble des liaisons pour aider à localiser rapidement les goulets d'étranglement.

Proposition de valeur.En assimilant les demandes de lecture 99% et les opérations de déduction d'inventaire dans la couche de cache et en ne permettant qu'à un petit nombre de demandes réussies d'entrer dans la base de données, cette solution résout complètement le problème soulevé dans l'introduction et permet de traiter des dizaines, voire des centaines de milliers de demandes par seconde.

Produits et composants de base

assemblagesjouer un rôlePrincipales recommandations en matière de configuration/sélectionPourquoi le choisir ?
Base de données en nuage Edition Tair/RedisLe cœur du système. Entreprendre :
1.Cache de données chaudesCachez les détails du produit.
2.Retenue d'inventaire: à traversDECROuLuaInventaire de la déduction atomique.
3.limitation du débit de la demande (informatique): à traversINCRPermet de limiter le trafic aux dimensions de l'utilisateur/IP.
4.marqueur de statutUtilisation de laSETNXSignaler les utilisateurs qui ont déjà passé une commande afin d'éviter les achats en double.
-sélection: Sélectionà base de mémoireOutype de mémoire persistanteles instances, la performance d'abord.
-configurer: Ouvrirobjectivation(AOF) pour éviter la perte de données au redémarrage.
-construire: AdoptionÉdition en grappeafin de faciliter l'évolution des performances.
Fournir un débit très élevé et des opérations atomiques, des performances bien supérieures à celles de la base de données. La version AliCloud offreflashback de donnéesexpansion et contraction sans ruptureet d'autres fonctions avancées avec un fonctionnement et une gestion simples.
Files d'attente de messages Édition RocketMQLes “zones inondables” et les “zones tampons” du système. Entreprendre :
réduction des picsLes services de traitement des commandes : convertissent les demandes de placement de commandes synchrones instantanées en messages asynchrones qui sont envoyés en douceur aux services de traitement des commandes en aval afin d'éviter que ces services ne soient débordés.
-sélection: SélectionÉdition en grappeafin d'assurer une haute disponibilité.
-configurer: Créationmessage séquentielqui garantit le caractère séquentiel des commandes passées pour un même article.
Un débit extrêmement élevé et un empilage de messages fiable avec la prise en charge demessage de transactionLa logique de l'entreprise est donc cohérente et idéale pour le découplage asynchrone.
Cloud Database RDS MySQL EditionLe “coffre-fort ultime” du système. Entreprendre :
Persistance des données finalesL'agent asynchrone : reçoit les informations relatives à la commande de la part de l'agent asynchrone afin de procéder à la déduction du stock final, à la création de la commande et à d'autres opérations de dépôt.
-caractérisation: Hautement recommandéIndice d'inventairequi améliore plusieurs fois les performances lors de la mise à jour d'une seule ligne d'inventaire à un niveau de concurrence élevé.
-construire: AdoptionÉdition haute disponibilité(déploiement de la multi-disponibilité) Fiabilité garantie.
En tant que base de données relationnelle mature et stable, les caractéristiques ACID des données sont garanties.scène d'épi (informatique)Optimisation pour résoudre le dernier goulot d'étranglement des performances.
Accélération de la sécurité en périphérie (ESA) / CDNLa “première barrière” au système. Entreprendre :
Accélération et protectionLes ressources statiques (HTML, CSS, JS, images) des pages actives sont mises en cache afin d'intercepter la plupart des demandes des utilisateurs au niveau des nœuds périphériques, ce qui réduit considérablement la pression exercée sur le site source.
-configurerPage d'accueil : Définition d'un délai d'expiration raisonnable pour la page d'accueilpréchaufferetrafraîchir (fenêtre d'ordinateur)Le réseau mondial de nœuds fournit une réponse à la milliseconde et intègre des capacités de protection contre les attaques DDoS afin d'améliorer l'expérience de l'utilisateur tout en préservant la sécurité.
Pare-feu pour applications web (WAF)Des “agents de sécurité” pour le système.. Entreprendre :
Etanchéité à la brosse et filtrationIl s'agit d'identifier et de bloquer avec précision les scripts de scalpage, les attaques CC, les injections SQL et autres requêtes malveillantes afin de garantir l'équité des activités et la sécurité de l'entreprise.
-configurer: Activervérification homme-ordinateurCC SécuritéContrôle d'accès de précision personnaliséLa règle limite le trafic par rapport aux URL de pics.Assurez une protection complète de vos applications web sans modifier le code de votre entreprise et relevez facilement les défis du chantage.
Service de surveillance en temps réel des applications (ARMS)Le “moniteur de panorama” du système.. Entreprendre :
Lien complet observableLes solutions de gestion de la performance : surveillez chaque requête de l'API frontale vers le back-end Redis, MQ et DB pour localiser rapidement les goulots d'étranglement et les anomalies de performance.
-configurer: pour les interfaces du noyau spike, les commandes Redis, les paramètres du tas MQAperçu des activitésetRègles d'alarmeFournit des capacités de surveillance des performances de bout en bout, permettant une visibilité d'un coup d'œil dans les systèmes distribués complexes et un dépannage rapide.

Résumé des avantages du programme

  • ⚡ Performance extrême avec une réponse à la milliseconde.Le fonctionnement en mémoire de Redis et l'architecture asynchrone permettent de faire face à des millions de QPS, ce qui garantit à l'utilisateur une expérience fluide.
  • ? ️ Les données sont fiables et éliminent la survente.Les opérations atomiques Redis et les scripts Lua garantissent une pré-déduction précise, combinée aux transactions RDS et à l'indice d'inventaire pour garantir que l'inventaire est cohérent et qu'il n'y a jamais de survente.
  • ? ️ L'écrêtement des flux et la stabilité du système.Le découplage asynchrone de RocketMQ résiste efficacement aux pics de trafic transitoires, afin de protéger la base de données et les services en aval.
  • ? Sûre et conforme, juste et digne de confiance.Grâce au WAF, à la défense élevée contre les attaques DDoS et à d'autres moyens, il construit un système de protection tridimensionnel allant de la périphérie au nuage, identifie et intercepte efficacement les requêtes malveillantes et garantit l'équité des activités.
  • ? Une mise à l'échelle flexible pour une optimisation des coûts.Tous les produits de base permettent une extension élastique de la capacité à la demande et peuvent être réduits après l'événement, ce qui permet de contrôler efficacement les coûts.

Scénarios d'application et clients concernés

  • Scénarios d'application.
    • Promotion du commerce électronique.Les produits les plus populaires des festivals de shopping, tels que “Double 11” et “618”, sont disponibles à l'achat.
    • Édition limitée.Il s'agit par exemple du lancement de nouveaux téléphones portables, d'une édition limitée de chaussures de sport ou de billets de concert.
    • Bon d'achat chronométré Grab.Campagnes chronométrées pour les coupons de plate-forme et les paquets rouges.
  • Clients concernés.
    • Toutes les plateformes de commerce électronique, l'enseignement en ligne, les systèmes de billetterie et d'autres entreprises qui doivent faire face à des opérations urgentes à forte concurrence.
    • Les clients dont le trafic de pointe est très différent du trafic quotidien et qui ont besoin de ressources élastiques pour y faire face.
    • Les clients qui exigent le plus haut niveau de cohérence des données et ne peuvent tolérer la survente.

Liens connexes