目前,對于一個完整的應用來說,通常包含了若干支持不同功能的服務,亦或者是函數(shù),這些服務之間往往可能需要互相調用,使用已經(jīng)實現(xiàn)的服務功能,而不是需要在每個服務進程中再去重復實現(xiàn)已經(jīng)有的功能。
這不僅對于開發(fā)者來說是一種比較合理的設計方式,對于服務的維護者來說,也不需要在每次服務出現(xiàn)問題或者需要更新服務功能的時候,必須迭代整個應用,而是只需要單獨針對這個服務功能進行升級處理即可。
但是隨著應用功能的擴展,單機部署的應用逐漸顯得臃腫,這時,架構設計者嘗試將一些較大的服務剝離開來,單獨部署在另一臺主機設備上,從而實現(xiàn)核心應用服務器的減負,提高資源利用率和服務性能,這就是 分布式部署 的方式。這也是一種從應用到服務的一種轉變,
但是,此時服務部署在不同的機器上面,那服務之間要怎么實現(xiàn)相互調用呢?此時,RPC (Remote Procedure Call 遠程過程調用) 就應運而生。
到這里,相信可能已經(jīng)猜到了 RPC 的含義了,其實 RPC 本身就是一種概念,也就是 如何進行遠程的服務調用,它不是一個協(xié)議,也不是一個解決方案,而是這些所有可以實現(xiàn)遠程服務調用的解決方案的概念本身,此時你可能會馬上聯(lián)想到了 HTTP 協(xié)議,因為從上面的闡述來看,通過 HTTP 的方法調用同樣可以解決以上的問題,而事實上,HTTP 就是可以用來實現(xiàn) RPC 的一種方式。
你也完全可以自己實現(xiàn)一種 RPC 服務,根據(jù)你定義的通訊方式,只要保證當本地程序進行遠程方法訪問的時候,遠程服務可以順利接收到請求,并且能夠識別客戶端所調用的方法,并解析得到其中的參數(shù),從而調用本地的函數(shù)并將最終得到的結果返回給客戶端,這樣也可以解決遠程調用的問題。文章來源:http://www.zghlxwxcb.cn/news/detail-803559.html
因此,不需要局限于解決方法,任何可以高效并且穩(wěn)定的解決問題的方案都是一個優(yōu)秀的方案,很多時候一些流行的框架和方法都是為了解決某個既有問題而誕生的,因此當你清楚根本問題時,你就可以很好的理解這個框架或者理念。文章來源地址http://www.zghlxwxcb.cn/news/detail-803559.html
到了這里,關于RPC:Remote Procedure Call 遠程過程調用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!