微服務常用協議及解決方案

微服務

是一種構建系統的方式,幾個獨立的服務按定義好的方式彼此通信。關鍵在於每個微服務都可以獨立更新和部署。”

Dubbo和SpringCloud就是目前最常用的兩種解決方案。

dubbo能做什麼

  • 透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
  • 軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,降低成本,減少單點。
  • 服務自動註冊與發現,不再需要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。
  • 默認也推薦使用 netty 框架,還有 mina。

SpringCloud 能做什麼

  • 為實現分佈式架構的系統提供了相當多的組件。是一個分佈式的解決方案。
  • 使用SpringCloud的諸多組件可以快速減少時間,減少各種開發公共代碼的編寫。

SpringCloud和Dubbo的區別

  • SpringCloud使用Rest api通信,Dubbo採用RPC通信,服務之間調用得性能會更好。

HTTP REST的通信方式就是使用http協議,比如我們常用的httpclient就一種進行http通信的工具類

RPC的底層是通過二進制傳送的,用的socket的通信方式。


  • springcloud相關組件多,有自己得註冊中心網關等,集成方便,Dubbo需要自己額外去集成。
  • Dubbo相對更容易上手


微服務常用協議及解決方案

RPC

遠程過程調用,即通過網絡通信來調用遠程計算機程序上的服務,而這個調用過程就像調用本地方法一樣簡單透明,並且不需要了解底層的網絡技術協議。

採用C/S架構,發出請求的程序是Client,提供服務的則是Server,類似於Http請求與響應。調用的方法在遠程,而要像調用本地方法一樣簡單。

1)對於客戶端的我:調用本地的一個方法(存根)就能獲得服務。 這個存根是遠程服務的一個代理,其底層如何實現,對於我來說是透明的。

2)對於遠程服務器:監聽是否有連接過來,來了就調用對應的方法並返回(服務器端較易理解)

微服務常用協議及解決方案

rpc流程


微服務常用協議及解決方案

grpc是一個高性能、通用的開源RPC框架,基於HTTP/2協議標準和Protobuf序列化協議開發,支持眾多的開發語言。在對接口具有嚴格約束或者傳遞大量數據的場景中得到了廣泛的應用。

常用的RPC框架

Dubbo、SpringCloud、RMI


分享到:


相關文章: