Was ist das RPC-Framework?
Wenn RPC in einem Satz zusammengefasst werden kann: Remote Procedure Call
Was ist dann ein Remote-Aufruf?
Normalerweise rufen wir eine Methode in PHP auf, wie zum Beispiel diese Funktionsmethode: localAdd(10, 20) Die spezifische Implementierung der localAdd-Methode wird entweder vom Benutzer definiert oder es ist eine Funktion in Das heißt, der Code in der localAdd-Methode wird lokal implementiert, es handelt sich um einen lokalen Aufruf!
Remote-Aufruf bedeutet: Die spezifische Implementierung der aufgerufenen Methode befindet sich nicht dort, wo das Programm ausgeführt wird, sondern an einem anderen entfernten Ort.
Prinzip des Remote-Aufrufs
Zum Beispiel ruft A (Client) die von B (Server) bereitgestellte remoteAdd-Methode auf:
Erstellen Sie zunächst a Verbindung zwischen A und B TCP-Verbindung;
Dann serialisiert A den Methodennamen, der aufgerufen werden muss (remoteAdd hier) und die Methodenparameter (10, 20) in einen Byte-Stream und sendet ihn aus; 🎜>B akzeptiert den Byte-Stream, den A sendet, deserialisiert dann, um den Zielmethodennamen und die Methodenparameter zu erhalten, führt dann den entsprechenden Methodenaufruf aus (möglicherweise localAdd) und gibt das Ergebnis zurück 30;
A akzeptiert das Ergebnis des Remote-Aufrufs und gibt 30 aus.
Das RPC-Framework kapselt die Details, die ich gerade erwähnt habe, und bietet Benutzern eine einfache und benutzerfreundliche API-Nutzung.
Vorteile von Remote-AufrufenEntkopplung: Wenn der Server die Methode ändern muss, ist sich der Client dessen überhaupt nicht bewusst und muss keine Änderungen vornehmen; Methode Wird häufig bei der abteilungs- und unternehmensübergreifenden Zusammenarbeit verwendet, und der Anbieter der Methode wird üblicherweise als Service Exposure bezeichnet.
Was ist der Unterschied zwischen RPC und Socket?Anhand der obigen einfachen Erklärung scheint es, dass RPC und Socket ähnlich sind. Sie alle rufen Remote-Methoden auf und sind alle Client/Server-Modelle: Lassen Sie uns im Detail über Sockets sprechen?
RPC (Remote Procedure Call) verwendet den Client/Server-Modus ermöglicht es zwei Prozessen, miteinander zu kommunizieren. Socket ist eine der von RPC häufig verwendeten Kommunikationsmethoden. RPC basiert auf Socket. Es erfordert mehr Netzwerk- und Systemressourcen als Socket. Neben Socket verfügt RPC auch über andere Kommunikationsmethoden wie http, die eigene Pipeline des Betriebssystems und andere Technologien zur Implementierung von Aufrufen an Remote-Programme. Im Windows-System von Microsoft verwendet RPC benannte Pipes für die Kommunikation.
Was ist der Unterschied zwischen RPC und REST?Nachdem wir RPC verstanden haben, wissen wir, dass sich RPC im Client/Server-Modus befindet und Remote-Methoden aufruft. REST ist ebenfalls eine Reihe von API-Aufrufprotokollmethoden, mit denen wir vertraut sind und auf denen es auch basiert Client/Server-Modus, ruft die Remote-Methode auf, was ist also der Unterschied zwischen ihnen?
REST-API und RPC kapseln beide Funktionen in Schnittstellen auf der Serverseite und machen sie für Client-Aufrufe verfügbar. Die REST-API basiert jedoch auf dem HTTP-Protokoll und REST ist auf die Übergabe von POST/ im http-Protokoll festgelegt . GET/PUT/DELETE und andere Methoden sowie eine für Menschen lesbare URL zur Bereitstellung einer http-Anfrage. RPC muss nicht auf dem HTTP-Protokoll basieren
Wenn sich die beiden Back-End-Sprachen gegenseitig aufrufen, kann die Verwendung von RPC daher eine bessere Leistung erzielen (durch Eliminieren einer Reihe von Dingen wie HTTP-Headern). und es sollte einfacher zu konfigurieren sein. Wenn das Frontend das Backend über AJAX aufruft, ist es besser, die REST-API zu verwenden (da Sie die HTTP-Hürde ohnehin nicht umgehen können).
Was sind die beliebten RPC-Frameworks in PHP?Da PHP die beste Sprache der Welt ist, welche sind die beliebtesten RPC-Frameworks in PHP?
Erste Liste:
phprpc, yar, thrift, gRPC, swoole, hproseAufgrund der begrenzten Zeit und Energie ist es unmöglich, sie einzeln zu erlernen und zu verwenden . Wählen Sie einige der weltweit am häufigsten verwendeten aus und verwenden Sie sie. Da das RPC-Prinzip dasselbe ist, handelt es sich bei beiden um den Client/Server-Modus, die Verwendung jedes Frameworks ist jedoch unterschiedlich.
Das obige ist der detaillierte Inhalt vonWas sind die PHP-RPC-Frameworks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!