Comment PHP résout la haute concurrence
1. Séparez les applications et les ressources statiques
Placez les ressources statiques (js, css, images, etc.) dans un serveur dédié.
2. Mise en cache des pages
La mise en cache des pages générées par l'application peut économiser beaucoup de ressources CPU. Pour certaines pages dont les données changent fréquemment, vous pouvez utiliser ajax pour les traiter.
Recommandation de cours vidéo → : "Solution de concurrence de données de niveau dix millions (théorie + combat pratique)"
3. Cluster et
distribué, plusieurs serveurs ont les mêmes fonctions et jouent principalement le rôle de détournement. Distribué, plaçant différentes entreprises sur différents serveurs, plusieurs serveurs peuvent être nécessaires pour traiter une demande, augmentant ainsi la vitesse de traitement d'une demande. Il est ensuite divisé en cluster de ressources statiques et cluster d'applications. Cette dernière solution est plus compliquée et des problèmes tels que la synchronisation des sessions doivent souvent être pris en compte.
4. Proxy inverse
Le serveur auquel le client accède directement n'est pas le serveur qui fournit directement des services, il obtient les ressources d'autres serveurs et renvoie ensuite les résultats. utilisateur.
Serveur proxy et serveur proxy inverse :
Le serveur proxy accède aux ressources en notre nom puis renvoie les résultats. Par exemple, accédez au serveur proxy du réseau externe. Le serveur proxy inverse est lorsque nous accédons normalement à un serveur, le serveur lui-même appelle d'autres serveurs.
Nous utilisons activement le serveur proxy pour nous servir et n'avons pas besoin d'avoir son propre nom de domaine ; le proxy inverse est utilisé par le serveur lui-même et nous ne savons pas qu'il a son propre nom de domaine.
5. CDN
CDN est un serveur de cache de pages de cluster spécial Par rapport aux serveurs de cache de plusieurs pages dans un cluster ordinaire, la principale différence est : son emplacement de stockage et. les demandes d'allocation fonctionnent différemment.
Les serveurs CDN sont répartis dans tout le pays. Après réception d'une demande, celle-ci sera attribuée au nœud de serveur CDN le plus approprié pour obtenir les données. Chacun de ses nœuds CDN est un serveur de mise en cache de pages.
Méthode de distribution :
n'est pas un équilibrage de charge ordinaire, mais est alloué par un serveur de résolution de noms de domaine CDN spécialisé lors de la résolution des noms de domaine.
L'approche générale est la suivante : le FAI utilise CNAME pour résoudre le nom de domaine en un nom de domaine spécifique, puis utilise un serveur CDN dédié pour résoudre le nom de domaine résolu (retournez au navigateur, puis accédez-y) au nœud CDN correspondant. Chaque nœud peut également être regroupé avec plusieurs serveurs.
Vous pouvez savoir que la logique métier pour gérer la simultanéité élevée est :
Front-end : requête asynchrone + statique des ressources + cdn
Arrière- fin : file d'attente de requêtes + Distribution d'interrogation + Équilibrage de charge + Cache partagé
Couche de données : cache redis + table de données + file d'attente d'écriture
Stockage : baie raid + veille chaude
Réseau : DNS Polling + Protection contre les attaques DDOS
Tutoriel recommandé : Tutoriel vidéo PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!