TOP 13大最熱開源微服務Java框架
本文列舉了13大可在JVM上構建可靠輕量級微服務的Java框架
經過長期發展,Java最終在伺服器領域找到一席之地,不同晶片架構和作業系統對“一次編寫,到處執行”的承諾很感興趣。與此同時,JavaScript一直在挑戰Java的地位,前者因為高吞吐量和速度快接管了大批網路流量。Node.js不僅提高了速度和資源效率,還簡化了客戶端和伺服器執行程式碼的複雜度。
儘管競爭激烈,許多負責微服務架構開發的團隊依舊在繼續使用Java,這可能有多方面原因,比如Java經過多年測試,Sun建立了穩定的虛擬機器,Oracle大力培養和支援,使用者使用習慣等。
本文列舉了Java開發人員正在使用的13大開源專案,這些框架構成各地微服務架構基礎。
Spring Boot
Java一直在構建Spring應用程式,Spring Boot是Spring的特定版本,通過對配置細節進行處理,Spring Boot可以自動化微服務配置過程,其建立是為了自啟動所有型別Spring專案,而不僅僅是微服務。一旦應用程式完成,Spring Boot會混合在Web伺服器中,併發出JAR檔案,可以想象成原始Docker容器。
使用Spring開發微服務遵循與Web應用相同的MVC理念。該框架享有多年Java開發所構建的深層連線,包括所有主要和次要資料儲存,LDAP伺服器以及Apache Kafka等訊息傳遞工具整合,眾多維護執行伺服器集合的小功能,比如Spring Vault,維護生產伺服器所需密碼等。
Eclipse MicroProfile
2016年,Java Enterprise社群決定清除Java Enterprise Edition中的部分內容,以便使用者可使用經典部件構建簡單微服務。在去掉大量庫之後,社群保留了處理REST請求、解析JSON和管理依賴注入等功能,最終版本被稱為Eclipse MicroProfile,其特點是快速且簡單。
從那時起,MicroProfile社群就制定了一個協議,“每季度釋出一次新版本,同時新增新程式碼以保持微服務平穩安全執行”。對於使用Java EE的人來說,開發過程和程式碼結構將非常熟悉,但無休止的配置麻煩已被去除。
Dropwizard
2011年,Dropwizard問世並開啟Java Enterprise開發人員的視野,其提供非常簡單的開發模型,使用者可新增業務邏輯,並根據慣例配置其他內容。整個JAR檔案非常苗條,並且可以快速啟動。
Dropwizard的最大限制可能是缺乏依賴注入,如果想使用依賴注入保持程式碼乾淨和鬆散耦合,使用者需要自己新增庫。與Spring不同,沒有Dropwizard方法可以做到這一點。但是,Dropwizard支援大多數功能,比如日誌記錄、健康檢查和提供彈性程式碼。
WildFly Thorntail
Red Hat使用者使用靈活的配置工具構建MicroProfile版本,該框架最初被稱為WildFly Swarm,隨後被重新命名為Thorntail。只需在Thorntail上指定需要功能,使用者即可建立Maven構建檔案,然後由Maven負責組裝一切。
Thorntail通過掃描程式碼檢測主要元件,也可使用BOM檔案覆蓋。全部執行時,Thorntail將刪除不被使用的Java企業版並建立小型JAR檔案,可以使用命令部署。這是另一種遵循Java企業版傳統方法,而不保留沉重包袱的框架。
Helidon
Helidon架構剔除了Java Enterprise Edition,保留基於servlet的輕量級核心。在Helidon中,開發人員可使用Netty並新增程式碼進行路由和錯誤處理。它採用兩種基本程式碼模型,即SE和MP版本。
Node.js程式設計師會對Helidon SE非常熟悉,因為其具有由句點連線的長鏈函式呼叫。對於使用JAX-RS的Java程式設計師而言,Helidon MP看起來會很熟悉,Helidon整合了一些備受好評的工具,用於檢查伺服器執行狀況或通過微服務跟蹤資料流。
Cricket
Cricket是一個快速API開發框架,雖然小,但包含相對豐富的功能,比如鍵值資料儲存,以節省連線資料庫和排程程式,控制重複的後臺處理。沒有其他依賴項增加複雜性或鎖定,因此將程式碼新增到Cricket並啟動獨立微服務非常容易。
Jersey
開發Web服務的標準之一是用於RESTful Web服務的Java API(又名JAX-RS),這是一個已在Jersey框架中實現的通用規範。該方法在很大程度上取決於使用註釋來指定路徑對映和返回詳細資訊。解析引數和打包JSON其他內容,Jersey均可處理。
Jersey的主要優點是實現JAX-RS標準,部分開發人員也會將Jersey和Spring Boot結合在一起使用。
Play
體驗JVM跨語言功能的最佳方式之一是用Play框架,這是與Java或其他JVM語言連結的Scala程式碼。該程式碼非常現代,具有非同步、無狀態模型等,不會使伺服器過載,沒有無休止的執行緒試圖跟蹤使用者及會話資料。Play有一些額外功能可用於充實網站,比如OpenID、驗證和檔案上傳支援。
Swagger
構建API可能看起來像編寫偵聽埠並提供答案的程式碼一樣簡單,但Swagger開發人員不會同意此說法。他們建立了名為OpenAPI的完整API規範語言,Swagger團隊提供將此規範轉換為自動化測試和文件等的程式碼。
Swagger配置檔案對API非常簡單,可用於實現並記錄介面行為,提供工具測試在其下構建的程式碼,此外,提供API治理機制。Swagger是API的生態系統,並且不侷限於Java。如果團隊轉移到Node.js或其他語言,則會有Swagger Codegen模組等待將OpenAPI規範轉換為該語言的實現。
Restlet
框架之間的較大差異之一是與其他服務和庫之間的連線數。Restlet是可提供最大功能和連線集合的專案之一。為防微服務對郵件伺服器接收POP,IMAP或者SMTP, Restlet整合了JavaMail庫;為防構建大量文字索引和後設資料,Restlet整合了Lucene和Solr。
Restlet不需要使用JSON,因為程式碼可以處理XML、CSV、YAML等多種檔案格式,還可獲得用於構建響應模板的多個不同選項。此外,Restlet客戶端允許在Chrome瀏覽器測試API。
Squash
因為部件鬆散耦合且很難跟蹤通過系統所有層的資料流,因此除錯微服務一直是個難題。Squash允許在Kubernetes叢集執行程式碼中設定斷點,在IDE接收所有資料,就好像本地執行程式碼一樣。Squash還整合了Node.js和Python執行時,以防微服務集合沒有使用Java程式碼。
Telepresence
Telepresence是另一個除錯選擇,可為遠端Kubernetes叢集微服務建立本地代理,對此服務的呼叫將轉移到本地,可以在其中設定斷點或執行本地計算機上可進行的任何操作。
Zipkin
Zipkin用於在微服務上記錄並關聯事件,以便在問題通過機器集合時進行隔離和研究。Zipkin有Java等至少六種語言實現版本,因此可處理多語言系統。不少框架已經通過某種形式整合Zipkin,比如Spring。
參考連結:
https://www.infoworld.com/article/3329944/java/13-java-frameworks-for-rock-solid-microservices.html
相關文章
- 最熱門的13個Java微服務框架Java微服務框架
- 5款Java微服務開源框架Java微服務框架
- 快速瞭解阿里微服務熱門開源分散式事務框架——Seata阿里微服務分散式框架
- Oracle釋出開源的輕量級 Java 微服務框架 HelidonOracleJava微服務框架
- 用於微服務開發的 Java 框架微服務Java框架
- .net core 自帶分散式事務的微服務開源框架JMS分散式微服務框架
- 分散式服務框架介紹:最成熟的開源NIO框架Netty分散式框架Netty
- Github上最熱門的Java專案終於開源了!GithubJava
- 關於.NET微服務最熱門的問題解答微服務
- 微服務、CQRS和eventsourcing開源資源微服務
- 6月份最熱門的機器學習開源專案Top10機器學習
- 【開源】.net微服務開發引擎Anno開源啦微服務
- 11月最熱論文Top10、五大學科最熱論文Top3!
- 微服務PaaS框架,RestCloud企業級開發框架微服務框架RESTCloud
- 熱門開源Text2SQL框架SQL框架
- 分散式/開源框架/微服務/效能調優等應有盡有,這份Java全能筆記火了!分散式框架微服務Java筆記
- 騰訊雲原生一站式微服務管理框架 Femas 開源微服務框架
- 推薦10個Java方向最熱門的開源專案(8月)Java
- 基於微服務框架Micronaut和Eventuate Tram實現分散式事務的開源案例微服務框架分散式
- 微服務前端開發框架React-Admin微服務前端框架React
- 微服務框架-dubbo整合nacos框架微服務框架
- 2018年12月份GitHub上最熱門的Java開源專案GithubJava
- 淺析微服務框架微服務框架
- Python開源框架,你最中意哪一個?Python框架
- Java程式設計師必備:微服務+開源框架+架構基礎+高效能架構+設計模式Java程式設計師微服務框架架構設計模式
- Go-chassis 微服務開發框架系列(一)Go微服務框架
- go-zero:開箱即用的微服務框架Go微服務框架
- net core 微服務 快速開發框架 Viper 限流微服務框架
- dotnet core微服務框架Jimu ~ 會員註冊微服務微服務框架
- dotnet core微服務框架Jimu ~ 會員授權微服務微服務框架
- go-zero:微服務框架Go微服務框架
- Go chassis 微服務開發框架實戰系列(二)Go微服務框架
- 隨行付微服務前端開發框架React Admin微服務前端框架React
- Solon 1.8.0 釋出,雲原生微服務開發框架微服務框架
- 三大最棒的開源Web開發模板或框架Web框架
- 開源.NET8.0小專案偽微服務框架(分散式、EFCore、Redis、RabbitMQ、Mysql等)微服務框架分散式RedisMQMySql
- 業界首個!騰訊雲原生一站式微服務管理框架Femas開源微服務框架
- JNPF.java前後端分離框架,SpringBoot+SpringCloud開發微服務平臺Java後端框架Spring BootGCCloud微服務