SpringCloud、Dubbo、Istio

feri發表於2018-08-30

微服務框架選型之爭:
主流微服務框架:SpringCloud、Dubbo
新銳微服務框架:Istio

框架背景對比:

(1)Spring Cloud,來源於 Spring Source ,具有 Spring 社群的強大背書外,還有 Netflix 強大的後盾與技術輸出。Netflix 作為一家成功實踐微服務架構的網際網路公司,在幾年前就把幾乎整個微服務框架棧開源貢獻給了社群,這些框架開源的整套微服務架構套件是 Spring Cloud 的核心。

Eureka: 服務註冊發現框架;
Zuul: 服務閘道器;
Karyon: 服務端框架;
Ribbon: 客戶端框架;
Hystrix: 服務容錯元件;
Archaius: 服務配置元件;
Servo: Metrics元件;
Blitz4j: 日誌元件。
(2)Dubbo 是一個分散式服務框架,是國內網際網路公司開源做的比較不錯的阿里開放的微服務化治理框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。 其核心部分包含(官網):

遠端通訊: 提供對多種基於長連線的NIO框架抽象封裝,包括多種執行緒模型,序列化,以及“請求-響應”模式的資訊交換方式;
叢集容錯: 提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,地址路由,動態配置等叢集支援;
自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。
Dubbo 也是採用全 Spring 配置方式,透明化接入應用,對應用沒有任何 API 侵入,只需用 Spring 載入 Dubbo的配置即可,Dubbo 基於 Spring 的 Schema 擴充套件進行載入。當然也支援官方不推薦的 API 呼叫方式。

(3)Istio 作為用於微服務服務聚合層管理的新銳專案,是 Google、IBM、Lyft(海外共享出行公司、Uber勁敵) 首個共同聯合開源的專案,提供了統一的連線,安全,管理和監控微服務的方案。

目前首個測試版是針對 Kubernetes 環境的,社群宣稱在未來幾個月內會為虛擬機器和 Cloud Foundry 等其他環境增加支援。 Istio 將流量管理新增到微服務中,併為增值功能(如安全性,監控,路由,連線管理和策略)創造了基礎。

HTTP、gRPC 和 TCP 網路流量的自動負載均衡;
提供了豐富的路由規則,實現細粒度的網路流量行為控制;
流量加密、服務間認證,以及強身份宣告;
全範圍(Fleet-wide)的策略執行;
深度遙測和報告。

相關文章