RPC簡單介紹

王知無發表於2019-03-03

原文 :GitHub原文: github.com/wangzhiwubi…

更多文章關注:多執行緒/集合/分散式/Netty/NIO/RPC

RPC

1. RPC是什麼

RPC(Remote Procedure Call Protocol)——遠端過程呼叫協議,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通訊程式之間攜帶資訊資料。在OSI網路通訊模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網路分散式多程式在內的應用程式更加容易。

RPC採用客戶機/伺服器模式。請求程式就是一個客戶機,而服務提供程式就是一個伺服器。首先,客戶機呼叫程式傳送一個有程式引數的呼叫資訊到服務程式,然後等待應答資訊。在伺服器端,程式保持睡眠狀態直到呼叫資訊到達為止。當一個呼叫資訊到達,伺服器獲得程式引數,計算結果,傳送答覆資訊,然後等待下一個呼叫資訊,最後,客戶端呼叫程式接收答覆資訊,獲得程式結果,然後呼叫執行繼續進行。

RPC簡單介紹

2. 為什麼要用RPC?

其實這是應用開發到一定的階段的強烈需求驅動的。

  1. 如果我們開發簡單的單一應用,邏輯簡單、使用者不多、流量不大,那我們用不著;

  2. 當我們的系統訪問量增大、業務增多時,我們會發現一臺單機執行此係統已經無法承受。此時,我們可以將業務拆分成幾個互不關聯的應用,分別部署在各自機器上,以劃清邏輯並減小壓力。此時,我們也可以不需要RPC,因為應用之間是互不關聯的。

  3. 當我們的業務越來越多、應用也越來越多時,自然的,我們會發現有些功能已經不能簡單劃分開來或者劃分不出來。此時,可以將公共業務邏輯抽離出來,將之組成獨立的服務Service應用 。而原有的、新增的應用都可以與那些獨立的Service應用 互動,以此來完成完整的業務功能。所以此時,我們急需一種高效的應用程式之間的通訊手段來完成這種需求,所以你看,RPC大顯身手的時候來了!

其實3描述的場景也是服務化 、微服務 和分散式系統架構 的基礎場景。即RPC框架就是實現以上結構的有力方式。

RPC簡單介紹

	請戳GitHub原文: https://github.com/wangzhiwubigdata/God-Of-BigData

                   關注公眾號,內推,面試,資源下載,關注更多大資料技術~
                   大資料成神之路~預計更新500+篇文章,已經更新60+篇~ 
複製程式碼