曾經(jīng)的服務(wù)器領(lǐng)域有許多不同的芯片架構(gòu)和操作系統(tǒng),經(jīng)過(guò)長(zhǎng)期發(fā)展,J***a的“一次編譯,到處運(yùn)行”使得它在服務(wù)器領(lǐng)域找到一席之地,成為程序員們的***愛
本文,我們將和大家分享13個(gè)可靠的J***a微服務(wù)架構(gòu)
1、Spring Boot
J***a構(gòu)建Spring應(yīng)用程序已經(jīng)有很長(zhǎng)一段時(shí)間了,Spring Boot是Spring的一個(gè)特定版本,它通過(guò)對(duì)配置細(xì)節(jié)的處理,使微服務(wù)構(gòu)建更加簡(jiǎn)便。創(chuàng)建Spring Boot旨在自啟動(dòng)任何類型的Spring項(xiàng)目,而不僅僅是微服務(wù)。應(yīng)用程序完成后,Spring Boot將在web服務(wù)器中混合,并輸出一個(gè)JAR文件,JVM除外。你可以將其視為原始Docker容器。這也是許多負(fù)責(zé)構(gòu)建微服務(wù)的開發(fā)者都非常喜歡Spring Boot的原因。
使用 Spring 開發(fā)微服務(wù)遵循與 Web 應(yīng)用相同的 MVC 理念。該框架享有多年J***a開發(fā)中建立的所有深度連接,包括所有主要和次要數(shù)據(jù)存儲(chǔ)、LDAP服務(wù)器和Apache Kafka等消息傳遞工具的集成。還有許多用于維護(hù)運(yùn)行服務(wù)器集合的小特性,比如Spring Vault,這是一種用于維護(hù)生產(chǎn)環(huán)境中服務(wù)器所需的密碼的工具。所有這些優(yōu)點(diǎn)都說(shuō)明了為什么J***a程序員多年來(lái)一直喜歡Spring Boot的原因。
2、Eclipse MicroProfile
2016年,J***a Enterprise社區(qū)決定清理J***a Enterprise Edition中的內(nèi)容,以便人們可以使用經(jīng)典部件構(gòu)建簡(jiǎn)單的微服務(wù)。他們?nèi)コ舜罅康膸?kù),但保留了處理REST請(qǐng)求,解析JSON和管理依賴注入的功能代碼,***終被稱為Eclipse MicroProfile,其特性為快速而簡(jiǎn)單。
從那以后,MicroProfile社區(qū)制定了一個(gè)協(xié)議,每季度發(fā)布一個(gè)新版本,同時(shí)添加新代碼以保持微服務(wù)平穩(wěn)安全地運(yùn)行。任何J***a EE開發(fā)者都會(huì)非常熟悉開發(fā)過(guò)程和代碼結(jié)構(gòu),而且還吧配置麻煩給省去了。
3、Dropwizard
當(dāng)Dropwizard在2011年出現(xiàn)時(shí),Dropwizard框架為開發(fā)者提供了一個(gè)非常簡(jiǎn)單的模型,里面包含了許多重要的模塊,你可以根據(jù)需求添加一些業(yè)務(wù)邏輯,或者配置其他內(nèi)容,***后你會(huì)發(fā)現(xiàn)JAR文件非常小,并且能夠快速啟動(dòng)。
Dropwizard***大的限制可能是缺乏依賴注入。如果你希望使用依賴項(xiàng)注入來(lái)保持代碼的整潔和松散耦合,則需要自己添加庫(kù),這點(diǎn)和Spring不同,但是現(xiàn)在Dropwizard也支持大多數(shù)功能,包括日志記錄、健康檢查和提供彈性代碼。
4、WildFly Thorntail
Red Hat的工作人員使用一個(gè)靈活的配置工具構(gòu)建了他們自己的MicroProfile版本。該框架***初被稱為WildFly Swarm,但后來(lái)被重新命名為WildFly Thorntail,Thorntail通過(guò)指定所需的特性來(lái)幫助您創(chuàng)建自己的M***en構(gòu)建文件,然后M***en負(fù)責(zé)組裝所有東西。
Thorntail還將通過(guò)掃描代碼來(lái)檢測(cè)組件,也可以使用BOM(材料清單)文件覆蓋。當(dāng)它全部運(yùn)行時(shí),Thorntail將刪除J***a Enterprise Edition中不使用的部分,并創(chuàng)建一個(gè)很小的JAR文件,可以使用一個(gè)命令進(jìn)行部署——這是一個(gè)非常巧妙的特性,允許Thorntail項(xiàng)目將其稱為Uber-JAR。這是遵循J***a Enterprise Edition的另一種傳統(tǒng)方法,它不會(huì)保留所有沉重的負(fù)擔(dān)。