Heim  >  Artikel  >  PHP-Framework  >  Was ist der Unterschied zwischen Workerman und Swoole?

Was ist der Unterschied zwischen Workerman und Swoole?

WBOY
WBOYOriginal
2022-02-10 13:34:439909Durchsuche

Unterschied: 1. Swoole ist ein in der C-Sprache implementiertes Socket-Kommunikationsframework, während Workerman ein in reinem PHP implementiertes Socket-Framework ist. 2. In Workerman wird der Socket vom Worker-Prozess verwaltet, während Swoole vom Reaktor-Thread verwaltet wird Seien Sie im Hauptprozess verantwortlich.

Was ist der Unterschied zwischen Workerman und Swoole?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Swoole 4-Version, DELL G3-Computer

Was ist der Unterschied zwischen Workerman und Swoole?

Workerman und Swoole sind zu diesem Zeitpunkt sehr umstritten, das müssen Sie Lernen Sie sich kennen, wenn Sie Zeit haben, sonst werden Sie nicht im PHP-Kreis sein. Swoole ist ein in der C-Sprache implementiertes Socket-Kommunikationsframework, während Workerman ein in reinem PHP implementiertes Socket-Kommunikationsframework ist. Es gibt auch viele Unterschiede in den Prozessmodellen zwischen den beiden.

Master-Prozess

Dieser Prozess ist relativ komplex und meiner Meinung nach auch der Kernprozess. Es handelt sich um einen Prozess, der mehrere Threads enthält, darunter einen Haupt-Thread und n Reaktor-Threads (die Anzahl kann konfiguriert werden).

Unter diesen wird der Hauptthread zum Akzeptieren neuer Verbindungen verwendet. Anschließend wird die Anzahl der Verbindungen bewertet, für deren Aufrechterhaltung jeder Reaktorthread verantwortlich ist, und diese dann dem Reaktorthread mit der kleinsten Anzahl zugewiesen, um sicherzustellen, dass die Belastung jedes Reaktors gewährleistet ist Der Faden ist weitestgehend ausbalanciert.

Sobald ein Socket lesbar oder beschreibbar ist, wird er vom Reaktorthread an den Arbeitsprozess oder an den Client gesendet. Darüber hinaus ist der Haupt-Thread auch dafür verantwortlich, alle Signale zu übernehmen, um Unterbrechungen zu vermeiden, wenn der Reaktor-Thread Signale empfängt.

Um es westlicher auszudrücken: Der Master-Prozess ist für das Annehmen und Hosten der Verbindung sowie die Lesbarkeit und Beschreibbarkeit des Sockets (das Senden und Empfangen von Daten) verantwortlich. Im Wesentlichen ist der Master-Prozess für IO verantwortlich. Es ist auch zu beachten, dass der Reaktor-Thread eine vollständig asynchrone und nicht blockierende Arbeitsmethode ist.

Manager-Prozess

Der Manager-Prozess ist die Mutter des Worker-Prozesses und des Taskworker-Prozesses. Kurz gesagt, der Manager-Prozess teilt den Worker-Prozess und den Taskworker-Prozess. Sie müssen verwaltet werden, nachdem sie geboren wurden Der Prozess muss für sie verantwortlich sein. Zu den Wartungsverpflichtungen von Worker-Prozessen und Taskworker-Prozessen gehören die Überwachung ihres Status, der Neustart eines neuen Prozesses, wenn sie unerwartet aufhängen (Vermeidung von Zombie-Prozessen) und ein reibungsloser Neustart (das legendäre Neuladen).

Worker-Prozess

Der Worker-Prozess wird durch den Manager-Prozess gespalten, um es ganz klar auszudrücken: Bei diesem Prozess handelt es sich lediglich um das Verschieben von Bausteinen in offizielle Dokumente Logikcode, der normalerweise codiert ist. Das Interessante am Arbeitsprozess ist jedoch, dass dieser Prozess asynchron oder synchron arbeiten kann. Wenn Sie nicht verstehen, was es bedeutet, merken Sie es sich zunächst und machen Sie sich damit vertraut, bevor Sie darüber sprechen.

Taskworker-Prozess

Der Taskworker-Prozess (im Folgenden als Tasker-Prozess bezeichnet) ist eigentlich im Wesentlichen ein Worker-Prozess, es handelt sich jedoch um eine besondere Art von Worker-Prozess. Wenn Ihr Worker-Prozess einige zeitaufwändige und arbeitsintensive Vorgänge enthält, können Sie diese zunächst an den Tasker-Prozess übergeben und andere Dinge selbst erledigen. Wenn der Tasker fertig ist, ruft der Worker-Prozess sie ab. Der Tasker-Prozess kann jedoch nur im synchronen Modus arbeiten und kann den asynchronen Modus nicht verwenden. Aus diesem Grund kann der Tasker-Prozess keine Timer verwenden, der Worker-Prozess jedoch Timer.

Lassen Sie uns kurz zusammenfassen und darüber sprechen, wie diese Prozesse zusammenarbeiten. Um es ganz klar auszudrücken: Der Master-Prozess ist für die Übernahme von Verkaufsaufträgen verantwortlich, die spezifische Arbeit wird jedoch vom Worker-Prozess erledigt. Wenn der Worker-Prozess das Gefühl hat, dass einige Prozesse zu beschäftigt und zu kompliziert sind, kann er dies dem Tasker-Prozess überlassen. Der Managerprozess ist die Personalunterstützungsabteilung des Logistikarbeiterprozesses und des Nehmerprozesses und verantwortlich für deren Leben und Tod sowie Essen, Trinken und Schlafen.

workerman

Das Prozessmodell von Workerman ist relativ viel einfacher. Erstens verfügt Workerman nicht über den Reaktor-Thread in Swoole. Zweitens verfügt Workerman nicht über den Worker-Prozess und den Tasker-Prozess für die Handhabung Geschäft. Im Fall von workerman wird der Socket vom Worker-Prozess verwaltet, während er im Fall von swoole vom Reaktor-Thread im Hauptprozess verwaltet wird. Nach Erhalt der Daten kann Swoole das Geschäft über seinen eigenen Worker-Prozess verarbeiten (ähnlich dem FPM-Prozess).

workerman ist ein leistungsstarkes PHP-Socket-Server-Framework, das auf der PHP-Multiprozess- und Libevent-Ereignisabfragebibliothek basiert. PHP-Entwickler müssen nur eine oder zwei Schnittstellen implementieren, um ihre eigenen Netzwerkanwendungen wie RPC-Dienste und Chat zu entwickeln Räume. Server, mobile Spieleserver usw. Das Ziel von

workerman ist es, PHP-Entwicklern die Entwicklung leistungsstarker Socket-basierter Anwendungsdienste zu erleichtern, ohne die Details von PHP-Sockets und PHP-Multiprozessen verstehen zu müssen. Workerman selbst ist ein PHP-Multiprozess-Server-Framework mit PHP-Prozessverwaltungs- und Socket-Kommunikationsmodulen, sodass es unabhängig von PHP-FPM, Nginx oder Apache und anderen Containern ausgeführt werden kann. Empfohlenes Lernen:

Swoole-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Workerman und Swoole?. 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
Vorheriger Artikel:Was bedeutet Swoole-Coroutine?Nächster Artikel:Was bedeutet Swoole-Coroutine?