微服务框架选型之争
選項其實很多,這里挑選一些討論火熱、或者主流的來對比,僅供參閱。
主流微服務框架:SpringCloud、Dubbo
新銳微服務框架:Istio
1、框架背景對比
(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)的策略執行;
深度遙測和報告。
2、開源社區活躍度對比
開源社區情況:現如今企業在采用云計算首選開源,而選擇一個開源框架,社區的活躍度將作為重要參考選項。
查看下在 Github 上的更新時間,截止 2017 年 8 月 31 日:
Spring Cloud :Spring Cloud · GitHub → 所有項目均更新于『1 小時』內。
Dubbo :Dubbo · GitHub → 核心項目最近更新于『一個月乃至數月』前。
Istio:Istio · GitHub → 所有項目均更新于『30 分鐘』內。
可見,項目在社區活躍度上,Istio > Spring Cloud > Dubbo,結合穩定性來看,對于使用 Java 系開發業務較多的企業,Spring Cloud 是相對更優的選擇,對于更多企業來說,與語言幾乎無綁定的 Istio 也是可以好好期待一下其在社區的發展。
總結:結合項目背景、提供功能、社區更新活躍度,SpringCloud 是目前階段最為穩妥的可執行微服務框架方案,Istio 作為支持對于 Kubernetes 的優先支持來講,也是一個值得關注的方案。目前對比來看,Dubbo 則顯得稍遜下來。
主流微服務框架:SpringCloud、Dubbo
新銳微服務框架:Istio
1、框架背景對比
(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)的策略執行;
深度遙測和報告。
2、開源社區活躍度對比
開源社區情況:現如今企業在采用云計算首選開源,而選擇一個開源框架,社區的活躍度將作為重要參考選項。
查看下在 Github 上的更新時間,截止 2017 年 8 月 31 日:
Spring Cloud :Spring Cloud · GitHub → 所有項目均更新于『1 小時』內。
Dubbo :Dubbo · GitHub → 核心項目最近更新于『一個月乃至數月』前。
Istio:Istio · GitHub → 所有項目均更新于『30 分鐘』內。
可見,項目在社區活躍度上,Istio > Spring Cloud > Dubbo,結合穩定性來看,對于使用 Java 系開發業務較多的企業,Spring Cloud 是相對更優的選擇,對于更多企業來說,與語言幾乎無綁定的 Istio 也是可以好好期待一下其在社區的發展。
總結:結合項目背景、提供功能、社區更新活躍度,SpringCloud 是目前階段最為穩妥的可執行微服務框架方案,Istio 作為支持對于 Kubernetes 的優先支持來講,也是一個值得關注的方案。目前對比來看,Dubbo 則顯得稍遜下來。
總結
- 上一篇: iOS系统访问权限大全
- 下一篇: 治近视