PHP-FPM
Les premières versions de PHP n'avaient pas de serveur WEB intégré, mais fournissaient SAPI (API serveur) à des tiers les fêtes font l'amarrage. Le désormais très populaire php-fpm gère la communication entre PHP et les serveurs WEB tiers via le protocole FastCGI. (Apprentissage recommandé : tutoriel vidéo swoole )
Par exemple, la combinaison de Nginx + php-fpm, fpm exécuté de cette manière est en mode Maître/Travailleur, démarrant un processus Maître pour surveiller les requêtes à partir de Nginx, puis forkez plusieurs processus Worker pour gérer la demande. Chaque processus Worker ne peut traiter qu'une seule requête. Le cycle de vie d'un seul processus est à peu près le suivant :
Module d'initialisation.
Demande d'initialisation. La requête ici signifie demander à PHP d'exécuter du code, pas une requête HTTP.
Exécutez le script PHP.
Fin de la demande.
Fermez le module.
Swoole
Swoole utilise également le mode Master/Worker. La différence est que le processus Master a plusieurs threads Reactor et que le Master n'est qu'un générateur d'événements, responsable. pour écouter le handle du Socket dans les événements.
Worker s'exécute de manière multi-processus, reçoit des requêtes des threads Reactor et exécute des fonctions de rappel (écrites en PHP). Le processus de démarrage du processus Master est à peu près le suivant :
Module d'initialisation.
Demande d'initialisation. Étant donné que swoole doit être exécuté via le cli, les variables globales de PHP, telles que $_SERVER, $_POST, $_GET, etc., ne seront pas initialisées lors de l'initialisation de la requête.
Exécutez le script PHP. Y compris l'analyse lexicale et syntaxique, l'initialisation des variables, des fonctions, des classes, etc., le Maître entre dans l'état d'écoute et ne terminera pas le processus.
Le principe de l'accélération Swoole
Le Reactor (la méthode de réutilisation des IO d'epoll) est chargé de surveiller les changements d'événements du handle de Socket pour résoudre les problèmes de forte concurrence .
Gagnez du temps lors de l'initialisation du code PHP grâce à la mémoire résidente. Lors de l'utilisation de frameworks volumineux, l'effet d'accélération de l'utilisation de swoole est très évident.
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!