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