RPC环境预设
在沒有RPC 框架以前,我們的服務(wù)調(diào)用是這樣的,如下圖:
從上圖可以看出接口的調(diào)用完全沒有規(guī)律可循,想怎么調(diào),就怎么調(diào)。這導(dǎo)致業(yè)務(wù)發(fā)展到一定階段之后,對接口的維護(hù)變得非常困難。于是有人提出了服務(wù)治理的概念。所有服務(wù)間不允許直接調(diào)用,而是先到注冊中心進(jìn)行登記,再由注冊中心統(tǒng)一協(xié)調(diào)和管理所有服務(wù)的狀態(tài)并對外發(fā)布,調(diào)用者只需要記住服務(wù)名稱,去找注冊中心獲取服務(wù)即可。
這樣,極大地規(guī)范了服務(wù)的管理,可以提高了所有服務(wù)端可控性。整個設(shè)計思想其實在我們生活中也能找到活生生的案例。例如:我們平時工作交流,大多都是用IM 工具,而不是面對面吼。大家只需要相互記住運營商(也就是注冊中心)提供的號碼(如:騰訊QQ)即可。再比如:我們打電話,所有電話號碼有運營商分配。我們需要和某一個人通話時,只需要撥通對方的號碼,運營商(注冊中心,如中國移動、中國聯(lián)通、中國電信)就會幫我們將信號轉(zhuǎn)接過去。
目前流行的RPC 服務(wù)治理框架主要有Dubbo 和Spring Cloud,下面我們以比較經(jīng)典的Dubbo 為例。Dubbo 核心模塊主要有四個:Registry 注冊中心、Provider 服務(wù)端、Consumer 消費端、Monitor 監(jiān)控中心,如下圖所示:
為了方便,我們將所有模塊全部放到一個項目中,主要模塊包括:
api:主要用來定義對外開放的功能與服務(wù)接口。
protocol:主要定義自定義傳輸協(xié)議的內(nèi)容。
registry:主要負(fù)責(zé)保存所有可用的服務(wù)名稱和服務(wù)地址。
provider:實現(xiàn)對外提供的所有服務(wù)的具體功能。
consumer:客戶端調(diào)用。
monitor:完成調(diào)用鏈監(jiān)控。
?
總結(jié)
- 上一篇: RPC 概述
- 下一篇: RPC创建API 模块