Heim  >  Artikel  >  Backend-Entwicklung  >  Ist der PHP-Prozess eine lange Verbindung?

Ist der PHP-Prozess eine lange Verbindung?

(*-*)浩
(*-*)浩Original
2019-10-21 11:09:502214Durchsuche

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.

Ist der PHP-Prozess eine lange Verbindung?

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)

Ist der PHP-Prozess eine lange Verbindung?

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?

Ist der PHP-Prozess eine lange Verbindung?

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 Anfrage

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn