1.什麼是RPC?
遠程服務調用。有服務的提供者也有調用者,RPC我自己的理解就是分佈式。只不過它屬於系統間的調用,複雜度較高。我自己常用的有WebService
2.什麼是SOA?
統一的調度中心,將向外部提供的服務統一的管理起來。說白了就是把所有提供的服務全部集中在一起,然後做統一的調度,外界需要什麼服務就統一的向裏面拿,SOA做的就是將這些資源合理的非配給需要服務的人。如 Dubbo
,
架構發展歷程
ORM -----------MVC------------RPC----------SOA----微服務
3.Dubbo是什麼?
3.1 Dubbo是一個分佈式服務架構,致力於提供高性能和透明化的RPC遠程服務調用和SOA服務治理。
核心內容爲:
遠程通訊: 提供對多種基於長連接(交互雙方一直保持通信)的NIO(非阻塞)框架進行抽象封裝,其中也包括多種線程模型,序列化,以及‘’請求--響應‘’模式的信息交互方式。
集羣容錯:提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡。失敗容錯。地址路由,動態配置等集羣支持。
自動發現:基於註冊中心的目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,服務提供方可以平滑增加和減少機器。
3.2 Dubbo的作用:
透明化的遠程方法調用,就像調用本地方法一樣,調用本地方法,麼有任何API入侵。
軟負載均衡和容錯機制
服務自動註冊與發行,不再需要寫死服務提供方地址(借鑑Webservice)註冊中心基於接口名字查詢提供方的ip地址,使刪除或增加服務的時候更加平穩。
3.3Dubbo 服務治理的方案
註冊中心:所有的服務都需要在註冊中心去註冊,服務註冊成功後,註冊中心會爲這些服務進行編排(哪些服務可用,哪些服務不可用)
Dubbo請求的全部過程如下
1.統一管理控制檯 將準備發佈的服務應用包上傳到倉庫中
2.管理控制檯通過調度來到調度器,3.調度器通過部署來到部署器,4.服務的提供者到倉庫中取下載
放在倉庫中的服務應用包5.-11參考下圖。解釋一下7註冊中心通過路由告訴管理控制檯 服務已經準備好了。
12 爲異步的將連接信息報告給調度器。
13將 連接信息已視圖的方式給管理控制檯。
Dubbo的核心請求如下: