国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim PHP-Framework Workerman So implementieren Sie Workerman zum Implementieren eines verteilten Computersystems

So implementieren Sie Workerman zum Implementieren eines verteilten Computersystems

Nov 08, 2023 pm 02:19 PM
workerman berechnen verteilt

So implementieren Sie Workerman zum Implementieren eines verteilten Computersystems

Ein verteiltes Computersystem bezieht sich auf ein Computermodell, das eine Gruppe von Computern als ein einziges System behandelt, um Computeraufgaben gemeinsam zu erledigen. In der Praxis k?nnen verteilte Computersysteme die Rechengeschwindigkeit erh?hen, indem sie die Anzahl der Computer erh?hen, und gleichzeitig das Problem der Verarbeitung gro?er Datenmengen l?sen. Workerman ist ein Framework, das verteilte Computersysteme mithilfe der PHP-Sprache implementieren kann. In diesem Artikel wird erl?utert, wie Workerman zum Implementieren eines einfachen verteilten Computersystems verwendet wird, und es werden Codebeispiele bereitgestellt.

  1. Workerman installieren

Zuerst müssen wir Workerman installieren. Der spezifische Befehl lautet wie folgt:

composer require workerman/workerman
  1. Erstellen Sie ein Serverprogramm mit dem Namen server.php. Durch Ausführen dieses Programms kann der Client Computeraufgaben an den Server senden ist dafür verantwortlich, den Rechenknoten Aufgaben zur Berechnung zuzuweisen und die Endergebnisse an den Client zurückzugeben. Das Folgende ist ein Codebeispiel von server.php:
  2. <?php
    use WorkermanWorker;
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    $worker = new Worker('text://0.0.0.0:2346');
    
    $worker->count = 4;
    
    $worker->onMessage = function($connection, $data){
        $params = json_decode($data, true);
    
        $worker_num = $params['worker_num'];
        $task_data = $params['task_data'];
    
        $task_id = md5($task_data);
    
        $task_worker = new Task($task_id);
        $task_worker->send([
            'worker_num' => $worker_num,
            'task_data' => $task_data
        ]);
      
        $connection->send(json_encode([
            'task_id' => $task_id
        ]));
    };
    
    class Task{
        protected $task_id;
      
        protected $worker_num;
    
        protected $task_data;
    
        public function __construct($task_id){
            $this->task_id = $task_id;
        }
    
        public function send($data){
            $task_data = json_encode([
                'task_id' => $this->task_id,
                'data' => $data
            ]);
    
            $worker_num = $data['worker_num'];
            $socket_name = "tcp://127.0.0.1:".(2347 + $worker_num);
    
            $client = stream_socket_client($socket_name, $errno, $errstr);
      
            fwrite($client, $task_data);
            fclose($client);
        }
    }
    
    Worker::runAll();
Im obigen Code verwenden wir den Server-Listening-Port, um darauf zu warten, dass der Client eine Aufgabe übermittelt. Wenn der Server die vom Client übermittelte Aufgabe empf?ngt, weist der Server die Aufgabe einem Rechenknoten zur Berechnung zu und gibt die Ergebnisse an den Client zurück.

In der Instanz der Worker-Klasse konfigurieren wir 4 Prozesse zur Bearbeitung von Clientanfragen. Im onMessage-Ereignisrückruf erhalten wir zun?chst worker_num und task_data aus den vom Client übermittelten JSON-Daten, erstellen dann eine neue Task-Instanz, senden die Task an den Rechenknoten und warten auf die Rückgabe des Berechnungsergebnisses.

In der Task-Klasse speichern wir die Task-ID (task_id), die zu berechnende Knotennummer (worker_num) und die zu berechnenden Daten (task_data). Mit der Methode send() werden Aufgaben an den angegebenen Rechenknoten gesendet. Hier verwenden wir die Funktion stream_socket_client(), um einen TCP-Socket-Client für die Kommunikation mit dem angegebenen Rechenknoten zu implementieren.

Erstellen Sie ein Computerknotenprogramm

  1. Als n?chstes erstellen wir ein Computerknotenprogramm mit dem Namen worker.php. Das Programm führt Berechnungen durch, nachdem der Server ihm die Berechnungsaufgaben zugewiesen hat, und sendet die Ergebnisse an den Server zurück. Das Folgende ist ein Codebeispiel für worker.php:
  2. <?php
    use WorkermanWorker;
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    $worker_num = intval($argv[1]);
    
    $worker = new Worker("tcp://0.0.0.0:". (2347 + $worker_num));
    
    $worker->onMessage = function($connection, $data){
        $params = json_decode($data, true);
        $task_id = $params['task_id'];
    
        $task_data = $params['data'];
    
        $result = strlen($task_data);
    
        $connection->send(json_encode([
            'task_id' => $task_id,
            'result' => $result
        ]));
    };
    
    Worker::runAll();
Im obigen Code verwenden wir einen TCP-Socket, um einen Port abzuh?ren und darauf zu warten, dass der Server Rechenaufgaben zuweist. Wenn eine Rechenaufgabe verarbeitet werden muss, erhalten wir die zu verarbeitenden Daten aus den Aufgabendaten, führen Berechnungen durch und senden die Ergebnisse an den Server.

Erstellen Sie ein Client-Programm

  1. Abschlie?end müssen wir ein Client-Programm namens client.php erstellen, um Berechnungsaufgaben an den Server zu senden und Berechnungsergebnisse zu erhalten. Hier ist das Codebeispiel für client.php:
  2. <?php
    use WorkermanWorker;
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    $client = stream_socket_client("tcp://127.0.0.1:2346", $errno, $errstr);
    
    $data = [
        'worker_num' => 1,
        'task_data' => 'Workerman is a high-performance PHP socket framework'
    ];
    
    $json_data = json_encode($data);
    
    fwrite($client, $json_data);
    $result = fread($client, 8192);
    
    fclose($client);
    
    $result_data = json_decode($result, true);
    
    $task_id = $result_data['task_id'];
    
    foreach(range(0,3) as $worker_num){
        $worker_client = stream_socket_client("tcp://127.0.0.1:". (2347 + $worker_num), $errno, $errstr);
    
        fwrite($worker_client, json_encode([
            'task_id' => $task_id,
            'worker_num' => $worker_num
        ]));
    
        $worker_result = fread($worker_client, 8192);
    
        $worker_result_data = json_decode($worker_result, true);
    
        if($worker_result_data['task_id'] == $task_id){
            echo "Result: " . $worker_result_data['result'] . PHP_EOL;
            break;
        }
    }
    
    Im obigen Code erstellen wir zun?chst einen TCP-Socket-Client, um eine Verbindung zum Rechenknoten herzustellen. Hier wird die Funktion fread() verwendet, um die Rückgabeergebnisse der Berechnungsaufgabe vom Server zu erhalten. Anschlie?end senden wir task_id als Parameter an alle Rechenknoten und warten auf die Rückgabe der Ergebnisse. Anhand der Task-ID (task_id) k?nnen wir erkennen, welcher Rechenknoten das Berechnungsergebnis zurückgegeben hat. Abschlie?end k?nnen wir die Berechnungsergebnisse ausgeben.

    Zusammenfassung

    Das Obige sind die detaillierten Schritte zur Verwendung von Workerman zur Implementierung eines verteilten Computersystems, einschlie?lich der Erstellung von Serverprogrammen, Computerknotenprogrammen und Clientprogrammen sowie der Bereitstellung spezifischer Codebeispiele. Es ist erw?hnenswert, dass die in diesem Artikel bereitgestellten Beispiele nur die Grundideen für die Verwendung von Workerman zur Implementierung verteilter Computersysteme veranschaulichen. In praktischen Anwendungen wie Lastausgleich, Aufgabenzuweisungsstrategien usw. gibt es immer noch einige Probleme. Aber all diese Probleme k?nnen gel?st werden, indem man das Workerman-Framework sorgf?ltig studiert und den Code anpasst.

    Das obige ist der detaillierte Inhalt vonSo implementieren Sie Workerman zum Implementieren eines verteilten Computersystems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
