技術(shù)專家總結(jié):13個(gè)最可靠、門的Java微服務(wù)框架_第1頁
技術(shù)專家總結(jié):13個(gè)最可靠、門的Java微服務(wù)框架_第2頁
技術(shù)專家總結(jié):13個(gè)最可靠、門的Java微服務(wù)框架_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

技術(shù)專家總結(jié):13個(gè)最可靠、門的Java微服務(wù)框架

曾經(jīng)的服務(wù)器領(lǐng)域有很多不同的芯片架構(gòu)和操作系統(tǒng),經(jīng)過長期進(jìn)展,Java的“一次編譯,處處運(yùn)行”使得它在服務(wù)器領(lǐng)域找到一席之地,成為程序員們的最愛。本文,我們將和大家共享13個(gè)牢靠的Java微服務(wù)架構(gòu)~

1、SpringBoot

Java構(gòu)建Spring應(yīng)用程序已經(jīng)有很長一段時(shí)間了,SpringBoot是Spring的一個(gè)特定版本,它通過對配置細(xì)節(jié)的處理,使微服務(wù)構(gòu)建更加簡便。創(chuàng)建SpringBoot旨在自啟動任何類型的Spring項(xiàng)目,而不僅僅是微服務(wù)。應(yīng)用程序完成后,SpringBoot將在web服務(wù)器中混合,并輸出一個(gè)JAR文件,JVM除外。你可以將其視為原始Docker容器。這也是很多負(fù)責(zé)構(gòu)建微服務(wù)的開發(fā)者都特別喜愛SpringBoot的緣由。

使用Spring開發(fā)微服務(wù)遵循與Web應(yīng)用相同的MVC理念。該框架享有多年Java開發(fā)中建立的全部深度連接,包括全部主要和次要數(shù)據(jù)存儲、LDAP服務(wù)器和ApacheKafka等消息傳遞工具的集成。還有很多用于維護(hù)運(yùn)行服務(wù)器集合的小特性,比如SpringVault,這是一種用于維護(hù)生產(chǎn)環(huán)境中服務(wù)器所需的密碼的工具。全部這些優(yōu)點(diǎn)都說明白為什么Java程序員多年來始終喜愛SpringBoot的緣由。

2、EclipseMicroProfile

2024年,JavaEnterprise社區(qū)打算清理JavaEnterpriseEdition中的內(nèi)容,以便人們可以使用經(jīng)典部件構(gòu)建簡潔的微服務(wù)。他們?nèi)コ舜罅康膸?,但保留了處理REST懇求,解析JSON和管理依靠注入的功能代碼,最終被稱為EclipseMicroProfile,其特性為快速而簡潔。

從那以后,MicroProfile社區(qū)制定了一個(gè)協(xié)議,每季度發(fā)布一個(gè)新版本,同時(shí)添加新代碼以保持微服務(wù)平穩(wěn)平安地運(yùn)行。任何JavaEE開發(fā)者都會特別熟識開發(fā)過程和代碼結(jié)構(gòu),而且還吧配置麻煩給省去了。

3、Dropwizard

當(dāng)Dropwizard在2024年消失時(shí),Dropwizard框架為開發(fā)者供應(yīng)了一個(gè)特別簡潔的模型,里面包含了很多重要的模塊,你可以依據(jù)需求添加一些業(yè)務(wù)規(guī)律,或者配置其他內(nèi)容,最終你會發(fā)覺JAR文件特別小,并且能夠快速啟動。

Dropwizard最大的限制可能是缺乏依靠注入。假如你盼望使用依靠項(xiàng)注入來保持代碼的干凈和松散耦合,則需要自己添加庫,這點(diǎn)和Spring不同,但是現(xiàn)在Dropwizard也支持大多數(shù)功能,包括日志記錄、健康檢查和供應(yīng)彈性代碼。

4、WildFlyThorntail

RedHat的工作人員使用一個(gè)敏捷的配置工具構(gòu)建了他們自己的MicroProfile版本。該框架最初被稱為WildFlySwarm,但后來被重新命名為WildFlyThorntail,Thorntail通過指定所需的特性來關(guān)心您創(chuàng)建自己的Maven構(gòu)建文件,然后Maven負(fù)責(zé)組裝全部東西。

Thorntail還將通過掃描代碼來檢測組件,也可以使用BOM(材料清單)文件掩蓋。當(dāng)它全部運(yùn)行時(shí),Thorntail將刪除JavaEnterpriseEdition中不使用的部分,并創(chuàng)建一個(gè)很小的JAR文件,可以使用一個(gè)命令進(jìn)行部署——這是一個(gè)特別奇妙的特性,允許Thorntail項(xiàng)目將其稱為Uber-JAR。這是遵循JavaEnterpriseEdition的另一種傳統(tǒng)方法,它不會保留全部沉重的負(fù)擔(dān)。

5、Helidon

Helidon去除了JavaEnterpriseEdition,保留輕量級的、基于servlet的核心,并吸引了大量的粉絲。在Helidon的,開發(fā)人員從Netty,并添加代碼進(jìn)行路由和錯(cuò)誤處理。它采納了代碼的兩個(gè)基本模型,即所謂的SE和MP版本。

Node開發(fā)者可能更熟識HelidonSE,由于其具有由句點(diǎn)連接的函數(shù)調(diào)用。使用JAX-RS的Java程序員則更熟識HelidonMP。此外,Helidon還集成了一些備受好評的工具,這些都是它能夠吸引大量開發(fā)者的緣由。

6、Cricket

另外一個(gè)用于快速API開發(fā)框架的是Cricket。Cricket很小,盡管它包括很多額外的功能,如鍵值數(shù)據(jù)存儲,以避開連接數(shù)據(jù)庫和調(diào)度程序來掌握后臺重復(fù)處理。沒有添加簡單性或其他依靠項(xiàng),因此很簡單將代碼添加到Cricket并啟動獨(dú)立的微服務(wù)。

7、Jersey

開發(fā)web服務(wù)的標(biāo)準(zhǔn)方法之一是RESTfulweb服務(wù)的JavaAPI(又名JAX-RS),這是Jersey框架中實(shí)現(xiàn)的通用規(guī)范。這種方法主要依靠于使用解釋來指定路徑映射和返回細(xì)節(jié)。從參數(shù)解析到JSON打包的全部其他內(nèi)容都由Jersey處理。

Jersey的主要優(yōu)點(diǎn)是它實(shí)現(xiàn)了JAX-RS標(biāo)準(zhǔn),這個(gè)特性特別受歡迎,一些開發(fā)人員習(xí)慣將Jersey與SpringBoot結(jié)合在一起使用。

8、Play

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

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

9、Swagger

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

Swagger配置文件中的API很簡潔,用于實(shí)現(xiàn)接口、記錄接口的,并供應(yīng)一組工具來測試構(gòu)建在其下的代碼,甚至還有一種API治理機(jī)制。

Swagger是一個(gè)api生態(tài)系統(tǒng),它不局限于Java。假如你的團(tuán)隊(duì)遷移到Node.js或其他幾十種語言中的任何一種,都有一個(gè)SwaggerCodegen模塊將OpenAPI規(guī)范轉(zhuǎn)換成該語言的實(shí)現(xiàn)。

10、Restlet

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

Restlet中還有許多特性在持續(xù)開發(fā)。例如,你不需要使用JSON,由于它可以直接處理XML、CSV、YAML和其他一些文件格式,此外,它還允許用戶從Chrome掃瞄器測試api。

11、Squash

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

12、Telepresence

調(diào)試的另一個(gè)選項(xiàng)是使用Telepresence,它可以為遠(yuǎn)程Kubernetes集群上的微服務(wù)創(chuàng)建本地代理。在本地版本中,可以在其中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論