最熱門的13個Java微服務框架

曾經(jīng)的服務器領(lǐng)域有許多不同的芯片架構(gòu)和操作系統(tǒng)侦讨,經(jīng)過長期發(fā)展窘面,Java的“一次編譯棠绘,到處運行”使得它在服務器領(lǐng)域找到一席之地件相,成為程序員們的最愛

群內(nèi)提供免費的Java架構(gòu)學習資料(里面有高可用、高并發(fā)氧苍、高性能及分布式夜矗、Jvm性能調(diào)優(yōu)、Spring源碼让虐,MyBatis紊撕,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰赡突!趁年輕对扶,使勁拼区赵,給未來的自己一個交代!

本文浪南,我們將和大家分享13個可靠的Java微服務架構(gòu)

1笼才、Spring Boot

Java構(gòu)建Spring應用程序已經(jīng)有很長一段時間了,Spring Boot是Spring的一個特定版本络凿,它通過對配置細節(jié)的處理骡送,使微服務構(gòu)建更加簡便。創(chuàng)建Spring Boot旨在自啟動任何類型的Spring項目絮记,而不僅僅是微服務摔踱。應用程序完成后,Spring Boot將在web服務器中混合怨愤,并輸出一個JAR文件昌渤,JVM除外。你可以將其視為原始Docker容器憔四。這也是許多負責構(gòu)建微服務的開發(fā)者都非常喜歡Spring Boot的原因。

使用 Spring 開發(fā)微服務遵循與 Web 應用相同的 MVC 理念般眉。該框架享有多年Java開發(fā)中建立的所有深度連接了赵,包括所有主要和次要數(shù)據(jù)存儲、LDAP服務器和Apache Kafka等消息傳遞工具的集成甸赃。還有許多用于維護運行服務器集合的小特性柿汛,比如Spring Vault,這是一種用于維護生產(chǎn)環(huán)境中服務器所需的密碼的工具埠对。所有這些優(yōu)點都說明了為什么Java程序員多年來一直喜歡Spring Boot的原因络断。

2、Eclipse MicroProfile

2016年项玛,Java Enterprise社區(qū)決定清理Java Enterprise Edition中的內(nèi)容貌笨,以便人們可以使用經(jīng)典部件構(gòu)建簡單的微服務。他們?nèi)コ舜罅康膸旖缶冢A袅颂幚鞷EST請求锥惋,解析JSON和管理依賴注入的功能代碼,最終被稱為Eclipse MicroProfile开伏,其特性為快速而簡單膀跌。

從那以后,MicroProfile社區(qū)制定了一個協(xié)議固灵,每季度發(fā)布一個新版本捅伤,同時添加新代碼以保持微服務平穩(wěn)安全地運行。任何Java EE開發(fā)者都會非常熟悉開發(fā)過程和代碼結(jié)構(gòu)巫玻,而且還吧配置麻煩給省去了丛忆。

3祠汇、Dropwizard

當Dropwizard在2011年出現(xiàn)時,Dropwizard框架為開發(fā)者提供了一個非常簡單的模型蘸际,里面包含了許多重要的模塊座哩,你可以根據(jù)需求添加一些業(yè)務邏輯,或者配置其他內(nèi)容粮彤,最后你會發(fā)現(xiàn)JAR文件非常小根穷,并且能夠快速啟動。

Dropwizard最大的限制可能是缺乏依賴注入导坟。如果你希望使用依賴項注入來保持代碼的整潔和松散耦合屿良,則需要自己添加庫,這點和Spring不同惫周,但是現(xiàn)在Dropwizard也支持大多數(shù)功能尘惧,包括日志記錄、健康檢查和提供彈性代碼递递。

4喷橙、WildFly Thorntail

Red Hat的工作人員使用一個靈活的配置工具構(gòu)建了他們自己的MicroProfile版本。該框架最初被稱為WildFly Swarm登舞,但后來被重新命名為WildFly Thorntail贰逾,Thorntail通過指定所需的特性來幫助您創(chuàng)建自己的Maven構(gòu)建文件,然后Maven負責組裝所有東西菠秒。

Thorntail還將通過掃描代碼來檢測組件疙剑,也可以使用BOM(材料清單)文件覆蓋。當它全部運行時践叠,Thorntail將刪除Java Enterprise Edition中不使用的部分言缤,并創(chuàng)建一個很小的JAR文件,可以使用一個命令進行部署——這是一個非常巧妙的特性禁灼,允許Thorntail項目將其稱為Uber-JAR管挟。這是遵循Java Enterprise Edition的另一種傳統(tǒng)方法,它不會保留所有沉重的負擔弄捕。

