japanese少妇高潮潮喷 -精品国产AV一区二区三区-麻豆av一区二区三区久久-国产精品无码专区

種草了!分享13個靠譜的Java微服務(wù)框架.

發(fā)布時間:2025-05-15 點(diǎn)擊:12
曾經(jīng)的服務(wù)器領(lǐng)域有許多不同的芯片架構(gòu)和操作系統(tǒng),經(jīng)過長期發(fā)展,java的“一次編譯,到處運(yùn)行”使得它在服務(wù)器領(lǐng)域找到一席之地,成為程序員們的最愛。本文,小編將和大家分享13個靠譜的java微服務(wù)架構(gòu)。
1、spring boot
java構(gòu)建spring應(yīng)用程序已經(jīng)有很長一段時間了,spring boot是spring的一個特定版本,它通過對配置細(xì)節(jié)的處理,使微服務(wù)構(gòu)建更加簡便。創(chuàng)建spring boot旨在自啟動任何類型的spring項(xiàng)目,而不僅僅是微服務(wù)。應(yīng)用程序完成后,spring boot將在web服務(wù)器中混合,并輸出一個jar文件,jvm除外。你可以將其視為原始docker容器。這也是許多負(fù)責(zé)構(gòu)建微服務(wù)的開發(fā)者都非常喜歡spring boot的原因。
使用 spring 開發(fā)微服務(wù)遵循與 web 應(yīng)用相同的 mvc 理念。該框架享有多年java開發(fā)中建立的所有深度連接,包括所有主要和次要數(shù)據(jù)存儲、ldap服務(wù)器和apache kafka等消息傳遞工具的集成。還有許多用于維護(hù)運(yùn)行服務(wù)器集合的小特性,比如spring vault,這是一種用于維護(hù)生產(chǎn)環(huán)境中服務(wù)器所需的密碼的工具。所有這些優(yōu)點(diǎn)都說明了為什么java程序員多年來一直喜歡spring boot的原因。
2、eclipse microprofile
2016年,java enterprise社區(qū)決定清理java enterprise edition中的內(nèi)容,以便人們可以使用經(jīng)典部件構(gòu)建簡單的微服務(wù)。他們?nèi)コ舜罅康膸欤A袅颂幚韗est請求,解析json和管理依賴注入的功能代碼,最終被稱為eclipse microprofile,其特點(diǎn)快速而簡單。
從那以后,microprofile社區(qū)制定了一個協(xié)議,每季度發(fā)布一個新版本,同時添加新代碼以保持微服務(wù)平穩(wěn)安全地運(yùn)行。任何java ee開發(fā)者都會非常熟悉開發(fā)過程和代碼結(jié)構(gòu),而且還吧配置麻煩給省去了。
3、dropwizard
當(dāng)dropwizard在2011年出現(xiàn)時,dropwizard框架為開發(fā)者提供了一個非常簡單的模型,里面包含了許多重要的模塊,你可以根據(jù)需求添加一些業(yè)務(wù)邏輯,或者配置其他內(nèi)容,最后你會發(fā)現(xiàn)jar文件非常小,并且能夠快速啟動。
dropwizard大的限制可能是缺乏依賴注入。如果你希望使用依賴項(xiàng)注入來保持代碼的整潔和松散耦合,則需要自己添加庫,這點(diǎn)和spring不同,但是現(xiàn)在dropwizard也支持大多數(shù)功能,包括日志記錄、健康檢查和提供彈性代碼。
4、wildfly thorntail
red hat的工作人員使用一個靈活的配置工具構(gòu)建了他們自己的microprofile版本。該框架最初被稱為wildfly swarm,但后來被重新命名為wildfly thorntail,thorntail通過指定所需的特性來幫助您創(chuàng)建自己的maven構(gòu)建文件,然后maven負(fù)責(zé)組裝所有東西。
thorntail還將通過掃描代碼來檢測組件,也可以使用bom(材料清單)文件覆蓋。當(dāng)它全部運(yùn)行時,thorntail將刪除java enterprise edition中不使用的部分,并創(chuàng)建一個很小的jar文件,可以使用一個命令進(jìn)行部署——這是一個非常巧妙的特性,允許thorntail項(xiàng)目將其稱為uber-jar。這是遵循java enterprise edition的另一種傳統(tǒng)方法,它不會保留所有沉重的負(fù)擔(dān)。
5、helidon
helidon去除了java enterprise edition,保留輕量級的、基于servlet的核心,并吸引了大量的粉絲。在helidon的,開發(fā)人員從netty,并添加代碼進(jìn)行路由和錯誤處理。它采用了代碼的兩個基本模型,即所謂的se和mp版本。
node 開發(fā)者可能更熟悉helidon se,因?yàn)槠渚哂杏删潼c(diǎn)連接的函數(shù)調(diào)用。使用jax-rs的java程序員則更熟悉helidon mp。此外,helidon還集成了一些備受好評的工具,這些都是它能夠吸引大量開發(fā)者的原因。
6、cricket
另外一個用于快速api開發(fā)框架的是cricket。cricket很小,盡管它包括許多額外的功能,如鍵值數(shù)據(jù)存儲,以避免連接數(shù)據(jù)庫和調(diào)度程序來控制后臺重復(fù)處理。沒有添加復(fù)雜性或其他依賴項(xiàng),因此很容易將代碼添加到cricket并啟動獨(dú)立的微服務(wù)。
7、jersey
開發(fā)web服務(wù)的標(biāo)準(zhǔn)方法之一是restful web服務(wù)的java api(又名jax-rs),這是jersey框架中實(shí)現(xiàn)的通用規(guī)范。這種方法主要依賴于使用注釋來指定路徑映射和返回細(xì)節(jié)。從參數(shù)解析到j(luò)son打包的所有其他內(nèi)容都由jersey處理。
jersey的主要優(yōu)點(diǎn)是它實(shí)現(xiàn)了jax-rs標(biāo)準(zhǔn),這個特性非常受歡迎,一些開發(fā)人員習(xí)慣將jersey與spring boot結(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)發(fā)展了十多年,因此你還會發(fā)現(xiàn)類似于對xml的支持的這種古老的功能。play既成熟又輕盈,這種組合還是比較有特色的。
9、swagger
構(gòu)建一個api看起來就像編寫一個監(jiān)聽端口的代碼一樣簡單,但是swagger的開發(fā)人員不這么認(rèn)為。他們已經(jīng)創(chuàng)建了一個完整的api規(guī)范語言openapi,你可以使用它來說明你的api。這似乎是一個額外的步驟,但是swagger團(tuán)隊(duì)還提供了將該規(guī)范轉(zhuǎn)換為自動化測試、文檔等的代碼。
swagger配置文件中的api很簡單,用于實(shí)現(xiàn)接口、記錄接口的,并提供一組工具來測試構(gòu)建在其下的代碼,甚至還有一種api治理機(jī)制。
swagger是一個api生態(tài)系統(tǒng),它不局限于java。如果你的團(tuán)隊(duì)遷移到node.js或其他幾十種語言中的任何一種,都有一個swagger codegen模塊將openapi規(guī)范轉(zhuǎn)換成該語言的實(shí)現(xiàn)。
10、restlet
不同框架之間大的區(qū)別之一是和其他服務(wù)或庫的連接數(shù)量。restlet項(xiàng)目提供了更大的特性和連接集合,它已經(jīng)與javamail之類的庫集成,避免微服務(wù)需要對某些郵件服務(wù)器使用pop、imap或smtp;為防構(gòu)建大量文本索引和元數(shù)據(jù),還集成了 lucene 和 solr。
restlet中還有很多特性在持續(xù)開發(fā)。例如,你不需要使用json,因?yàn)樗梢灾苯犹幚韝ml、csv、yaml和其他一些文件格式,此外,它還允許用戶從chrome瀏覽器測試api。
11、squash
微服務(wù)調(diào)試一直是開發(fā)人員的一大挑戰(zhàn),因?yàn)檫@些部件都是松散耦合的,并且很難跟蹤通過系統(tǒng)所有層的數(shù)據(jù)流。通過使用squash,可以在運(yùn)行在kubernetes集群上的代碼中設(shè)置斷點(diǎn),然后像本地運(yùn)行代碼一樣接收ide中的所有數(shù)據(jù)。squash還集成了 node.js 和 python 運(yùn)行時
12、telepresence
調(diào)試的另一個選項(xiàng)是使用telepresence,它可以為遠(yuǎn)程kubernetes集群上的微服務(wù)創(chuàng)建本地代理。在本地版本中,可以在其中設(shè)置斷點(diǎn)或執(zhí)行本地計(jì)算機(jī)上可進(jìn)行的任何操作。
13、zipkin
zipkin用于記錄各種微服務(wù)上的事件,允許開發(fā)者收集 twitter 各個服務(wù)上的監(jiān)控?cái)?shù)據(jù),并提供查詢接口。zipkin 有 java 等至少六種語言實(shí)現(xiàn)版本,因此可處理多語言系統(tǒng)。不少框架已經(jīng)通過某種形式集成 zipkin,比如 spring。


企業(yè)建設(shè)中怎么做好seo優(yōu)化
怎樣防止SEO關(guān)鍵詞排名下降
建設(shè)一個響應(yīng)式網(wǎng)站有什么好處和缺點(diǎn)
多語言網(wǎng)站到底有什么用?
不得不知理解網(wǎng)站SEO優(yōu)化專員的職責(zé)及能力要求!
網(wǎng)站設(shè)計(jì)中如何使用黑色
網(wǎng)頁設(shè)計(jì)重點(diǎn)在哪些方面?怎樣才能讓網(wǎng)站更有吸引力?
網(wǎng)絡(luò)營銷的推廣模式