Heim > Artikel > Backend-Entwicklung > Ist der PHP-Prozess eine lange Verbindung?
Ein komplettes Softwaresystem besteht meist aus mehreren zusammenarbeitenden Prozessen, auch wenn diese sich auf demselben Server befinden. Daher ist eine effiziente Kommunikation zwischen Prozessen von entscheidender Bedeutung.
Als Skriptsprache ist PHP nicht prozessresident wie C++/Java und verwendet daher kurze Verbindungen, um eine Verbindung zu Back-End-Diensten herzustellen.
Voiceover: Ein Freund sagte, dass Erweiterungen in C geschrieben werden können? (Empfohlenes Lernen: PHP-Video-Tutorial)
Das Bild oben ist ein typisches Szenario, auf dem PHP und der Cache-Memcache bereitgestellt werden wird auf Maschine A bereitgestellt. B, Kommunikation über kurze Verbindungen, der Prozess ist:
(1) PHP stellt eine TCP-Kurzverbindung her
(2) Daten gemäß Memcache-Protokoll senden; >
( 3) Empfangen der vom Memcache zurückgegebenen Daten; (4) PHP schließt die TCP-Kurzverbindung Wenn der Datenverkehr gering ist, gibt es bei dem oben genannten Vorgang kein Problem . Wenn der Website-Verkehr sehr groß ist, kann die kurze Verbindung zu einem Leistungsengpass führen. Voiceover: Verbindungen aufzubauen und zu zerstören ist zeitaufwändig.Themenwechsel: Was ist UNIX Domain Socket?
UNIX Domain Socket ist ein IPC-Mechanismus. Es muss nicht den Netzwerkprotokollstapel durchlaufen, keine Prüfsummen berechnen, keine Sequenznummern und Antworten usw. verwalten Überträgt Anwendungsschichtdaten von einem Prozess, der in einen anderen Prozess kopiert wurde. Voiceover: IPC, Inter-Process Communication. Es kann für zwei unabhängige Prozesse auf demselben Host verwendet werden und ist Vollduplex und bietet einen IPC-Mechanismus für eine zuverlässige Nachrichtenzustellung (kein Nachrichtenverlust, keine Duplizierung, keine Verwirrung). Voice-over: Verwandtschaft bezieht sich auf eine „besondere“ Prozessbeziehung wie den Vater-Sohn-Prozess oder den Bruder-Prozess. Es ist ersichtlich, dass die Effizienz von UNIX Domain Socket viel höher ist als die von TCP-Kurzverbindungen, sie kann jedoch nur für die Prozesskommunikation zwischen demselben Host und PHP-Anwendungen und Back-End-Diensten verwendet werden Wird häufig in verschiedenen Bereichen eingesetzt. Kann es derzeit auf der Maschine zur Optimierung verwendet werden?Das optimierte einfache Architekturdiagramm sieht wie oben aus:
(1) Stellen Sie einen lokalen Proxy auf dem PHP-Anwendungsserver bereit; (2) PHP und lokaler Proxy verwenden UNIX-Domänen-Socket zur Kommunikation (3) lokaler Proxy kommuniziert mit dem Back-End-Dienst über eine lange TCP-Verbindung; > Dies verbessert die Kommunikationseffizienz erheblich und eliminiert den Aufwand für den Aufbau und die Schließung von TCP-Kurzverbindungen für jede AnfrageDas obige ist der detaillierte Inhalt vonIst der PHP-Prozess eine lange Verbindung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!