Heim > PHP-Framework > Workerman > Hauptteil

Funktionen von WorkerMan

(*-*)浩
Freigeben: 2019-11-26 14:22:47
Original
2319 Leute haben es durchsucht

Das Folgende ist die Kolumne des Workerman-PHP-Tutorials , um Ihnen die Funktionen von WorkerMan vorzustellen. Ich hoffe, dass es für Freunde hilfreich sein wird, die es benötigen!

Funktionen von WorkerMan

Funktionen von WorkerMan

1. Reine PHP-Entwicklung

Mit WorkerMan entwickelte Anwendungen können unabhängig ausgeführt werden, ohne auf Container wie PHP-FPM, Apache und Nginx angewiesen zu sein. Dies macht es für PHP-Entwickler sehr bequem, Anwendungen zu entwickeln, bereitzustellen und zu debuggen.

2. Unterstützung von PHP-Multiprozessen

Um die Leistung der Multi-CPU des Servers voll auszuschöpfen, unterstützt WorkerMan Multiprozess und Multitasking standardmäßig. WorkerMan startet einen Hauptprozess und mehrere Unterprozesse, um Dienste für die Außenwelt bereitzustellen. Die Unterprozesse überwachen unabhängig voneinander Netzwerkverbindungen und empfangen und verarbeiten Daten , WorkerMan ist stabiler und effizienter.

3. Unterstützt TCP und UDP

WorkerMan unterstützt die beiden Transportschichtprotokolle TCP und UDP. Sie müssen nur ein Attribut ändern, um das Transportschichtprotokoll zu ändern Der Code muss geändert werden.

4. Unterstützen Sie lange Verbindungen

Oft müssen PHP-Anwendungen lange Verbindungen mit Clients aufrechterhalten, z. B. Chatrooms, Spiele usw., aber herkömmliche PHP-Container ( Apache, Nginx, PHP-FPM) sind schwierig, dies zu tun. Mit WorkerMan können Sie lange PHP-Verbindungen verwenden, solange das serverseitige Unternehmen die Schnittstelle zum Schließen der Verbindung nicht aktiv aufruft. Ein einzelner WorkerMan-Prozess kann Zehntausende gleichzeitiger Verbindungen unterstützen, und mehrere Prozesse können Hunderttausende oder sogar Millionen gleichzeitiger Verbindungen unterstützen.

5. Unterstützt verschiedene Protokolle der Anwendungsschicht

Die WorkerMan-Schnittstelle unterstützt verschiedene Protokolle der Anwendungsschicht, einschließlich benutzerdefinierter Protokolle. Das Ändern des Protokolls in WorkerMan ist ebenfalls sehr einfach. Es muss lediglich ein Feld konfiguriert werden, und das Protokoll wird automatisch umgeschaltet, ohne dass Änderungen am Geschäftscode erforderlich sind. Sie können sogar mehrere Ports mit unterschiedlichen Protokollen öffnen, um unterschiedliche Kundenanforderungen zu erfüllen.

6. Unterstützt hohe Parallelität

WorkerMan unterstützt die Libevent-Ereignisabfragebibliothek (die Libevent-Erweiterung muss bei Verwendung hoher Parallelität installiert werden). Wenn es nicht installiert ist, verwendet Libevent die integrierten Select-bezogenen Systemaufrufe von PHP und ist auch sehr leistungsstark.

7. Unterstützen Sie einen reibungslosen Neustart von Diensten

Wenn ein Dienst neu gestartet werden muss (z. B. eine Release-Version), möchten wir nicht, dass der Prozess den Benutzer verarbeitet Anfragen müssen sofort beendet werden, ganz zu schweigen davon, dass der Moment, in dem Sie einen Neustart durchführen möchten, dazu führt, dass die Clientkommunikation fehlschlägt. WorkerMan bietet eine reibungslose Neustartfunktion, um reibungslose Service-Upgrades zu gewährleisten, ohne die Nutzung der Clients zu beeinträchtigen.

8. Unterstützung der Dateiaktualisierungserkennung und des automatischen Ladens

