新聞中心
誕生于 2014 年的“微服務(wù)架構(gòu)”,其思想經(jīng)由 Martin Fowler 闡述后,在近幾年持續(xù)受到重視,理論與相關(guān)實踐都不斷發(fā)展,目前它已經(jīng)成為了主流軟件架構(gòu)模式。

我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、晉安ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的晉安網(wǎng)站制作公司
關(guān)于微服務(wù)架構(gòu)是什么,沒有一個明確的定義,每個實踐者有自己的理解,但是有人給出的一個公式值得思考:
微服務(wù)架構(gòu) = 80% 的 SOA 服務(wù)架構(gòu)思想 + 100% 的組件化架構(gòu)思想 + 80% 的領(lǐng)域建模思想
微服務(wù)架構(gòu)的優(yōu)點很多,比如它解耦業(yè)務(wù),提供更高的靈活性,允許在服務(wù)頻繁發(fā)版的同時保持系統(tǒng)其它部分的可用性與穩(wěn)定性;解耦編程語言,針對不同業(yè)務(wù)可以使用更加合適的語言進行開發(fā);解耦開發(fā)團隊,不同團隊各自負責一個微服務(wù),互不影響,加速交付。
關(guān)于微服務(wù)架構(gòu),網(wǎng)上資料相當多(因為現(xiàn)在很火,各家都有實踐案例分享),讀者可以另行查閱,這里不贅述。
下邊為大家列舉了當前最為火熱,最常被人提及的開源微服務(wù)開發(fā)框架,希望對開發(fā)者有一定的幫助(點擊項目名,可以直接跳轉(zhuǎn)介紹頁):
Spring Cloud
Spring Cloud 為開發(fā)者提供了分布式系統(tǒng)配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、一次性 Token、全局鎖、決策競選、分布式會話與集群狀態(tài)等的開發(fā)工具。使用 Spring Cloud 開發(fā)者可以快速實現(xiàn)上述這些模式。
Eclipse MicroProfile
Eclipse MicroProfile 是一個 Java 微服務(wù)開發(fā)的基礎(chǔ)編程模型,它致力于定義企業(yè) Java 微服務(wù)規(guī)范,MicroProfile 提供指標、API 文檔、運行狀況檢查、容錯與分布式跟蹤等能力,使用它創(chuàng)建的云原生微服務(wù)可以自由地部署在任何地方,包括 Service Mesh 架構(gòu),如 Istio。
Dubbo
Dubbo 是阿里開源的一款高性能 RPC 框架,特性包括基于透明接口的 RPC、智能負載均衡、自動服務(wù)注冊和發(fā)現(xiàn)、可擴展性高、運行時流量路由與可視化的服務(wù)治理。
Tars
Tars 是騰訊將其內(nèi)部使用的微服務(wù)框架 TAF(Total Application Framework)多年的實踐成果總結(jié)而成的開源項目,在騰訊內(nèi)部有上百個產(chǎn)品使用,服務(wù)內(nèi)部數(shù)千名 C++、Java、Golang、Node.Js 與 PHP 開發(fā)者。其包含一整套開發(fā)框架與管理平臺,兼顧多語言、易用性、高性能與服務(wù)治理,理念是讓開發(fā)更聚焦業(yè)務(wù)邏輯,讓運營更高效。
Helidon
Helidon 是甲骨文開源的一個微服務(wù)框架,編寫的微服務(wù)運行在由 Netty 提供支持的快速 Web 內(nèi)核上。
SOFAStack
SOFAStack?(Scalable Open Financial Architecture Stack)是由螞蟻金服開源的一套用于快速構(gòu)建金融級分布式架構(gòu)的中間件,也是在金融場景里錘煉出來的***實踐。
gRPC
gRPC 是谷歌開源的高性能通用 RPC 框架。gRPC 基于 HTTP/2 標準設(shè)計,帶來諸如雙向流、流控、頭部壓縮與單 TCP 連接上的多路復(fù)用請求等特性,這些特性使得其在移動設(shè)備上表現(xiàn)更好,更省電和節(jié)省空間占用。
Thrift
Thrift 是一個 RPC 框架,用來開發(fā)可擴展且跨語言的服務(wù)。它結(jié)合了功能強大的軟件堆棧和代碼生成引擎,以構(gòu)建可以在 C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk 與 OCaml 等語言間無縫結(jié)合的、高效的服務(wù)。
brpc
brpc 是百度內(nèi)部最常使用的工業(yè)級 RPC 框架,有 1000 000+ 個實例(不包含 client)和上千種服務(wù),在百度內(nèi)叫做“baidu-rpc”,目前只開源了 C++ 版本。
上邊列出的主要是一些微服務(wù)架構(gòu)的開發(fā)框架或者與微服務(wù)架構(gòu)至關(guān)重要的 RPC 框架,而其實微服務(wù)又涉及到分布式,這又會涉及到各種各樣的中間件,數(shù)量太過于龐大,下回再議吧。
但是有一個方面是一定要在這里指出來的,那就是 Service Mesh?,F(xiàn)在提到微服務(wù)架構(gòu),一般都會涉及到 Service Mesh 的相關(guān)內(nèi)容,Service Mesh 被譽為“下一代微服務(wù)架構(gòu)”,它源于對早期的服務(wù)代理模式 Sidecar 的擴展,其理念雖然由來已久,但是直到近兩年隨著微服務(wù)的火速興起和 Buoyant 創(chuàng)建 Linkerd 并將其重新演繹,才逐漸以嶄新的姿態(tài)呈現(xiàn)給世人。
Service Mesh 重點在 Mesh,它在 Sidecar 的基礎(chǔ)上,強調(diào)了各個代理之間形成的有機網(wǎng)絡(luò)。以通用組件的形式管控系統(tǒng)中所有服務(wù)通信流量,同時下沉了微服務(wù)開發(fā)的技術(shù)棧,可以做到語言無關(guān)、功能可擴展。
通過一個網(wǎng)格,Service Mesh 可以將服務(wù)治理的各個部分、微服務(wù)架構(gòu)建設(shè)中的各個環(huán)節(jié)都不斷延申,最終成為一套微服務(wù)開發(fā)完全解決方案。
這里也列出幾個目前在 Service Mesh 領(lǐng)域穩(wěn)坐主流地位的開源項目:
Linkerd
Linkerd 是一個提供彈性云端原生應(yīng)用 Service Mesh 的開源項目,也是面向微服務(wù)的開源 RPC 代理,它的核心是一個透明代理。
Envoy
Envoy 是開源的邊緣和服務(wù)代理,用于云原生應(yīng)用,其最初是在 Lyft 構(gòu)建的,它是為單一服務(wù)和應(yīng)用程序設(shè)計的高性能 C++ 分布式代理,以及為大型微服務(wù) Service Mesh 架構(gòu)設(shè)計的通信總線和通用數(shù)據(jù)平面。
Istio
Istio 項目能夠為微服務(wù)架構(gòu)提供流量管理機制,同時亦為其它增值功能(包括安全性、監(jiān)控、路由、連接管理與策略等)創(chuàng)造了基礎(chǔ)。這款軟件利用久經(jīng)考驗的 Lyft Envoy 代理進行構(gòu)建,可在無需對應(yīng)用程序代碼作出任何發(fā)動的前提下實現(xiàn)可視性與控制能力。
Conduit
Conduit 是一個 Kubernetes 的超輕量級 Service Mesh,其目標是成為最快、最輕、最簡單并且最安全的 Service Mesh。它使用 Rust 構(gòu)建了快速、安全的數(shù)據(jù)平面,用 Go 開發(fā)了簡單強大的控制平面,總體設(shè)計圍繞著性能、安全性和可用性進行。它能透明地管理服務(wù)之間的通信,提供可測性、可靠性、安全性和彈性的支持。雖然與 Linkerd 相仿,數(shù)據(jù)平面是在應(yīng)用代碼之外運行的輕量級代理,控制平面是一個高可用的控制器,然而與 Linkerd 不同的是,Conduit 的設(shè)計更加傾向于 Kubernetes 中的低資源部署。
注:在發(fā)布 0.5 版本后,后續(xù) Conduit 已經(jīng)整合到了 Linkerd 2,詳情查看:
Conduit 0.5 成為終曲,后續(xù)并入 Linkerd 2.0
對 Service Mesh 的建設(shè)其實已經(jīng)成為當前的業(yè)內(nèi)共識,從下邊這些項目都在往這個方向上演進就可以大致有所體會:
WeiboMesh
Motan 是新浪微博開源的是一套高性能、易于使用的分布式 RPC 框架,后來在 Motan Agent 的基礎(chǔ)上演化出了 WeiboMesh。WeiboMesh 偏向服務(wù)治理方向,同時提供服務(wù)的動態(tài)管理能力,如服務(wù)降級、動態(tài)配置、權(quán)限管理、數(shù)據(jù)采集與服務(wù)指令處理等。
Dubbo Mesh
Dubbo 在 v3 中發(fā)展 Service Mesh,官方希望 Dubbo Mesh 進入 Envoy 社區(qū),目前 Dubbo 協(xié)議已經(jīng)被 Envoy 支持,數(shù)據(jù)層選址、負載均衡和服務(wù)治理方面的工作還在繼續(xù),控制層目前在豐富 Istio/Pilot-discovery。
SOFAMOSN
MOSN 是 SOFAStack 的組件,它一款采用 Go 語言開發(fā)的 Service Mesh 數(shù)據(jù)平面代理,功能和定位類似 Envoy ,旨在提供分布式,模塊化,可觀察,智能化的代理能力。MOSN 支持 Envoy 和 Istio 的 API ,可以和 Istio 集成。
nginMesh
nginMesh 是 NGINX 開源的 Service Mesh 方案,它提供基于 NGINX 的 Service Mesh 實現(xiàn)。nginMesh 與 Istio 兼容,利用 NGINX 實現(xiàn) Sidecar 代理,集成在 Istio 中,可以標準、可靠和安全的方式促進服務(wù)之間的通信。
注:nginMesh 項目目前已經(jīng)不再積極開發(fā)。
MicroProfile Service Mesh
MicroProfile Service Mesh 是 MicroProfile 的 Service Mesh 規(guī)范。MicroProfile 定義了用于開發(fā)云原生微服務(wù)的一系列規(guī)范,本質(zhì)上它也是為 Istio 而生的微服務(wù)編程模型,而 Istio 本身就是 Service Mesh 的代名詞。此規(guī)范關(guān)注 Service Mesh,并且更多地聚焦于 Istio。
Ambassador
Ambassador 是一個基于 Envoy 構(gòu)建的 Kubernetes 原生 API 網(wǎng)關(guān),專為微服務(wù)而設(shè)計,它本質(zhì)上是一個 Envoy 入口控制器,但具有更多功能,包括支持 gRPC、HTTP/2 與 WebSockets,支持 CORS、超時、加權(quán)輪詢調(diào)度、粘性會話與速率限制等。
Gloo
Gloo 是一個基于 Envoy 的 Kubernetes 原生入口控制器和下一代 API 網(wǎng)關(guān)。Gloo 在函數(shù)級路由方面表現(xiàn)卓越,它支持傳統(tǒng)應(yīng)用程序、微服務(wù)與 Serverless。Gloo 設(shè)計獨特,可支持混合應(yīng)用,其中的多種技術(shù)、架構(gòu)、協(xié)議和云可以共存。
Kong
Kong 在 1.0 GA 的時候帶來了 Service Mesh 能力,用戶不僅可以將 Kong 部署為 API 網(wǎng)關(guān),還可以將其部署為獨立的 Service Mesh 代理。Kong 插件能為 Service Mesh 提供開箱即用的關(guān)鍵功能,并能與其它云原生技術(shù)集成,包括 Prometheus、Zipkin、健康檢查、canary 測試與藍綠測試等。
Consul Connect
Connect 是 Consul 中的 Service Mesh 方案,它可以自動將任何現(xiàn)有的 Consul 群集轉(zhuǎn)換為 Service Mesh 解決方案。Connect 通過自動 TLS 加密和基于身份的認證實現(xiàn)安全的服務(wù)到服務(wù)通信。
借此機會特別感謝以 ServiceMesher 為代表的社區(qū)在國內(nèi)普及與發(fā)展 Service Mesh 上的貢獻。
網(wǎng)頁題目:開源微服務(wù)框架,你知道幾個?
文章URL:http://m.fisionsoft.com.cn/article/coojsco.html


咨詢
建站咨詢
