Le processus php est-il une longue connexion ?

(*-*)浩
Libérer: 2023-02-27 15:24:01
original
2210 Les gens l'ont consulté

Un système logiciel complet est principalement composé de plusieurs processus travaillant ensemble, même s'ils se trouvent sur le même serveur. Une communication efficace entre les processus est donc cruciale.

Le processus php est-il une longue connexion ?

En tant que langage de script, PHP ne réside pas dans les processus comme C++/Java, il utilise donc des connexions courtes pour se connecter aux services back-end.

Voix off : Un ami a dit que les extensions pouvaient être écrites en C ? (Apprentissage recommandé : Tutoriel vidéo PHP)

Le processus php est-il une longue connexion ?

L'image ci-dessus est un scénario typique Le site PHP est déployé sur la machine A, et le cache memcache. est déployé sur la machine A. B, communique via des connexions courtes, le processus est le suivant :

(1) php établit une connexion courte TCP

(2) Envoyer des données selon le protocole Memcache

( 3) Recevez les données renvoyées par memcache ;

(4) PHP ferme la connexion courte TCP

Lorsque le trafic est faible, il n'y a aucun problème avec le processus ci-dessus ; . Lorsque le trafic du site Web est très important, la connexion courte peut devenir un goulot d'étranglement des performances. Existe-t-il une méthode d'optimisation ?

Voix off : Établir et détruire des connexions prend du temps.

Changeons de sujet, qu'est-ce que UNIX Domain Socket ?

UNIX Domain Socket est un mécanisme IPC. Il n'a pas besoin de passer par la pile de protocoles réseau, n'a pas besoin d'emballer et de décompresser, de calculer des sommes de contrôle, de conserver des numéros de séquence et des réponses, etc. transfère les données de la couche application d’un processus et les copie vers un autre processus.

Voix off : IPC, Communication Inter-Processus.

Il peut être utilisé pour deux processus non liés sur le même hôte et est en duplex intégral, fournissant un mécanisme IPC pour une livraison fiable des messages (pas de perte de message, pas de duplication, pas de confusion).

Voix off : La parenté fait référence à une relation de processus "spéciale" telle qu'un processus père-fils ou un processus frère.

On peut voir que l'efficacité du socket de domaine UNIX est bien supérieure à celle de la connexion courte TCP, mais il ne peut être utilisé que pour la communication de processus entre le même hôte, et les applications PHP et les services back-end sont souvent déployé dans différents Sur la machine, peut-il être utilisé à des fins d'optimisation à ce moment-là ?

Le processus php est-il une longue connexion ?

Le schéma d'architecture simple optimisé est le suivant :

(1) Déployer un proxy local sur le serveur d'applications php ;

(2) php et le proxy local utilisent UNIX Domain Socket pour communiquer

(3) le proxy local communique avec le service back-end via une connexion longue TCP ; > Cela améliore considérablement l'efficacité de la communication et élimine la surcharge liée à l'établissement et à la fermeture de connexions courtes TCP pour chaque requête

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal