前言
隨着互聯網時代的快速發展、產品更新迭代的同時,也產生了不少優秀的框架,可謂是時勢造英雄啊,今天就讓咱們來一塊兒看看各大互聯網企業最愛使用的幾個框架(Dubbo、SpringCloud、Istio)。安全
1、Dubbo、SpringCloud、Istio框架簡介
Dubbo
Dubbo是阿里巴巴公司自主研發並開源的一款高性能、輕量級的開源RPC分佈式服務框架,服務消費方引用服務提供方二方庫本地化調用遠程接口,經過註冊中心zookeeper作服務提供者、服務消費者服務的註冊與發現來實現遠程服務間的數據交互,支持服務智能容錯、智能均衡、灰度,可與Spring集成。微信
Spring Cloud
Spring家族產品,包含一系列組件,其實就是整個Spring生態組件框架的統稱。也是基於SpringBoot框架的基礎上與衆多組件框架相結合從而造成一個整的微服務架構生態,SpringCloud提供配置管理,服務智能,斷路器,智能路由,微代理,控制總線,全局鎖,決策競選分佈式會話和集羣狀態管理一系列解決方案。架構
Istio
Istio一個全新的服務網格框架,它是ServiceMesh目前最流行的實踐,那麼它是幹啥的呢?官方給出的介紹是:An open platform to connect, secure, control and observe services.翻譯過來就是「鏈接、安全加固、控制和觀察服務的開放平臺」,與前兩個框架不一樣的是它不是一個與語言綁定的應用系統框架,而且不須要經過接入代碼實現某個功能,它處於服務應用以外,創建一個複雜的微服務網格,使得業務系統與基礎設施系統實現解耦,另外Istio對Kubernetes(k8s)支持友好。負載均衡
2、Dubbo、SpringCloud、Istio架構圖
Dubbo架構圖
從架構圖中能夠看出來,Dubbo功能相對單一不夠全面,沒有像SpringCloud擁有豐富的微服務生態體系,而且SpringCloud也有註冊中心(Eureka、Consul)、服務消費(Ribbon)組件。框架
Spring Cloud架構圖
從架構圖能夠看出SpringCloud擁有一個完整架構生態。 分佈式
Istio架構圖
從架構圖上能夠看出Istio不是嵌入代碼就能夠作到服務鏈接代理、安全加固、控制和觀察,服務之間的通訊支持協議Http/1.一、Http/二、gPRC、TCP,由Pilot、Citadel、Mixer組成控制平臺。微服務
3、Dubbo、SpringCloud、Istio數據對比
對比項 | Dubbo | SpringCloud | Istio |
---|---|---|---|
學習難度(五星滿) | ☆☆☆ | ☆☆☆☆ | ☆☆☆☆ |
互聯網資料案例 | 多 | 很是多,有實戰案例 | 少 |
文檔 | 中英文文檔 | 英文文檔 | 中英文文檔 |
支持語言 | Java等多種語言 | Java等多種語言 | 基本都支持(不耦合) |
集成 | Jar依賴,二方庫Jar依賴多 | 基於SpringBoot配置化集成,簡單、穩定 | 支持Kubernetes(k8s) |
開源社區熱度 | 低 | 高 | 高 |
網關 | 無 | Zuul,Gateway | Traffic Cotrol、Egress |
客戶端負載均衡 | 無 | Ribbon | Envoy |
開源協議 | Apache2.0 | Apache2.0 | Apache2.0 |
總結
Dubbo做爲阿里巴巴開源框架之一,運行性能穩定性仍是不錯的,就是中間經歷過暫停維護,對於使用Dubbo開發者來講仍是有必定影響,雖然2017年又從新維護,我也有幸在公司項目中用到過開發起來仍是挺容易的,經過依賴二方庫實現本地化調用,就是接口維護麻煩須要修改依賴二方庫。
SpringCloud屬於Spring的產品,包含一系列組件,SpringCloud其實就是其整個生態組件框架的統稱,基於SpringBoot配置化集成,搭建集成簡單、穩定,目前市場佔有率最高的當屬SpringCloud框架。
Istio新晉微服務框架,目前可能只有少部分人有用到,對Kubernetes(k8s)支持比較好,能夠了解下,說不定未來用的上呢。
當今的互聯網可謂是瞬息萬變,技術快速更新迭代,在這激烈的競爭中也催生了不少優秀框架,咱們要掌握當前技術風向並增強自身的技術棧,這樣纔不會在茫茫猿海中掉隊。性能
更多好文敬請關注公衆號
本文分享自微信公衆號 - main方法(leechence)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。學習