微服務架構 = 80% 的 SOA 服務架構思想 + 100% 的組件化架構思想 + 80% 的領域建模思想
推薦:最火熱的開源微服務框架
關於微服務架構是什麼,沒有一個明確的定義,每個實踐者有自己的理解,但是有人給出的一個公式值得思考:
不管怎樣,微服務架構現在都很受歡迎,近日,一名博主 h4cd 在其博客中列舉了當前最爲火熱,最常被人提及的開源微服務開發框架,希望對開發者有一定的幫助。
它爲開發者提供了分佈式系統配置管理、服務發現、斷路器、智能路由、微代理、控制總線、一次性 Token、全局鎖、決策競選、分佈式會話與集羣狀態等的開發工具。使用 Spring Cloud 開發者可以快速實現上述這些模式。
這是一個 Java 微服務開發的基礎編程模型,它致力於定義企業 Java 微服務規範,MicroProfile 提供指標、API 文檔、運行狀況檢查、容錯與分佈式跟蹤等能力,使用它創建的雲原生微服務可以自由地部署在任何地方,包括 Service Mesh 架構,如 Istio。
這是阿里開源的一款高性能 RPC 框架,特性包括基於透明接口的 RPC、智能負載均衡、自動服務註冊和發現、可擴展性高、運行時流量路由與可視化的服務治理。
這是騰訊將其內部使用的微服務框架 TAF(Total Application Framework)多年的實踐成果總結而成的開源項目,在騰訊內部有上百個產品使用,服務內部數千名 C++、Java、Golang、Node.Js 與 PHP 開發者。其包含一整套開發框架與管理平臺,兼顧多語言、易用性、高性能與服務治理,理念是讓開發更聚焦業務邏輯,讓運營更高效。
這是甲骨文開源的一個微服務框架,編寫的微服務運行在由 Netty 提供支持的快速 Web 內核上。
這是由螞蟻金服開源的一套用於快速構建金融級分佈式架構的中間件,也是在金融場景裏錘鍊出來的最佳實踐。
這是谷歌開源的高性能通用 RPC 框架。gRPC 基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮與單 TCP 連接上的多路複用請求等特性,這些特性使得其在移動設備上表現更好,更省電和節省空間佔用。
這是一個 RPC 框架,用來開發可擴展且跨語言的服務。它結合了功能強大的軟件堆棧和代碼生成引擎,以構建可以在 C++、Java、Python、PHP 等多種語言間無縫結合的、高效的服務。
這是百度內部最常使用的工業級 RPC 框架,有 1000 000+ 個實例(不包含 client)和上千種服務,目前只開源了 C++ 版本。
上邊列出的主要是一些微服務架構的開發框架或者與微服務架構至關重要的 RPC 框架,而其實微服務又涉及到分佈式,這又會涉及到各種各樣的中間件。
此外,還有一個方面是一定要在這裏指出來的,那就是 Service Mesh。現在提到微服務架構,一般都會涉及到 Service Mesh 的相關內容。通過一個網格,Service Mesh 可以將服務治理的各個部分、微服務架構建設中的各個環節都不斷延申,最終成爲一套微服務開發完全解決方案。
以下列出幾個目前在 Service Mesh 領域穩坐主流地位的開源項目:
這是一個提供彈性雲端原生應用 Service Mesh 的開源項目,也是面向微服務的開源 RPC 代理,它的核心是一個透明代理。
這是開源的邊緣和服務代理,用於雲原生應用,其最初是在 Lyft 構建的,它是爲單一服務和應用程序設計的高性能 C++ 分佈式代理,以及爲大型微服務 Service Mesh 架構設計的通信總線和通用數據平面。
該項目能夠爲微服務架構提供流量管理機制,同時亦爲其它增值功能創造了基礎。這款軟件利用久經考驗的 Lyft Envoy 代理進行構建,可在無需對應用程序代碼作出任何發動的前提下實現可視性與控制能力。
這是一個 Kubernetes 的超輕量級 Service Mesh,其目標是成爲最快、最輕、最簡單並且最安全的 Service Mesh。它使用 Rust 構建了快速、安全的數據平面,用 Go 開發了簡單強大的控制平面,總體設計圍繞着性能、安全性和可用性進行。它能透明地管理服務之間的通信,提供可測性、可靠性、安全性和彈性的支持。
來源:極客時間
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.