CUDAs universelle Matrixmultiplikation: vom Einstieg bis zur Kompetenz! CUDAs universelle Matrixmultiplikation: vom Einstieg bis zur Kompetenz! Mar 25, 2024 pm 12:30 PM

Die allgemeine Matrixmultiplikation (GEMM) ist ein wesentlicher Bestandteil vieler Anwendungen und Algorithmen und au?erdem einer der wichtigen Indikatoren zur Bewertung der Leistung der Computerhardware. Eingehende Forschung und Optimierung der Implementierung von GEMM k?nnen uns helfen, Hochleistungsrechnen und die Beziehung zwischen Software- und Hardwaresystemen besser zu verstehen. In der Informatik kann eine effektive Optimierung von GEMM die Rechengeschwindigkeit erh?hen und Ressourcen einsparen, was für die Verbesserung der Gesamtleistung eines Computersystems von entscheidender Bedeutung ist. Ein tiefgreifendes Verst?ndnis des Funktionsprinzips und der Optimierungsmethode von GEMM wird uns helfen, das Potenzial moderner Computerhardware besser zu nutzen und effizientere L?sungen für verschiedene komplexe Computeraufgaben bereitzustellen. Durch Optimierung der Leistung von GEMM

Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Nov 08, 2023 pm 06:02 PM

Um das Hochladen und Herunterladen von Dateien in Workerman-Dokumenten zu implementieren, sind spezifische Codebeispiele erforderlich. Einführung: Workerman ist ein leistungsstarkes PHP-Framework für die asynchrone Netzwerkkommunikation, das einfach, effizient und benutzerfreundlich ist. In der tats?chlichen Entwicklung sind das Hochladen und Herunterladen von Dateien h?ufige Funktionsanforderungen. In diesem Artikel wird erl?utert, wie das Workerman-Framework zum Implementieren des Hochladens und Herunterladens von Dateien verwendet wird, und es werden spezifische Codebeispiele aufgeführt. 1. Datei-Upload: Unter Datei-Upload versteht man die übertragung von Dateien vom lokalen Computer auf den Server. Folgendes wird verwendet

So berechnen Sie Addition, Subtraktion, Multiplikation und Division in einem Word-Dokument So berechnen Sie Addition, Subtraktion, Multiplikation und Division in einem Word-Dokument Mar 19, 2024 pm 08:13 PM

WORD ist ein leistungsstarkes Textverarbeitungsprogramm, mit dem wir verschiedene Texte in Excel bearbeiten k?nnen. Wir beherrschen die Berechnungsmethoden der Addition, Subtraktion und Multiplikatoren. Wie subtrahiere ich den Multiplikator? Kann ich ihn nur mit einem Taschenrechner berechnen? Die Antwort ist natürlich nein, WORD kann das auch. Heute werde ich Ihnen beibringen, wie Sie mit Formeln grundlegende Operationen wie Addition, Subtraktion, Multiplikation und Division in Tabellen in Word-Dokumenten berechnen. Lassen Sie mich heute im Detail zeigen, wie man Addition, Subtraktion, Multiplikation und Division in einem WORD-Dokument berechnet. Schritt 1: ?ffnen Sie ein WORD, klicken Sie in der Symbolleiste unter [Einfügen] auf [Tabelle] und fügen Sie eine Tabelle in das Dropdown-Menü ein.

So z?hlen Sie die Anzahl der Elemente in einer Liste mit der Funktion count() von Python So z?hlen Sie die Anzahl der Elemente in einer Liste mit der Funktion count() von Python Nov 18, 2023 pm 02:53 PM

