主流的微服務(wù)框架
目前比較火的主流微服務(wù)框架
- Spring CLoud
- Dubbo
- Istio
一、背景介紹
1)Spring Cloud , 來自Spring,具有Spring 社區(qū)的強大支撐,還有Netflix強大的后盾與技術(shù)輸出。Netflix作為一家成功實踐微服務(wù)架構(gòu)的互聯(lián)網(wǎng)公司在幾年前就把幾乎整個微服務(wù)框架棧開源貢獻給了社區(qū),這些框架開源的整套服務(wù)架構(gòu)套件是Spring Cloud的核心。
- Eureka:服務(wù)注冊發(fā)現(xiàn)框架;
- Zuul:服務(wù)網(wǎng)關(guān);
- Karyon:服務(wù)端框架;
- Ribbon:客戶端框架;
- Hystrix:服務(wù)容錯組件;
- Archaius:服務(wù)配置組件;
- Servo:Metrics組件;
- Blitz4j:日志組件;
2)Dobbo是一個分布式服務(wù)框架,是阿里開放的微服務(wù)化治理框架,致力于提高性能和透明化的RPC遠程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案。其核心部分(官網(wǎng))
- 遠程通訊: 提供對多種基于長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請求-響應(yīng)”模式的信息交換方式;
- 集群容錯: 提供基于接口方法的透明遠程過程調(diào)用,包括多協(xié)議支持,以及軟負載均衡,失敗容錯,地址路由,動態(tài)配置等集群支持;
- 自動發(fā)現(xiàn): 基于注冊中心目錄服務(wù),使服務(wù)消費方能動態(tài)的查找服務(wù)提供方,使地址透明,使服務(wù)提供方可以平滑增加或減少機器。
Dubbo 也是采用全 Spring 配置方式,透明化接入應(yīng)用,對應(yīng)用沒有任何 API 侵入,只需用 Spring 加載 Dubbo的配置即可,Dubbo 基于 Spring 的 Schema 擴展進行加載。當(dāng)然也支持官方不推薦的 API 調(diào)用方式。
3)lstio 作為用于微服務(wù)聚合層管理的新銳項目,是Google、IBM、Lyft(海外共享出行公司、Uber勁敵),首個共同聯(lián)合開源的項目,提供了統(tǒng)一的連接,安全,管理和監(jiān)控微服務(wù)的方案。
目前首個測試版是針對Kubernetes環(huán)境的,社區(qū)宣稱在未來幾個月內(nèi)會為虛擬機和Cloud Foundry 等其他環(huán)境增加支持。lstio將 流量管理添加到微服務(wù)中,并為增值功能(如安全性、監(jiān)控、路由、連接管理和策略)創(chuàng)造了基礎(chǔ)。
- HTTP、gRPC 和 TCP 網(wǎng)絡(luò)流量自動負載均衡;
- 提供了豐富的路由規(guī)則,實現(xiàn)細顆粒度的網(wǎng)絡(luò)流量行為控制;
- 流量加密、服務(wù)件認證,以及強身份聲明;
- 全范圍(Fleet-wide)的策略執(zhí)行;
- 深度遙測和報告。
二、開源社區(qū)活躍度對比
開源社區(qū)情況:現(xiàn)如今企業(yè)在采用云計算首選開源,而選擇一個開源框架,社區(qū)的活躍度將作為重要參考選項。
查看下在 Github 上的更新時間,截止 2017 年 8 月 31 日:
Spring Cloud :Spring Cloud · GitHub → 所有項目均更新于『1 小時』內(nèi)。
Dubbo :Dubbo · GitHub → 核心項目最近更新于『一個月乃至數(shù)月』前。
Istio:Istio · GitHub → 所有項目均更新于『30 分鐘』內(nèi)。
可見,項目在社區(qū)活躍度上,Istio > Spring Cloud > Dubbo,結(jié)合穩(wěn)定性來看,對于使用 Java 系開發(fā)業(yè)務(wù)較多的企業(yè),Spring Cloud 是相對更優(yōu)的選擇,對于更多企業(yè)來說,與語言幾乎無綁定的 Istio 也是可以好好期待一下其在社區(qū)的發(fā)展。
同時,隨著近幾年微服務(wù)架構(gòu)和 Docker 容器概念的火爆,也會讓 Spring Cloud 在未來越來越“云”化的軟件開發(fā)風(fēng)格中立有一席之地