Vorwort

Workerman, Hochleistungs-PHP-Anwendungscontainer

Was ist Workerman?

Workerman ist ein Open-Source-Hochleistungs-PHP-Anwendungscontainer, der rein in PHP entwickelt wurde.

Workerman ist kein wiederholtes Rad, es ist kein MVC-Framework, sondern ein grundlegenderer, universellerer Dienstrahmen, mit dem Sie TCP-Proxy, Proxy-Server, Spielesever, Mail-Server, FTP-Server und sogar eine PHP-Version von Redis, eine PHP-Version von Datenbanken, eine PHP-Version von Nginx, eine PHP-Version von PHP-FPM usw. entwickeln können. Man kann sagen, dass Workerman eine Innovation im PHP-Bereich darstellt, die es Entwicklern ermöglicht, sich vollständig von der Beschränkung zu lösen, dass PHP nur für WEB-Anwendungen verwendet werden kann.

Tatsächlich ähnelt Workerman einer PHP-Version von Nginx, wobei der Kern ebenfalls auf Mehrprozess + Epoll + nicht-blockierender IO basiert. Jeder Prozess von Workerman kann zehntausende gleichzeitige Verbindungen aufrechterhalten. Da es ständig im Speicher resident ist und nicht von Containern wie Apache, Nginx oder PHP-FPM abhängt, bietet es eine extrem hohe Leistung. Es unterstützt auch TCP, UDP, UNIXSOCKET, unterstützt persistente Verbindungen und verschiedene Kommunikationsprotokolle wie Websocket, HTTP, WSS, HTTPS sowie verschiedene benutzerdefinierte Protokolle. Zudem stehen zahlreiche Hochleistungs-Komponenten wie Timer, asynchrone Socket-Clients, asynchrone Redis, asynchrone HTTP, asynchrone Nachrichtenwarteschlangen usw. zur Verfügung.

Einige Anwendungsrichtungen von Workerman

Im Gegensatz zu traditionellen MVC-Frameworks kann Workerman nicht nur für die Webentwicklung verwendet werden, sondern hat auch ein breiteres Anwendungsfeld, wie z.B. Instant Messaging, Internet of Things, Spiele, Service Governance und andere Server oder Middleware, was zweifellos die Perspektive der PHP-Entwickler erheblich erweitert. Momentan gibt es einen akuten Mangel an PHP-Entwicklern in diesen Bereichen. Wenn Sie in der PHP-Welt technische Vorteile erreichen möchten, sind Sie mit täglichen CRUD-Arbeiten unzufrieden oder möchten sich in Richtung Architekt oder technischer Experte entwickeln, ist Workerman ein äußerst lohnenswerter Rahmen, den es zu erlernen gilt. Es wird empfohlen, dass Entwickler nicht nur wissen, wie man es verwendet, sondern auch basierend auf Workerman ihre eigenen Open-Source-Projekte entwickeln, um ihre Fähigkeiten zu verbessern und ihren Einfluss zu erhöhen, wie zum Beispiel das Beanbun-Multiprozess-Webcrawler-Framework, das kürzlich gestartet wurde und schon viele positive Bewertungen erhalten hat.

Einige Anwendungsrichtungen von Workerman sind:

  1. Instant Messaging
    Zum Beispiel Web-Chat, Sofortnachrichten, WeChat Mini-Programme, Mobile App Nachrichtenpush, PC-Software-Nachrichtenpush usw.
    [Beispiel workerman-chat Chatraum, Web-Nachrichtenpush, Kleiner Kaulquappe Chatraum]

  2. Internet of Things
    Zum Beispiel Kommunikation zwischen Workerman und Druckern, zwischen Mikrocontrollern, intelligente Armbänder, Smart Homes, Shared Bikes usw.
    [Kundenbeispiele wie Yilian Cloud, Yiparking usw.]

  3. Spieleserver
    Zum Beispiel Brettspiele, MMORPG-Spiele usw. [Beispiel browserquest-php]

  4. HTTP-Dienste
    Zum Beispiel Schreiben von Hochleistungs-HTTP-Schnittstellen, Hochleistungswebseiten. Wenn Sie HTTP-bezogene Dienste oder Seiten erstellen möchten, empfehlen wir dringend webman.

  5. SOA-Dienste
    Nutzen Sie Workerman, um bestehende Geschäftsfunktionsmodule zu verpacken und als einheitliche Schnittstelle bereitzustellen, um eine lose Kopplung, leicht wartbar, hochverfügbar und skalierbar Systeme zu erreichen. [Beispiel workerman-json-rpc, workerman-thrift]

  6. Andere Server-Software
    Zum Beispiel GatewayWorker, PHPSocket.IO, HTTP-Proxy, SOCKS5-Proxy, Verteilte Kommunikationskomponente, Verteilte Variablenfreigabekomponente, Nachrichtenwarteschlange, DNS-Server, Webserver, CDN-Server, FTP-Server usw.

  7. Komponenten
    Zum Beispiel asynchrones Redis, asynchroner HTTP-Client, Internet of Things MQTT-Client (components/workerman-mqtt.html), Nachrichtenwarteschlange workerman/redis-queue, workerman/stomp, workerman/rabbitmq, Dateiüberwachungs-Komponente und viele andere von Dritten entwickelte Komponenten usw.