Um die Anzahl der Elemente in einer Liste mit der Funktion count() von Python zu z?hlen, sind bestimmte Codebeispiele erforderlich. Als leistungsstarke und leicht zu erlernende Programmiersprache bietet Python viele integrierte Funktionen zur Verarbeitung unterschiedlicher Datenstrukturen. Eine davon ist die Funktion count(), mit der sich die Anzahl der Elemente in einer Liste z?hlen l?sst. In diesem Artikel erkl?ren wir die Verwendung der count()-Funktion im Detail und stellen spezifische Codebeispiele bereit. Die Funktion count() ist eine in Python integrierte Funktion, mit der ein bestimmter Wert berechnet wird

So verwenden Sie die Math.Pow-Funktion in C#, um die Potenz einer bestimmten Zahl zu berechnen So verwenden Sie die Math.Pow-Funktion in C#, um die Potenz einer bestimmten Zahl zu berechnen Nov 18, 2023 am 11:32 AM

In C# gibt es eine Math-Klassenbibliothek, die viele mathematische Funktionen enth?lt. Dazu geh?rt die Funktion Math.Pow, die Potenzen berechnet und uns dabei helfen kann, die Potenz einer bestimmten Zahl zu berechnen. Die Verwendung der Math.Pow-Funktion ist sehr einfach, Sie müssen lediglich die Basis und den Exponenten angeben. Die Syntax lautet wie folgt: Math.Pow(base,exponent); wobei base die Basis und exponent den Exponenten darstellt. Diese Funktion gibt ein Ergebnis vom Typ Double zurück, n?mlich das Ergebnis der Leistungsberechnung. Lasst uns

Was ist besser, Swoole oder Workerman? Was ist besser, Swoole oder Workerman? Apr 09, 2024 pm 07:00 PM

Swoole und Workerman sind beide leistungsstarke PHP-Server-Frameworks. Swoole ist für seine asynchrone Verarbeitung, hervorragende Leistung und Skalierbarkeit bekannt und eignet sich für Projekte, die eine gro?e Anzahl gleichzeitiger Anfragen und einen hohen Durchsatz verarbeiten müssen. Workerman bietet die Flexibilit?t sowohl des asynchronen als auch des synchronen Modus mit einer intuitiven API, die sich besser für Benutzerfreundlichkeit und Projekte eignet, die ein geringeres Parallelit?tsvolumen bew?ltigen.

So implementieren Sie die grundlegende Verwendung von Workerman-Dokumenten So implementieren Sie die grundlegende Verwendung von Workerman-Dokumenten Nov 08, 2023 am 11:46 AM

Einführung in die Implementierung der grundlegenden Verwendung von Workerman-Dokumenten: Workerman ist ein leistungsstarkes PHP-Entwicklungsframework, mit dem Entwickler problemlos Netzwerkanwendungen mit hoher Parallelit?t erstellen k?nnen. In diesem Artikel wird die grundlegende Verwendung von Workerman vorgestellt, einschlie?lich Installation und Konfiguration, Erstellung von Diensten und überwachungsports, Bearbeitung von Clientanfragen usw. Und geben Sie entsprechende Codebeispiele an. 1. Installieren und konfigurieren Sie Workerman. Geben Sie in der Befehlszeile den folgenden Befehl ein, um Workerman zu installieren: c

So implementieren Sie die Timer-Funktion im Workerman-Dokument So implementieren Sie die Timer-Funktion im Workerman-Dokument Nov 08, 2023 pm 05:06 PM

So implementieren Sie die Timer-Funktion im Workerman-Dokument Workerman ist ein leistungsstarkes PHP-Framework für die asynchrone Netzwerkkommunikation, das eine Fülle von Funktionen bereitstellt, einschlie?lich der Timer-Funktion. Verwenden Sie Timer, um Code innerhalb bestimmter Zeitintervalle auszuführen. Dies eignet sich sehr gut für Anwendungsszenarien wie geplante Aufgaben und Abfragen. Als n?chstes werde ich detailliert vorstellen, wie die Timer-Funktion in Workerman implementiert wird, und spezifische Codebeispiele bereitstellen. Schritt 1: Workerman installieren Zuerst müssen wir Worker installieren

See all articles