溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php中rpc框架的作用是什么

發(fā)布時間:2021-06-30 16:44:57 來源:億速云 閱讀:137 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)php中rpc框架的作用是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

什么是遠程調(diào)用?

  通常我們調(diào)用一個php中的方法,比如這樣一個函數(shù)方法:localAdd(10,20),localAdd方法的具體實現(xiàn)要么是用戶自己定義的,要么是php庫函數(shù)中自帶的,也就說在localAdd方法的代碼實現(xiàn)在本地,它是一個本地調(diào)用!遠程調(diào)用意思就是:被調(diào)用方法的具體實現(xiàn)不在程序運行本地,而是在別的某個遠程地方。

  遠程調(diào)用原理

  比如A(client)調(diào)用B(server)提供的remoteAdd方法:

  首先A與B之間建立一個TCP連接;

  然后A把需要調(diào)用的方法名(這里是remoteAdd)以及方法參數(shù)(10,20)序列化成字節(jié)流發(fā)送出去;

  B接受A發(fā)送過來的字節(jié)流,然后反序列化得到目標方法名,方法參數(shù),接著執(zhí)行相應(yīng)的方法調(diào)用(可能是localAdd)并把結(jié)果30返回;

  A接受遠程調(diào)用結(jié)果,輸出30。

  RPC框架就是把我剛才說的這幾點些細節(jié)給封裝起來,給用戶暴露簡單友好的API使用。

  遠程調(diào)用的好處

  解耦:當server需要對方法內(nèi)實現(xiàn)修改時,client完全感知不到,不用做任何變更;這種方式在跨部門,跨公司合作的時候經(jīng)常用到,并且方法的提供者我們通常稱為:服務(wù)的暴露。

RPC與Socket有什么區(qū)別?

  通過上面的簡單闡述,好像RPC與Socket好像啊。都是調(diào)用遠程的方法,都是client/server模式,我之前也寫了一篇文章:細說socket那他們有啥區(qū)別呢?

  RPC(遠程過程調(diào)用)采用客戶機/服務(wù)器模式實現(xiàn)兩個進程之間相互通信。socket是RPC經(jīng)常采用的通信手段之一,RPC是在Socket的基礎(chǔ)上實現(xiàn)的,它比socket需要更多的網(wǎng)絡(luò)和系統(tǒng)資源。除了Socket,RPC還有其他的通信方法,比如:http、操作系統(tǒng)自帶的管道等技術(shù)來實現(xiàn)對于遠程程序的調(diào)用。微軟的Windows系統(tǒng)中,RPC就是采用命名管道進行通信。

RPC與REST有什么區(qū)別?

  通過了解RPC后,我們知道是RPC是client/server模式的,調(diào)用遠程的方法,REST也是我們熟悉的一套API調(diào)用協(xié)議方法,它也是基于client/server模式的,調(diào)用遠程的方法的,那他倆又有啥區(qū)別呢?

  RESTAPI和RPC都是在Server端把一個個函數(shù)封裝成接口暴露出去,以供Client端調(diào)用,不過RESTAPI是基于HTTP協(xié)議的,REST致力于通過http協(xié)議中的POST/GET/PUT/DELETE等方法和一個可讀性強的URL來提供一個http請求。而RPC則可以不基于HTTP協(xié)議

  因此,如果是后端兩種語言互相調(diào)用,用RPC可以獲得更好的性能(省去了HTTP報頭等一系列東西),應(yīng)該也更容易配置。如果是前端通過AJAX調(diào)用后端,那么用RESTAPI的形式比較好(因為無論如何也避不開HTTP這道坎)。

關(guān)于php中rpc框架的作用是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI