- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java中有哪些微服務(wù)框架
這篇文章將為大家詳細講解有關(guān)Java中有哪些微服務(wù)框架,文章內容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
1、Spring Boot
Java構建Spring應用程序已經(jīng)有很長(cháng)一段時(shí)間了,Spring Boot是Spring的一個(gè)特定版本,它通過(guò)對配置細節的處理,使微服務(wù)構建更加簡(jiǎn)便。創(chuàng )建Spring Boot旨在自啟動(dòng)任何類(lèi)型的Spring項目,而不僅僅是微服務(wù)。應用程序完成后,Spring Boot將在web中混合,并輸出一個(gè)JAR文件,JVM除外。你可以將其視為原始Docker容器。這也是許多負責構建微服務(wù)的開(kāi)發(fā)者都非常喜歡Spring Boot的原因。
使用 Spring 開(kāi)發(fā)微服務(wù)遵循與 Web 應用相同的 MVC 理念。該框架享有多年Java開(kāi)發(fā)中建立的所有深度連接,包括所有主要和次要數據存儲、LDAP服務(wù)器和Apache Kafka等消息傳遞工具的集成。還有許多用于維護運行服務(wù)器集合的小特性,比如Spring Vault,這是一種用于維護生產(chǎn)環(huán)境中服務(wù)器所需的密碼的工具。所有這些優(yōu)點(diǎn)都說(shuō)明了為什么Java程序員多年來(lái)一直喜歡Spring Boot的原因。
2、Eclipse MicroProfile
2016年,Java Enterprise社區決定清理Java Enterprise Edition中的內容,以便人們可以使用經(jīng)典部件構建簡(jiǎn)單的微服務(wù)。他們去除了大量的庫,但保留了處理REST請求,解析JSON和管理依賴(lài)注入的功能代碼,最終被稱(chēng)為Eclipse MicroProfile,其特性為快速而簡(jiǎn)單。
從那以后,MicroProfile社區制定了一個(gè)協(xié)議,每季度發(fā)布一個(gè)新版本,同時(shí)添加新代碼以保持微服務(wù)平穩安全地運行。任何Java EE開(kāi)發(fā)者都會(huì )非常熟悉開(kāi)發(fā)過(guò)程和代碼結構,而且還吧配置麻煩給省去了。
3、Dropwizard
當Dropwizard在2011年出現時(shí),Dropwizard框架為開(kāi)發(fā)者提供了一個(gè)非常簡(jiǎn)單的模型,里面包含了許多重要的模塊,你可以根據需求添加一些業(yè)務(wù)邏輯,或者配置其他內容,***你會(huì )發(fā)現JAR文件非常小,并且能夠快速啟動(dòng)。
Dropwizard***的限制可能是缺乏依賴(lài)注入。如果你希望使用依賴(lài)項注入來(lái)保持代碼的整潔和松散耦合,則需要自己添加庫,這點(diǎn)和Spring不同,但是現在Dropwizard也支持大多數功能,包括日志記錄、健康檢查和提供彈性代碼。
4、WildFly Thorntail
Red Hat的工作人員使用一個(gè)靈活的配置工具構建了他們自己的MicroProfile版本。該框架最初被稱(chēng)為WildFly Swarm,但后來(lái)被重新命名為WildFly Thorntail,Thorntail通過(guò)指定所需的特性來(lái)幫助您創(chuàng )建自己的Maven構建文件,然后Maven負責組裝所有東西。
Thorntail還將通過(guò)掃描代碼來(lái)檢測組件,也可以使用BOM(材料清單)文件覆蓋。當它全部運行時(shí),Thorntail將刪除Java Enterprise Edition中不使用的部分,并創(chuàng )建一個(gè)很小的JAR文件,可以使用一個(gè)命令進(jìn)行部署——這是一個(gè)非常巧妙的特性,允許Thorntail項目將其稱(chēng)為Uber-JAR。這是遵循Java Enterprise Edition的另一種傳統方法,它不會(huì )保留所有沉重的負擔。
5、Helidon
Helidon去除了Java Enterprise Edition,保留輕量級的、基于servlet的核心,并吸引了大量的粉絲。在Helidon的,開(kāi)發(fā)人員從Netty,并添加代碼進(jìn)行路由和錯誤處理。它采用了代碼的兩個(gè)基本模型,即所謂的SE和MP版本。
Node 開(kāi)發(fā)者可能更熟悉Helidon SE,因為其具有由句點(diǎn)連接的函數調用。使用JAX-RS的Java程序員則更熟悉Helidon MP。此外,Helidon還集成了一些備受好評的工具,這些都是它能夠吸引大量開(kāi)發(fā)者的原因。
6、Cricket
另外一個(gè)用于快速API開(kāi)發(fā)框架的是Cricket。Cricket很小,盡管它包括許多額外的功能,如鍵值數據存儲,以避免連接數據庫和調度程序來(lái)控制后臺重復處理。沒(méi)有添加復雜性或其他依賴(lài)項,因此很容易將代碼添加到Cricket并啟動(dòng)獨立的微服務(wù)。
7、Jersey
開(kāi)發(fā)web服務(wù)的標準方法之一是RESTful web服務(wù)的Java API(又名JAX-RS),這是Jersey框架中實(shí)現的通用規范。這種方法主要依賴(lài)于使用注釋來(lái)指定路徑映射和返回細節。從參數解析到JSON打包的所有其他內容都由Jersey處理。
Jersey的主要優(yōu)點(diǎn)是它實(shí)現了JAX-RS標準,這個(gè)特性非常受歡迎,一些開(kāi)發(fā)人員習慣將Jersey與Spring Boot結合在一起使用。
8、Play
體驗JVM跨語(yǔ)言能力的***方式之一是使用Play框架,這是可以與Java或任何其他JVM語(yǔ)言兼容的。它的基礎非?,F代,具有異步、無(wú)狀態(tài)的模型,不會(huì )讓試圖跟蹤用戶(hù)及其會(huì )話(huà)數據的線(xiàn)程使服務(wù)器過(guò)載。還有許多額外的特性可以用來(lái)充實(shí)網(wǎng)站,比如OpenID、驗證和文件上傳支持。
Play代碼庫已經(jīng)發(fā)展了十多年,因此你還會(huì )發(fā)現類(lèi)似于對XML的支持的這種古老的功能。play既成熟又輕盈,這種組合還是比較有特色的。
9、Swagger
構建一個(gè)API看起來(lái)就像編寫(xiě)一個(gè)監聽(tīng)端口的代碼一樣簡(jiǎn)單,但是Swagger的開(kāi)發(fā)人員不這么認為。他們已經(jīng)創(chuàng )建了一個(gè)完整的API規范語(yǔ)言OpenAPI,你可以使用它來(lái)說(shuō)明你的API。這似乎是一個(gè)額外的步驟,但是Swagger團隊還提供了將該規范轉換為自動(dòng)化測試、文檔等的代碼。
Swagger配置文件中的API很簡(jiǎn)單,用于實(shí)現接口、記錄接口的,并提供一組工具來(lái)測試構建在其下的代碼,甚至還有一種API治理機制。
Swagger是一個(gè)api生態(tài)系統,它不局限于Java。如果你的團隊遷移到Node.js或其他幾十種語(yǔ)言中的任何一種,都有一個(gè)Swagger Codegen模塊將OpenAPI規范轉換成該語(yǔ)言的實(shí)現。
10、Restlet
不同框架之間***的區別之一是和其他服務(wù)或庫的連接數量。Restlet項目提供了更大的特性和連接集合,它已經(jīng)與JavaMail之類(lèi)的庫集成,避免微服務(wù)需要對某些郵件服務(wù)器使用POP、IMAP或SMTP;為防構建大量文本索引和元數據,還集成了 Lucene 和 Solr。
Restlet中還有很多特性在持續開(kāi)發(fā)。例如,你不需要使用JSON,因為它可以直接處理XML、CSV、YAML和其他一些文件格式,此外,它還允許用戶(hù)從Chrome瀏覽器測試api。
11、Squash
微服務(wù)調試一直是開(kāi)發(fā)人員的一大挑戰,因為這些部件都是松散耦合的,并且很難跟蹤通過(guò)系統所有層的數據流。通過(guò)使用Squash,可以在運行在Kubernetes集群上的代碼中設置斷點(diǎn),然后像本地運行代碼一樣接收IDE中的所有數據。Squash還集成了 Node.js 和 Python 運行時(shí)
12、Telepresence
調試的另一個(gè)選項是使用Telepresence,它可以為遠程Kubernetes集群上的微服務(wù)創(chuàng )建本地代理。在本地版本中,可以在其中設置斷點(diǎn)或執行本地計算機上可進(jìn)行的任何操作。
13、Zipkin
Zipkin用于記錄各種微服務(wù)上的事件,允許開(kāi)發(fā)者收集 Twitter 各個(gè)服務(wù)上的監控數據,并提供查詢(xún)接口。Zipkin 有 Java 等至少六種語(yǔ)言實(shí)現版本,因此可處理多語(yǔ)言系統。不少框架已經(jīng)通過(guò)某種形式集成 Zipkin,比如 Spring。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站