誕生於 2014 年的“微服務架構”,其思想經由 Martin Fowler 闡述後,在近幾年持續受到重視,理論與相關實踐都不斷髮展,目前它已經成為了主流軟件架構模式。

關於微服務架構是什麼,沒有一個明確的定義,每個實踐者有自己的理解,但是有人給出的一個公式值得思考:

微服務架構 = 80% 的 SOA 服務架構思想 + 100% 的組件化架構思想 + 80% 的領域建模思想

微服務架構的優點很多,比如它解耦業務,提供更高的靈活性,允許在服務頻繁發版的同時保持系統其它部分的可用性與穩定性;解耦編程語言,針對不同業務可以使用更加合適的語言進行開發;解耦開發團隊,不同團隊各自負責一個微服務,互不影響,加速交付。

關於微服務架構,網上資料相當多(因為現在很火,各家都有實踐案例分享),讀者可以另行查閱,這裡不贅述。

下邊為大家列舉了當前最為火熱,最常被人提及的開源微服務開發框架,希望對開發者有一定的幫助。

Spring Cloud


2019火熱的開源微服務框架彙總,值得關注


Spring Cloud 為開發者提供了分佈式系統配置管理、服務發現、斷路器、智能路由、微代理、控制總線、一次性 Token、全局鎖、決策競選、分佈式會話與集群狀態等的開發工具。使用 Spring Cloud 開發者可以快速實現上述這些模式。

Eclipse MicroProfile


2019火熱的開源微服務框架彙總,值得關注


Eclipse MicroProfile 是一個 Java 微服務開發的基礎編程模型,它致力於定義企業 Java 微服務規範,MicroProfile 提供指標、API 文檔、運行狀況檢查、容錯與分佈式跟蹤等能力,使用它創建的雲原生微服務可以自由地部署在任何地方,包括 Service Mesh 架構,如 Istio。

Dubbo


2019火熱的開源微服務框架彙總,值得關注


Dubbo 是阿里開源的一款高性能 RPC 框架,特性包括基於透明接口的 RPC、智能負載均衡、自動服務註冊和發現、可擴展性高、運行時流量路由與可視化的服務治理。

Tars


2019火熱的開源微服務框架彙總,值得關注


Tars 是騰訊將其內部使用的微服務框架 TAF(Total Application Framework)多年的實踐成果總結而成的開源項目,在騰訊內部有上百個產品使用,服務內部數千名 C++、Java、Golang、Node.Js 與 PHP 開發者。其包含一整套開發框架與管理平臺,兼顧多語言、易用性、高性能與服務治理,理念是讓開發更聚焦業務邏輯,讓運營更高效。

Helidon


2019火熱的開源微服務框架彙總,值得關注


Helidon 是甲骨文開源的一個微服務框架,編寫的微服務運行在由 Netty 提供支持的快速 Web 內核上。

SOFAStack


2019火熱的開源微服務框架彙總,值得關注


SOFAStack™(Scalable Open Financial Architecture Stack)是由螞蟻金服開源的一套用於快速構建金融級分佈式架構的中間件,也是在金融場景裡錘鍊出來的最佳實踐。

gRPC


2019火熱的開源微服務框架彙總,值得關注


gRPC 是谷歌開源的高性能通用 RPC 框架。gRPC 基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮與單 TCP 連接上的多路複用請求等特性,這些特性使得其在移動設備上表現更好,更省電和節省空間佔用。

Thrift

Thrift 是一個 RPC 框架,用來開發可擴展且跨語言的服務。它結合了功能強大的軟件堆棧和代碼生成引擎,以構建可以在 C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk 與 OCaml 等語言間無縫結合的、高效的服務。

brpc


2019火熱的開源微服務框架彙總,值得關注


brpc 是百度內部最常使用的工業級 RPC 框架,有 1000 000+ 個實例(不包含 client)和上千種服務,在百度內叫做“baidu-rpc”,目前只開源了 C++ 版本。

上邊列出的主要是一些微服務架構的開發框架或者與微服務架構至關重要的 RPC 框架,而其實微服務又涉及到分佈式,這又會涉及到各種各樣的中間件,數量太過於龐大,下回再議吧。

但是有一個方面是一定要在這裡指出來的,那就是 Service Mesh。現在提到微服務架構,一般都會涉及到 Service Mesh 的相關內容,Service Mesh 被譽為“下一代微服務架構”,它源於對早期的服務代理模式 Sidecar 的擴展,其理念雖然由來已久,但是直到近兩年隨著微服務的火速興起和 Buoyant 創建 Linkerd 並將其重新演繹,才逐漸以嶄新的姿態呈現給世人。

Service Mesh 重點在 Mesh,它在 Sidecar 的基礎上,強調了各個代理之間形成的有機網絡。以通用組件的形式管控系統中所有服務通信流量,同時下沉了微服務開發的技術棧,可以做到語言無關、功能可擴展。

通過一個網格,Service Mesh 可以將服務治理的各個部分、微服務架構建設中的各個環節都不斷延申,最終成為一套微服務開發完全解決方案。

這裡也列出幾個目前在 Service Mesh 領域穩坐主流地位的開源項目:

Linkerd


2019火熱的開源微服務框架彙總,值得關注


Linkerd 是一個提供彈性雲端原生應用 Service Mesh 的開源項目,也是面向微服務的開源 RPC 代理,它的核心是一個透明代理。

Envoy


2019火熱的開源微服務框架彙總,值得關注


Envoy 是開源的邊緣和服務代理,用於雲原生應用,其最初是在 Lyft 構建的,它是為單一服務和應用程序設計的高性能 C++ 分佈式代理,以及為大型微服務 Service Mesh 架構設計的通信總線和通用數據平面。

Istio


2019火熱的開源微服務框架彙總,值得關注


Istio 項目能夠為微服務架構提供流量管理機制,同時亦為其它增值功能(包括安全性、監控、路由、連接管理與策略等)創造了基礎。這款軟件利用久經考驗的 Lyft Envoy 代理進行構建,可在無需對應用程序代碼作出任何發動的前提下實現可視性與控制能力。

Conduit


2019火熱的開源微服務框架彙總,值得關注


Conduit 是一個 Kubernetes 的超輕量級 Service Mesh,其目標是成為最快、最輕、最簡單並且最安全的 Service Mesh。它使用 Rust 構建了快速、安全的數據平面,用 Go 開發了簡單強大的控制平面,總體設計圍繞著性能、安全性和可用性進行。它能透明地管理服務之間的通信,提供可測性、可靠性、安全性和彈性的支持。雖然與 Linkerd 相仿,數據平面是在應用代碼之外運行的輕量級代理,控制平面是一個高可用的控制器,然而與 Linkerd 不同的是,Conduit 的設計更加傾向於 Kubernetes 中的低資源部署。

注:在發佈 0.5 版本後,後續 Conduit 已經整合到了 Linkerd 2。

對 Service Mesh 的建設其實已經成為當前的業內共識,從下邊這些項目都在往這個方向上演進就可以大致有所體會:

WeiboMesh

Motan 是新浪微博開源的是一套高性能、易於使用的分佈式 RPC 框架,後來在 Motan Agent 的基礎上演化出了 WeiboMesh。WeiboMesh 偏向服務治理方向,同時提供服務的動態管理能力,如服務降級、動態配置、權限管理、數據採集與服務指令處理等。

Dubbo Mesh

Dubbo 在 v3 中發展 Service Mesh,官方希望 Dubbo Mesh 進入 Envoy 社區,目前 Dubbo 協議已經被 Envoy 支持,數據層選址、負載均衡和服務治理方面的工作還在繼續,控制層目前在豐富 Istio/Pilot-discovery。

SOFAMOSN

MOSN 是 SOFAStack 的組件,它一款採用 Go 語言開發的 Service Mesh 數據平面代理,功能和定位類似 Envoy ,旨在提供分佈式,模塊化,可觀察,智能化的代理能力。MOSN 支持 Envoy 和 Istio 的 API ,可以和 Istio 集成。

nginMesh

nginMesh 是 NGINX 開源的 Service Mesh 方案,它提供基於 NGINX 的 Service Mesh 實現。nginMesh 與 Istio 兼容,利用 NGINX 實現 Sidecar 代理,集成在 Istio 中,可以標準、可靠和安全的方式促進服務之間的通信。

注:nginMesh 項目目前已經不再積極開發。

MicroProfile Service Mesh


2019火熱的開源微服務框架彙總,值得關注


MicroProfile Service Mesh 是 MicroProfile 的 Service Mesh 規範。MicroProfile 定義了用於開發雲原生微服務的一系列規範,本質上它也是為 Istio 而生的微服務編程模型,而 Istio 本身就是 Service Mesh 的代名詞。此規範關注 Service Mesh,並且更多地聚焦於 Istio。

Ambassador


2019火熱的開源微服務框架彙總,值得關注


Ambassador 是一個基於 Envoy 構建的 Kubernetes 原生 API 網關,專為微服務而設計,它本質上是一個 Envoy 入口控制器,但具有更多功能,包括支持 gRPC、HTTP/2 與 WebSockets,支持 CORS、超時、加權輪詢調度、粘性會話與速率限制等。

Gloo


2019火熱的開源微服務框架彙總,值得關注


Gloo 是一個基於 Envoy 的 Kubernetes 原生入口控制器和下一代 API 網關。Gloo 在函數級路由方面表現卓越,它支持傳統應用程序、微服務與 Serverless。Gloo 設計獨特,可支持混合應用,其中的多種技術、架構、協議和雲可以共存。

Kong


2019火熱的開源微服務框架彙總,值得關注


Kong 在 1.0 GA 的時候帶來了 Service Mesh 能力,用戶不僅可以將 Kong 部署為 API 網關,還可以將其部署為獨立的 Service Mesh 代理。Kong 插件能為 Service Mesh 提供開箱即用的關鍵功能,並能與其它雲原生技術集成,包括 Prometheus、Zipkin、健康檢查、canary 測試與藍綠測試等。

Consul Connect


2019火熱的開源微服務框架彙總,值得關注


Connect 是 Consul 中的 Service Mesh 方案,它可以自動將任何現有的 Consul 群集轉換為 Service Mesh 解決方案。Connect 通過自動 TLS 加密和基於身份的認證實現安全的服務到服務通信。

天下數據是國內屈指可數的擁有多處海外自建機房的新型IDC服務商,被業界公認為“中國IDC行業首選品牌”。

天下數據與全球近120多個國家頂級機房直接合作,提供包括香港、美國、韓國、日本、臺灣、新加坡、荷蘭、法國、英國、德國、埃及、南非、巴西、印度、越南等國家和地區的服務器、雲服務器的租用服務,需要的請聯繫天下數據客服!

除提供傳統的IDC產品外,天下數據的主要職責是為大中型企業提供更精細、安全、滿足個性需求的定製化服務器解決方案,特別是在直銷、金融、視頻、流媒體、遊戲、電子商務、區塊鏈、快消、物聯網、大數據等諸多行業,為廣大客戶解決服務器租用中遇到的各種問題。

相關推薦

推薦中...