5哮独、Helidon

Helidon去除了Java Enterprise Edition,保留輕量級的察藐、基于servlet的核心皮璧,并吸引了大量的粉絲。在Helidon的分飞,開發(fā)人員從Netty悴务,并添加代碼進行路由和錯誤處理。它采用了代碼的兩個基本模型,即所謂的SE和MP版本讯檐。

Node 開發(fā)者可能更熟悉Helidon SE羡疗,因為其具有由句點連接的函數(shù)調(diào)用。使用JAX-RS的Java程序員則更熟悉Helidon MP别洪。此外叨恨,Helidon還集成了一些備受好評的工具,這些都是它能夠吸引大量開發(fā)者的原因挖垛。

6痒钝、Cricket

另外一個用于快速API開發(fā)框架的是Cricket。Cricket很小痢毒,盡管它包括許多額外的功能送矩,如鍵值數(shù)據(jù)存儲,以避免連接數(shù)據(jù)庫和調(diào)度程序來控制后臺重復處理哪替。沒有添加復雜性或其他依賴項栋荸,因此很容易將代碼添加到Cricket并啟動獨立的微服務。

7凭舶、Jersey

開發(fā)web服務的標準方法之一是RESTful web服務的Java API(又名JAX-RS)晌块,這是Jersey框架中實現(xiàn)的通用規(guī)范。這種方法主要依賴于使用注釋來指定路徑映射和返回細節(jié)帅霜。從參數(shù)解析到JSON打包的所有其他內(nèi)容都由Jersey處理摸袁。

Jersey的主要優(yōu)點是它實現(xiàn)了JAX-RS標準,這個特性非常受歡迎义屏,一些開發(fā)人員習慣將Jersey與Spring Boot結(jié)合在一起使用。

8蜂大、Play

體驗JVM跨語言能力的最佳方式之一是使用Play框架闽铐,這是可以與Java或任何其他JVM語言兼容的。它的基礎(chǔ)非衬唐郑現(xiàn)代兄墅,具有異步、無狀態(tài)的模型澳叉,不會讓試圖跟蹤用戶及其會話數(shù)據(jù)的線程使服務器過載隙咸。還有許多額外的特性可以用來充實網(wǎng)站,比如OpenID成洗、驗證和文件上傳支持五督。

Play代碼庫已經(jīng)發(fā)展了十多年,因此你還會發(fā)現(xiàn)類似于對XML的支持的這種古老的功能瓶殃。play既成熟又輕盈充包,這種組合還是比較有特色的。

9、Swagger

構(gòu)建一個API看起來就像編寫一個監(jiān)聽端口的代碼一樣簡單基矮,但是Swagger的開發(fā)人員不這么認為淆储。他們已經(jīng)創(chuàng)建了一個完整的API規(guī)范語言O(shè)penAPI,你可以使用它來說明你的API家浇。這似乎是一個額外的步驟本砰,但是Swagger團隊還提供了將該規(guī)范轉(zhuǎn)換為自動化測試、文檔等的代碼钢悲。

Swagger配置文件中的API很簡單点额,用于實現(xiàn)接口、記錄接口的譬巫,并提供一組工具來測試構(gòu)建在其下的代碼咖楣,甚至還有一種API治理機制。

Swagger是一個api生態(tài)系統(tǒng)芦昔,它不局限于Java诱贿。如果你的團隊遷移到Node.js或其他幾十種語言中的任何一種,都有一個Swagger Codegen模塊將OpenAPI規(guī)范轉(zhuǎn)換成該語言的實現(xiàn)咕缎。

10珠十、Restlet

不同框架之間最大的區(qū)別之一是和其他服務或庫的連接數(shù)量。Restlet項目提供了更大的特性和連接集合凭豪,它已經(jīng)與JavaMail之類的庫集成焙蹭,避免微服務需要對某些郵件服務器使用POP、IMAP或SMTP嫂伞;為防構(gòu)建大量文本索引和元數(shù)據(jù)孔厉,還集成了 Lucene 和 Solr。

Restlet中還有很多特性在持續(xù)開發(fā)帖努。例如撰豺,你不需要使用JSON,因為它可以直接處理XML拼余、CSV污桦、YAML和其他一些文件格式,此外匙监,它還允許用戶從Chrome瀏覽器測試api凡橱。

11、Squash