Offensichtlich ist es für traditionelle MVC-Frameworks schwierig, die genannten Funktionen zu realisieren, weshalb Workerman ins Leben gerufen wurde.

Workerman-Prinzip

Extrem minimalistisch, stabil, hochleistungsfähig, verteilte Systeme.

Extrem minimalistisch

Klein ist schön. Der Kern von Workerman ist extrem minimalistisch, besteht nur aus wenigen PHP-Dateien und bietet nur einige Schnittstellen, was das Lernen sehr einfach macht. Alle anderen Funktionen werden über Komponenten erweitert.

Workerman verfügt über umfangreiche Dokumentationen + autorisierte Homepage + aktive Gemeinschaft + mehrere tausend Mitglieder umfassende QQ-Gruppen + zahlreiche hochleistungsfähige Komponenten + viele Beispiele, all dies ermöglicht es Entwicklern, Workerman leichter zu nutzen.

Stabil

Workerman ist seit mehreren Jahren Open Source und wird von vielen börsennotierten Unternehmen in großem Umfang genutzt, super stabil. Einige Dienste wurden seit über 2 Jahren nicht mehr neu gestartet und laufen weiterhin schnell. Es gibt keinen Coredump, kein Speicherleck und keinen Bug.

Hochleistungsfähig

Da Workerman im Speicher resident ist und nicht von Apache/Nginx/PHP-FPM abhängt, gibt es keine Kommunikationskosten zwischen Containern und PHP, keine Kosten für die Initialisierung und Zerstörung aller Ressourcen bei jeder Anfrage, was zu extrem hoher Leistung führt. Im Vergleich zu traditionellen MVC-Frameworks ist die Leistung um ein Vielfaches höher, und unter PHP7 sind die QPS-Werte bei AB-Stresstests sogar höher als bei einem separaten Nginx.

Verteilt

Heutzutage ist es längst nicht mehr der Zeit, allein zu kämpfen. Selbst der stärkste Server hat seine Grenzen, und verteilte Multi-Server-Deployments sind der Weg. Workerman bietet direkt eine Lösung für die verteilte Kommunikation über eine langfristige Verbindung GatewayWorker-Framework. Um einen weiteren Server hinzuzufügen, müssen Sie nur eine einfache Konfiguration vornehmen und ihn starten, Geschäftscode ändert sich nicht, und die Systemlastkapazität steigt exponentiell. Wenn Sie TCP-Langzeitverbindungen entwickeln, wird empfohlen, direkt GatewayWorker zu verwenden. Es ist eine Verpackung von Workerman, die reichhaltigere Schnittstellen und starke verteilte Verarbeitungsfähigkeiten für Langzeitverbindungen bereitstellt.

Anwendungsbereich dieses Handbuchs

Workerman Version 3.x - 5.x

Windows-Nutzer (unbedingt lesen)

Workerman unterstützt sowohl Linux- als auch Windows-Systeme. Die Windows-Version von Workerman benötigt keine Erweiterungen, sondern nur die korrekte Konfiguration der PHP-Umgebungsvariablen. Details zur Installation und Hinweise zur Windows-Version von Workerman finden Sie in Windows-Nutzern dringend empfohlen.

Client

Das Kommunikationsprotokoll von Workerman ist offen und anpassbar, sodass Workerman theoretisch mit jedem Client, der ein beliebiges Protokoll verwendet, kommunizieren kann. Wenn Benutzer einen Client entwickeln, können sie die Kommunikation mit dem Server entsprechend dem jeweiligen Kommunikationsprotokoll abschließen.