本文我們簡單聊聊當下主流的 3 個 Java 微服務框架,看看各自的特點。
1. Spring and Spring Boot
Spring Boot 在 Java 微服務領域絕對是一哥,毫無爭議,據說已經占據 57% 的市場份額。
Spring Boot 這么牛是有道理的,它太成熟了,功能特性極其豐富,不管你的需求多復雜,都能滿足你。
還內置了各種通用的功能,例如安全認證等等,開箱即用,非常方便。
SpringBoot 配置優先的理念大大簡化了開發,通過自動配置可以非常簡單的集成各種技術。
SpringBoot 集成了嵌入式的 Tomcat,應用打成 jar 包即可以運行,可以方便的運行在容器中。
SpringBoot 是開源的,文檔很全,社區也活躍。
從學習、開發,到部署運行,都這么便捷,想不火都難。
官網地址:
2. Dropwizard
Dropwizard 是一個開源的 RESTful 快速開發框架,對微服務的開發也極其友好,而且性能很強。
Dropwizard 也是打成 Jar 運行,SpringBoot 默認集成的是 Tomcat,Dropwizard 集成的是 Jetty。
Dropwizard 有一個特點,它集成了各個領域的龍頭技術,而且不可替換,不像 SpringBoot 集成的那么多,供大家選擇。
例如:
- WebServer 選 Jetty
- REST 選 Jersey
- 監控選 Metrics
- 日志用 Logback、slf4j
這樣的話就不需要我們自己選擇了,簡單了很多。
而 SpringBoot 的思路是全面包容,你想用啥都行,我都支持,例如 WebServer 你可以用 Tomcat,也可以選 Jetty、Undertow。
Dropwizard 自身是不支持依賴注入的,但集成了這個領域的強者 Guice 和 Dagger。
官網地址:
3. Micronaut
Micronaut 有3個突出的特點:
- 啟動極快
- 內存占用少
- 原生支持 ServerLess
IOC 是 Spring 引以為傲的特性,是基於大量的反射實現的,但這會影響啟動速度,Micronaut 沒有這么做,較少的使用了反射和代理,所以啟動飛快,而且 Micronaut 是基於 GraalVM 的,增強了其速度和內存方面的優勢。
Micronaut 使用的是 Netty,所以對響應式編程的支持也是一流的。
官網地址:
SpringBoot 我們都很熟悉了,建議也了解一下 Dropwizard 和 Micronaut,有利於擴展我們的思路。
推薦閱讀