微服務調(diào)試一直是開發(fā)人員的一大挑戰(zhàn)亭姥,因為這些部件都是松散耦合的稼钩,并且很難跟蹤通過系統(tǒng)所有層的數(shù)據(jù)流。通過使用Squash达罗,可以在運行在Kubernetes集群上的代碼中設(shè)置斷點变抽,然后像本地運行代碼一樣接收IDE中的所有數(shù)據(jù)。Squash還集成了 Node.js 和 Python 運行時

12、Telepresence

調(diào)試的另一個選項是使用Telepresence绍载,它可以為遠程Kubernetes集群上的微服務創(chuàng)建本地代理诡宗。在本地版本中,可以在其中設(shè)置斷點或執(zhí)行本地計算機上可進行的任何操作击儡。

13塔沃、Zipkin

Zipkin用于記錄各種微服務上的事件,允許開發(fā)者收集 Twitter 各個服務上的監(jiān)控數(shù)據(jù)阳谍,并提供查詢接口蛀柴。Zipkin 有 Java 等至少六種語言實現(xiàn)版本,因此可處理多語言系統(tǒng)矫夯。不少框架已經(jīng)通過某種形式集成 Zipkin鸽疾,比如 Spring。

另外本人從事在線教育多年训貌,將自己的資料整合建了一個QQ群制肮,對于有興趣一起交流學習java的初學者可以加群:732976516,里面有大神會給予解答递沪,也會有許多的資源可以供大家學習分享豺鼻,歡迎大家前來一起學習進步!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末款慨,一起剝皮案震驚了整個濱河市儒飒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌檩奠,老刑警劉巖桩了,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異埠戳,居然都是意外死亡井誉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門乞而,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人慢显,你說我怎么就攤上這事爪模。” “怎么了荚藻?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵屋灌,是天一觀的道長。 經(jīng)常有香客問我应狱,道長共郭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮除嘹,結(jié)果婚禮上写半,老公的妹妹穿的比我還像新娘。我一直安慰自己尉咕,他們只是感情好叠蝇,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著年缎,像睡著了一般悔捶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上单芜,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天蜕该,我揣著相機與錄音,去河邊找鬼洲鸠。 笑死堂淡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的坛怪。 我是一名探鬼主播淤齐,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼袜匿!你這毒婦竟也來了更啄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤居灯,失蹤者是張志新(化名)和其女友劉穎祭务,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怪嫌,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡义锥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岩灭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拌倍。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖噪径,靈堂內(nèi)的尸體忽然破棺而出柱恤,到底是詐尸還是另有隱情,我是刑警寧澤找爱,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布梗顺,位于F島的核電站,受9級特大地震影響车摄,放射性物質(zhì)發(fā)生泄漏寺谤。R本人自食惡果不足惜仑鸥,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望变屁。 院中可真熱鬧眼俊,春花似錦、人聲如沸敞贡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽誊役。三九已至获列,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛔垢,已是汗流浹背击孩。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鹏漆,地道東北人巩梢。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像艺玲,于是被迫代替她去往敵國和親括蝠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 曾經(jīng)的服務器領(lǐng)域有許多不同的芯片架構(gòu)和操作系統(tǒng)饭聚,經(jīng)過長期發(fā)展忌警,Java的“一次編譯,到處運行”使得它在服務器領(lǐng)域找...
    java菜閱讀 477評論 1 1
  • 1秒梳、Spring Boot Java構(gòu)建Spring應用程序已經(jīng)有很長一段時間了法绵,Spring Boot是Spri...
    墨雨軒夏閱讀 3,337評論 0 21
  • 1. 你 有沒有遇見過這樣一個人 炎炎夏日為你送來冰涼可口的西瓜荔枝讓你一個人吃到爽 天冷的時候大老遠的只為給你...
    張張_尐Q閱讀 284評論 0 0
  • 一 遍野花草兴垦,低垂下頭徙赢。 鳥兒哀鳴,伴隨左右探越。 趟過泥濘狡赐,從容昂首。 隆隆雷聲扶关,呼呼暴風阴汇。 掀起衣襟数冬,搖晃軀體节槐,踉...
    二維螞蟻閱讀 189評論 0 0
  • 我住19樓C搀庶,頂層。前晚回家開門铜异,黑燈瞎火哥倔,才發(fā)現(xiàn)漏交電費,電表自動跳閘揍庄。又不想太早入睡咆蒿,便找出手電,扶梯直上蚂子,去...
    逸之飄520閱讀 263評論 0 0