現現在,最熱門的13個Java微服務框架

曾經的 服務器領域 有許多不一樣的芯片架構???有哪些芯片架構???和操做系統???,通過長期發展,Java的「一次編譯,處處運行」使得它在服務器領域找到一席之地,成爲程序員們的最愛。程序員

本文,咱們將和你們分享13個可靠的Java 微服務架構web

一、Spring Boot數據庫

Java構建Spring應用程序哪些是Spring應用程序???已經有很長一段時間了,Spring Boot???是Spring的一個特定版本 Spring和Spring boot的關係是什麼???,它經過對配置細節的處理,使微服務構建更加簡便。建立Spring Boot旨在自啓動任何類型的Spring項目,而不只僅是微服務。應用程序完成後,Spring Boot將在web服務器中混合,並輸出一個JAR文件,JVM除外???。你能夠將其視爲原始Docker容器???。這也是許多負責構建微服務的開發者都很是喜歡Spring Boot的緣由。api

使用 Spring 開發微服務遵循與 Web 應用相同的 MVC 理念。該框架享有多年Java開發中創建的全部深度鏈接,包括全部主要和次要數據存儲、LDAP服務器???和Apache Kafka等消息傳遞工具的集成。還有許多用於維護運行服務器集合的小特性,好比Spring Vault,這是一種用於維護生產環境中服務器所需的密碼的工具。全部這些優勢都說明了爲何Java程序員多年來一直喜歡Spring Boot的緣由。瀏覽器

二、Eclipse MicroProfile安全

2016年,Java Enterprise社區決定清理Java Enterprise Edition中的內容,以便人們可使用經典部件構建簡單的微服務。他們去除了大量的庫,但保留了處理REST請求,解析JSON和管理依賴注入的功能代碼,最終被稱爲Eclipse MicroProfile,其特性爲快速而簡單。服務器

從那之後,MicroProfile社區制定了一個協議,每季度發佈一個新版本,同時添加新代碼以保持微服務平穩安全地運行。任何Java EE開發者都會很是熟悉開發過程和代碼結構,並且還吧配置麻煩給省去了。架構

三、Dropwizard框架

當Dropwizard在2011年出現時,Dropwizard框架爲開發者提供了一個很是簡單的模型,裏面包含了許多重要的模塊,你能夠根據需求添加一些業務邏輯,或者配置其餘內容,最後你會發現JAR文件很是小,而且可以快速啓動。異步

Dropwizard最大的限制多是缺少依賴注入。若是你但願使用依賴項注入來保持代碼的整潔和鬆散耦合,則須要本身添加庫,這點和Spring不一樣,可是如今Dropwizard也支持大多數功能,包括日誌記錄、健康檢查和提供彈性代碼。

四、WildFly Thorntail

Red Hat的工做人員使用一個靈活的配置工具構建了他們本身的MicroProfile版本。該框架最初被稱爲WildFly Swarm,但後來被從新命名爲WildFly Thorntail,Thorntail經過指定所需的特性來幫助您建立本身的Maven構建文件,而後Maven負責組裝全部東西。

Thorntail還將經過掃描代碼來檢測組件,也可使用BOM(材料清單)文件覆蓋。當它所有運行時,Thorntail將刪除Java Enterprise Edition中不使用的部分,並建立一個很小的JAR文件,可使用一個命令進行部署——這是一個很是巧妙的特性,容許Thorntail項目將其稱爲Uber-JAR。這是遵循Java Enterprise Edition的另外一種傳統方法,它不會保留全部沉重的負擔。

五、Helidon

Helidon去除了Java Enterprise Edition,保留輕量級的、基於servlet的核心,並吸引了大量的粉絲。在Helidon的,開發人員從Netty,並添加代碼進行路由和錯誤處理。它採用了代碼的兩個基本模型,即所謂的SE和MP版本。

Node 開發者可能更熟悉Helidon SE,由於其具備由句點鏈接的函數調用。使用JAX-RS的Java程序員則更熟悉Helidon MP。此外,Helidon還集成了一些備受好評的工具,這些都是它可以吸引大量開發者的緣由。

六、Cricket

另一個用於快速API開發框架的是Cricket。Cricket很小,儘管它包括許多額外的功能,如鍵值數據存儲,以免鏈接數據庫和調度程序來控制後臺重複處理。沒有添加複雜性或其餘依賴項,所以很容易將代碼添加到Cricket並啓動獨立的微服務。

七、Jersey

開發web服務的標準方法之一是RESTful web服務的Java API(又名JAX-RS),這是Jersey框架中實現的通用規範。這種方法主要依賴於使用註釋來指定路徑映射和返回細節。從參數解析到JSON打包的全部其餘內容都由Jersey處理。

Jersey的主要優勢是它實現了JAX-RS標準,這個特性很是受歡迎,一些開發人員習慣將Jersey與Spring Boot結合在一塊兒使用。

八、Play

體驗JVM跨語言能力的最佳方式之一是使用Play框架,這是能夠與Java或任何其餘JVM語言兼容的。它的基礎很是現代,具備異步、無狀態的模型,不會讓試圖跟蹤用戶及其會話數據的線程使服務器過載。還有許多額外的特性能夠用來充實網站,好比OpenID、驗證和文件上傳支持。

Play代碼庫已經發展了十多年,所以你還會發現相似於對XML的支持的這種古老的功能。play既成熟又輕盈,這種組合仍是比較有特點的。

九、Swagger

構建一個API看起來就像編寫一個監聽端口的代碼同樣簡單,可是Swagger的開發人員不這麼認爲。他們已經建立了一個完整的API規範語言OpenAPI,你可使用它來講明你的API。這彷佛是一個額外的步驟,可是Swagger團隊還提供了將該規範轉換爲自動化測試、文檔等的代碼。

Swagger配置文件中的API很簡單,用於實現接口、記錄接口的,並提供一組工具來測試構建在其下的代碼,甚至還有一種API治理機制。

Swagger是一個api生態系統,它不侷限於Java。若是你的團隊遷移到Node.js或其餘幾十種語言中的任何一種,都有一個Swagger Codegen模塊將OpenAPI規範轉換成該語言的實現。

十、Restlet

不一樣框架之間最大的區別之一是和其餘服務或庫的鏈接數量。Restlet項目提供了更大的特性和鏈接集合,它已經與JavaMail之類的庫集成,避免微服務須要對某些郵件服務器使用POP、IMAP或SMTP;爲防構建大量文本索引和元數據,還集成了 Lucene 和 Solr。

Restlet中還有不少特性在持續開發。例如,你不須要使用JSON,由於它能夠直接處理XML、CSV、YAML和其餘一些文件格式,此外,它還容許用戶從Chrome瀏覽器測試api。

十一、Squash

微服務調試一直是開發人員的一大挑戰,由於這些部件都是鬆散耦合的,而且很難跟蹤經過系統全部層的數據流。經過使用Squash,能夠在運行在Kubernetes集羣上的代碼中設置斷點,而後像本地運行代碼同樣接收IDE中的全部數據。Squash還集成了 Node.js 和 Python 運行時

十二、Telepresence

調試的另外一個選項是使用Telepresence,它能夠爲遠程Kubernetes集羣上的微服務建立本地代理。在本地版本中,能夠在其中設置斷點或執行本地計算機上可進行的任何操做。

1三、Zipkin

Zipkin用於記錄各類微服務上的事件,容許開發者收集 Twitter 各個服務上的監控數據,並提供查詢接口。Zipkin 有 Java 等至少六種語言實現版本,所以可處理多語言系統。很多框架已經經過某種形式集成 Zipkin,好比 Spring。

相關文章
相關標籤/搜索