Während des Entwicklungsprozesses hoffen wir, dass Änderungen am Code sofort wirksam werden, damit wir dies tun können Sehen Sie sich die Ergebnisse an. WorkerMan stellt die FileMonitor-Dateiüberwachungskomponente bereit. Solange die Datei aktualisiert wird, führt WorkerMan automatisch „reload“ aus, um die neue Datei zu laden und wirksam zu machen.

9. Unterstützen Sie die Ausführung von untergeordneten Prozessen als angegebene Benutzer

Da der untergeordnete Prozess der Prozess ist, der Benutzeranfragen tatsächlich verarbeitet, kann der untergeordnete Prozess dies aus Sicherheitsgründen nicht tun hohe Berechtigungen, daher unterstützt WorkerMan das Festlegen des Benutzers für die Ausführung des untergeordneten Prozesses, wodurch Ihr Server sicherer wird.

10. Unterstützen Sie Objekte oder Ressourcen, die dauerhaft verwaltet werden sollen

WorkerMan lädt und analysiert die PHP-Datei nur einmal während des laufenden Prozesses und bleibt dann im Speicher, der dafür sorgt, dass die Klassen- und Funktionsdeklarationen, PHP-Ausführungsumgebungen, Symboltabellen usw. nicht wiederholt erstellt und zerstört werden, was sich völlig vom PHP-Mechanismus unterscheidet, der unter einem Webcontainer läuft.

In WorkerMan werden statische Mitglieder oder globale Variablen während des Lebenszyklus eines Prozesses dauerhaft beibehalten, ohne aktiv zerstört zu werden. Das heißt, wenn Ressourcen wie Objekte oder Verbindungen in globalen Variablen oder statischen Klassenmitgliedern platziert werden, Alle Anfragen während des gesamten Lebenszyklus des aktuellen Prozesses können wiederverwendet werden.

Solange beispielsweise eine Datenbankverbindung einmal in einem einzelnen Prozess initialisiert wird, können alle nachfolgenden Anforderungen dieses Prozesses diese Datenbankverbindung wiederverwenden, wodurch der TCP-Drei-Wege-Handshake, die Überprüfung der Datenbankberechtigung und die Trennung währenddessen vermieden werden Häufige Datenbankverbindungen Der TCP-Vier-Wege-Handshake-Prozess verbessert die Anwendungseffizienz erheblich.

Hohe Leistung

Da die PHP-Datei einmal von der Festplatte gelesen und analysiert wird, bleibt sie bei der nächsten Verwendung im Speicher. Der Opcode im Speicher wird direkt verwendet, was extrem ist. Es reduziert viele zeitaufwändige Prozesse wie Festplatten-E/A und PHP-Anforderungsinitialisierung, Erstellung einer Ausführungsumgebung, lexikalische Analyse, Syntaxanalyse, Kompilierung von Opcode, Schließen von Anforderungen usw. erheblich. Es ist nicht auf Container wie Nginx und Apache angewiesen und es besteht keine Notwendigkeit, dass Nginx und andere Container mit PHP kommunizieren. Das Wichtigste am Overhead ist, dass die Ressourcen dauerhaft aufrechterhalten werden können und keine Initialisierung erforderlich ist Die Datenbankverbindung wird jedes Mal unterbrochen, sodass die Verwendung von WorkerMan zum Entwickeln von Anwendungen eine sehr hohe Leistung bietet.

12. Unterstützt HHVM

Unterstützung für die Ausführung auf einer virtuellen HHVM-Maschine, wodurch die Leistung von PHP verdoppelt werden kann. Insbesondere im CPU-intensiven Rechengeschäft ist die Leistung sehr gut. Durch den tatsächlichen Stresstestvergleich ist der Netzwerkdurchsatz von WorkerMan unter HHVM etwa 30–80 % höher als unter Zend PHP5.6, wenn kein Lastgeschäft stattfindet

Weitere technische Artikel zum Thema Workerman finden Sie in der Spalte Workerman-Tutorial, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonFunktionen von WorkerMan. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage