在當今微服務盛行的今天,大家有沒有一些成熟而又優秀的微服務框架可供開發參考呢?
答案肯定是有的,那麼今天,本文作者將和大家分享一些業界優秀的開源和閉源微服務框架。
一、首當其衝的當然是大名鼎鼎的Spring Boot了,Spring Boot是Spring Cloud家族的一員。而Spring Cloud當然也是出自Spring系列了。那麼Spring Boot和Spring Cloud是什麼關係呢?SpringBoot其實就是以前的Spring框架,是服務器端框架,封裝了一些常用的技術,如數據庫池鏈接、緩存管理、MVC、工具類庫等等服務器端相關的技術,只不過在如今微服務盛行的今天,原來的Spring服務器端框架就增加了微服務相關的一些特性,比如restful風格的接口,服務之間通信、調用,此外,Spring內嵌了一個Web服務器(tomcat/jetty),你開發的web應用不需要作為war包部署到web服務器中,而是作為一個可執行程序,啟動時把Web服務器配置好,加載起來。另外,SpringBoot還增加了對Docker的支持,所以,SpringBoot搖身一變就是一套優秀的微服務開發框架了,而且還是完全免費開源的,社區十分活躍。但是,SpringBoot始終還是一個單機應用,要想上雲在生成環境做分佈式部署,那還要需要其它諸多技術和組件,比如服務發現和註冊、上篇講到的配置集中化管理等等,而SpringCloud正是提供了這些諸多組件的一個工具集,一統Spring家族在微服務領域的江湖。
二、如果說SpringCloud一統海內外微服務的江湖的話,那麼Dubbo或者Dubbbox絕對是一統國內微服務的江湖,對,你沒有聽錯,即使你不是阿里系的員工你也會聽說過Dubbo這個大名鼎鼎的服務治理框架。不過聽說其內部用的是另外一套服務治理框架HSF(未開源),服役於淘寶、天貓平臺,由於競爭關係,阿里有一段時間停止了對Dubbo的更新和維護。噹噹網基於Dubbo開發了一套名叫Dubbox的微服務框架,還為它做了對rest支持的擴展。不過,當微服務現在盛行後,阿里系又重新對Dubbo做了支持,現在又不斷的更新中,可惜,目前都是僅支持Java語言,而且都是重RPC通信居多(目前官方已開始對rest支持了),期待對其它語言的支持。
國人用Dubbo的原因主要是該框架經過阿里系的實戰驗證(在阿里內部,除淘系以外的其它阿里子公司,都在使用Dubbo,包括:中文主站,國際主站,AliExpress,阿里雲,阿里金融,阿里學院,良無限,來往等等,開源後,已被:去哪兒,京東,吉利汽車,方正證劵,海爾,焦點科技,中潤四方,華新水泥,海康威視,等公司廣泛使用,並不停的有新公司加入,社區討論及貢獻活躍,得到用戶很高的評價),並且文檔齊全,很方便二次開發,適應性極強。附一張Dubbo開發團隊情況:Dubbo共有六個開發人員參與開發和測試,每一個開發人員都是很有經驗,團隊合作很默契,開發過程也很有節奏,有完善質量保障流程。團隊組成:
·梁飛 (開發人員/產品管理)
·劉昊旻 (開發人員/過程管理)
·劉超 (開發人員/用戶支持)
·李鼎 (開發人員/用戶支持)
·陳雷 (開發人員/質量保障)
·閭剛 (開發人員/開源運維)
三、微軟的微服務框架Service Fabric
2018年3月14日微軟終於開源了 Service Fabric ,Service Fabric 會帶來如下好處:
1.支持創建無狀態和有狀態的微服務,通過雲平臺來伸縮他們,以應對高複雜度、低延遲、數據密集的情況
2.通過應用程序級別的感知和洞察,為微服務帶來編排和自動化的優勢
3.解決分佈式系統諸如狀態管理這樣的難點,為開發人員提供應用程序生命週期管理的能力以便隨著業務的增長無需重構系統架構
4.相關工具會集成到 Visual Studio 中,也會提供相應命令行工具,以便開發人員能夠快速和輕易地上手
5.同時支持.NET和Java,這個特性特別適合目前國內原來很多投資於 .NET 平臺。
Service Fabric和SpringCloud比較:
四、華為的CSE(Cloud Service Engine, 微服務引擎)
多語言:提供Java、Go、.NET、Node.js、PHP等多語言微服務解決方案
開源開放:微服務核心框架ServiceComb已在Apache開源,提供Spring Cloud、Service Mesh商業版
可靠穩定:華為核心業務CloudNative轉型基礎底座,經華為終端業務億級用戶考驗。
五、其它微服務框架
目前Google也開源了GRPC框架,騰訊正式對外開源高性能 RPC 開發框架與微服務平臺Tars。大家如果有興趣可以自行了解下,當然,如果大家還有其它的優秀開源或閉源微服務框架,也可以下方留言一起分享討論下。
閱讀更多 微服務DevOps 的文章