下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、針國(guó)旦聯(lián)網(wǎng)前沿技術(shù)人才搖管13個(gè)最熱開(kāi)源微服務(wù)Java 框架本文列舉了 13大可在JVM上構(gòu)建可靠輕量級(jí)微服務(wù)的Java框架經(jīng)過(guò)長(zhǎng)期發(fā)展,Java最終在服務(wù)器領(lǐng)域找到一席之地,不同芯片架構(gòu)和操作系統(tǒng)對(duì)一次 編寫(xiě),到處運(yùn)行的承諾很感興趣。與此同時(shí),JavaScript 一直在挑戰(zhàn)Java的地位,前 者因?yàn)楦咄掏铝亢退俣瓤旖庸芰舜笈W(wǎng)絡(luò)流量。Node.js不僅提高了速度和資源效率,還 簡(jiǎn)化了客戶(hù)端和服務(wù)器運(yùn)行代碼的復(fù)雜度。盡管競(jìng)爭(zhēng)激烈,許多負(fù)責(zé)微服務(wù)架構(gòu)開(kāi)發(fā)的團(tuán)隊(duì)依舊在繼續(xù)使用Java,這可能有多方面原 因,比如Java經(jīng)過(guò)多年測(cè)試,Sun倉(cāng)腱了穩(wěn)定的虛擬機(jī),Oracle大力培養(yǎng)和支持,用戶(hù) 使用
2、習(xí)慣等。本文列舉了 Java開(kāi)發(fā)人員正在使用的13大開(kāi)源項(xiàng)目,這些框架構(gòu)成各地微服務(wù)架構(gòu)基礎(chǔ)。Spring BootJava 一直在構(gòu)建Spring應(yīng)用程序,Spring Boot是Spring的特定版本,通過(guò)對(duì)配置細(xì)節(jié)進(jìn)行處理,Spring Boot可以自動(dòng)化微服務(wù)配置過(guò)程,其創(chuàng)建是為了自啟動(dòng)所有類(lèi)型Spring項(xiàng)目,而不僅僅是微服務(wù)。一旦應(yīng)用程序完成,Spring Boot會(huì)混合在Web月艮務(wù)器中,并發(fā)出JAR文件,可以想象成原始Docker容器。使用Spring開(kāi)發(fā)微服務(wù)遵循與Web應(yīng)用相同的MVC理念。該框架享有多年Java開(kāi) 發(fā)所構(gòu)建的深層連接,包括所有主要和次要數(shù)據(jù)存儲(chǔ)LDAP服務(wù)
3、器以及Apache Kafka等 消息傳遞工具集成,眾多維護(hù)運(yùn)行服務(wù)器集合的小功能,比如Spring Vault,維護(hù)生產(chǎn)服務(wù)器所需密碼等。Eclipse MicroProfile 2016年,Java Enterprise社區(qū)決定清除Java Enterprise Edition中的部分內(nèi)容,以便用戶(hù)可使用經(jīng)典部件構(gòu)建簡(jiǎn)單微服務(wù)。在去掉大量庫(kù)之后,社區(qū)保留了處理REST請(qǐng)求、 解析JSON和管理依賴(lài)注入等功能,最終版本被稱(chēng)為Eclipse MicroProfile,其特點(diǎn)是快速且簡(jiǎn)單。從那時(shí)起,MicroProfile社區(qū)就制定了一個(gè)協(xié)議,每季度發(fā)布一次新版本,同時(shí)添加新 代碼以保持微服務(wù)平
4、穩(wěn)安全運(yùn)行。對(duì)于使用Java EE的人來(lái)說(shuō),開(kāi)發(fā)過(guò)程和代碼結(jié)構(gòu)將非常熟悉,但無(wú)休止的配置麻煩已被去除。Dropwizard2011年,Dropwizard問(wèn)世并開(kāi)啟Java Enterprise開(kāi)發(fā)人員的視野,其提供非常簡(jiǎn)單的開(kāi)發(fā)模型,用戶(hù)可添加業(yè)務(wù)邏輯,并根據(jù)慣例配置其他內(nèi)容。整個(gè)JAR文件非常苗條,并 且可以快速啟動(dòng)。Dropwizard的最大限制可能是缺乏依賴(lài)注入如果想使用依賴(lài)注入保持代碼干凈和松散耦合,用戶(hù)需要自己添加庫(kù)。與Spring不同,沒(méi)有Dropwizard方法可以做到這一點(diǎn)。但 是,Dropwizard支持大多數(shù)功能,比如日志記錄、健康檢查和提供彈性代碼。WildFly Th
5、orntailRed Hat用戶(hù)使用靈活的配置工具構(gòu)建MicroProfile版本,該框架最初被稱(chēng)為WildFlySwarm,隨后被重命名為T(mén)horntail。只需在Thorntail上指定需要功能,用戶(hù)即可創(chuàng)建Maven構(gòu)建文件,然后由Maven負(fù)責(zé)組裝一切。Thorntail通過(guò)掃描代碼檢測(cè)主要組件,也可使用BOM文件覆蓋。全部運(yùn)行時(shí),Thorntail將刪除不被使用的Java企業(yè)版并創(chuàng)建小型JAR文件,可以使用命令部署。這是另一種遵 循Java企業(yè)版?zhèn)鹘y(tǒng)方法,而不保留沉重包袱的框架。HelidonHelidon架構(gòu)剔除了 Java Enterprise Edition,保留基于servl
6、et的輕量級(jí)核心。在Helidon中,開(kāi)發(fā)人員可使用Netty并添加代碼進(jìn)行路由和錯(cuò)誤處理。它采用兩種基本代碼模型,即SE和MP版本。Node.js程序員會(huì)對(duì)Helidon SE非常熟悉,因?yàn)槠渚哂杏删潼c(diǎn)連接的長(zhǎng)鏈函數(shù)調(diào)用。對(duì)于使用JAX-RS的Java程序員而言,Helidon MP看起來(lái)會(huì)很熟悉,Helidon集成了一些備受好評(píng)的工具,用于檢查服務(wù)器運(yùn)行狀況或通過(guò)微服務(wù)跟蹤數(shù)據(jù)流。CricketCricket是一個(gè)快速API開(kāi)發(fā)框架,雖然小,但包含相對(duì)豐富的功能,比如鍵值數(shù)據(jù)存儲(chǔ),以節(jié)省連接數(shù)據(jù)庫(kù)和調(diào)度程序,控制重復(fù)的后臺(tái)處理。沒(méi)有其他依賴(lài)項(xiàng)增加復(fù)雜性或鎖定, 因此將代碼添加到Cricke
7、t并啟動(dòng)獨(dú)立微服務(wù)非常容易。Jersey開(kāi)發(fā)Web月服務(wù)的標(biāo)準(zhǔn)之一是用于RESTful Web月服務(wù)的Java API (又名JAX-RS ),這是一個(gè)已在Jersey框架中實(shí)現(xiàn)的通用規(guī)范。該方法在很大程度上取決于使用注釋來(lái)指定路 徑映射和返回詳細(xì)信息。解析參數(shù)和打包JSON其他內(nèi)容,Jersey均可處理。Jersey的主要優(yōu)點(diǎn)是實(shí)現(xiàn)JAX-RS標(biāo)準(zhǔn),部分開(kāi)發(fā)人員也會(huì)將Jersey和Spring Boot結(jié)合在一起使用。Play體驗(yàn)JVM跨語(yǔ)言功能的最佳方式之一是用Play框架,這是與Java或其他JVM語(yǔ)言 鏈接的Scala代碼。該代碼非?,F(xiàn)代,具有異步、無(wú)狀態(tài)模型等,不會(huì)使服務(wù)器過(guò)載,沒(méi)
8、有無(wú)休止的線(xiàn)程試圖跟蹤用戶(hù)及會(huì)話(huà)數(shù)據(jù)。Play有一些額外功能可用于充實(shí)網(wǎng)站,比如 OpenID、驗(yàn)證和文件上傳支持。Swagger構(gòu)建API可能看起來(lái)像編寫(xiě)偵聽(tīng)端口并提供答案的代碼一樣簡(jiǎn)單,但Swagger開(kāi)發(fā)人員 不會(huì)同意此說(shuō)法。他們創(chuàng)建了名為OpenAPI的完整API規(guī)范語(yǔ)言,Swagger團(tuán)隊(duì)提供 將此規(guī)范轉(zhuǎn)換為自動(dòng)化測(cè)試和文檔等的代碼。Swagger配置文件對(duì)API非常簡(jiǎn)單,可用于實(shí)現(xiàn)并記錄接口行為,提供工具測(cè)試在其下 構(gòu)建的代碼,此外,提供API治理機(jī)制。Swagger是API的生態(tài)系統(tǒng),并且不局限于 Java。如果團(tuán)隊(duì)轉(zhuǎn)移到Node.js或其他語(yǔ)言,則會(huì)有Swagger Codeg
9、en模塊等待將 OpenAPI規(guī)范轉(zhuǎn)換為該語(yǔ)言的實(shí)現(xiàn)。Restlet框架之間的較大差異之一是與其他服務(wù)和庫(kù)之間的連接數(shù)。Restlet是可提供最大功能和連 接集合的項(xiàng)目之一。為防微服務(wù)對(duì)郵件服務(wù)器接收POP,IMAP或者SMTP,Restlet集 成了 JavaMail庫(kù);為防構(gòu)建大量文本索引和元數(shù)據(jù),Restlet集成了 Lucene和Solr。Restlet不需要使用JSON,因?yàn)榇a可以處理XML、CSV、YAML等多種文件格式,還可獲得用于構(gòu)建響應(yīng)模板的多個(gè)不同選項(xiàng)。此外,Restlet客戶(hù)端允許在Chrome瀏覽器 測(cè)試API。Squash因?yàn)椴考缮Ⅰ詈锨液茈y跟蹤通過(guò)系統(tǒng)所有層的數(shù)據(jù)流,因此調(diào)試微服務(wù)一直是個(gè)難題。Squash允許在Kubernetes集群運(yùn)行代碼中設(shè)置斷點(diǎn),在IDE接收所有數(shù)據(jù),就好像本地運(yùn)行代碼一樣。Squash還集成了 Node.js和Python運(yùn)行時(shí),以防微服務(wù)集合沒(méi)有使用Java代碼。TelepresenceTelepresence是另一個(gè)調(diào)試選擇,可為遠(yuǎn)程Kubernetes集群微服務(wù)創(chuàng)建本地代理,對(duì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025航空器材和軍工行業(yè)市場(chǎng)供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025航空發(fā)動(dòng)機(jī)熱端部件制造業(yè)行業(yè)現(xiàn)狀技術(shù)創(chuàng)新競(jìng)爭(zhēng)態(tài)勢(shì)發(fā)展前景研究
- 財(cái)稅政策解讀與中小企業(yè)應(yīng)對(duì)方案
- 多維視角下長(zhǎng)三角城市群內(nèi)部經(jīng)濟(jì)關(guān)系的實(shí)證剖析與協(xié)同發(fā)展研究
- 老年防詐騙課件教學(xué)
- 挖子機(jī)課件教學(xué)課件
- 指紋課件教學(xué)
- 指揮角色變位置課件
- 抓捕培訓(xùn)課件
- 執(zhí)行力課件模板
- 汝瓷介紹教學(xué)課件
- 2025年大學(xué)《材料設(shè)計(jì)科學(xué)與工程-材料設(shè)計(jì)實(shí)驗(yàn)技術(shù)》考試備考題庫(kù)及答案解析
- 現(xiàn)當(dāng)代文學(xué)-蘇童《妻妾成群》文檔
- 高中數(shù)學(xué)公式大全(必修-+-選修)
- 幼兒園消防安全培訓(xùn)知識(shí)培訓(xùn)
- 合作蛋雞養(yǎng)殖合同范本
- 2025年工會(huì)社會(huì)工作者招聘筆試題目及解析答案
- 2025年低空經(jīng)濟(jì)「無(wú)人機(jī)企業(yè)」案例分析與發(fā)展策略報(bào)告
- TSG 31-2025 工業(yè)管道安全技術(shù)規(guī)程
- 超濾膜設(shè)備安裝施工方案
- 骨與軟組織腫瘤、黑素瘤試題及答案
評(píng)論
0/150
提交評(píng)論