微服務常用框架
一、Spring-Cloud
1、Spring-Boot
Spring Boot是希望通過註解(Annotation),來解決Spring配置檔案較多的問題,從而能像Python的Flask、Ruby的Rails那樣快速搭建Web應用,尤其是REST API的原型.
從Spring Boot專案名稱中的Boot就可以看出來,Spring Boot的作用在於建立和啟動新的基於Spring框架的專案。Spring Boot會選擇最適合的Spring子專案和第三方開源庫進行整合。大部分Spring Boot應用只需要非常少的配置就可以快速執行起來。Spring Boot包含的特性如下:
- 建立可以獨立執行的Spring應用。
- 直接嵌入Tomcat或Jetty伺服器,不需要部署WAR檔案。
- 提供推薦的基礎POM檔案來簡化Apache Maven配置。
- 儘可能的根據專案依賴來自動配置Spring框架。
- 提供可以直接在生產環境中使用的功能,如效能指標、應用資訊和應用健康檢查。
- 沒有程式碼生成,也沒有XML配置檔案。
- 服務發現和智慧路由
微服務中的新秀,內建tomcat和jetty等多種伺服器,使用Spring MVC作為骨架,jackson/gson等作為json解釋,自研整合健康檢查監控,支援Freemarker、Thymeleaf、Mustache等多種模型引擎。
訪問地址為:https://projects.spring.io/spring-boot
2、Spring-Cloud
Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。
Spring cloud 是分散式開發的解決方案,基於spring boot,在spring boot做較少的配置,便可成為 spring cloud 中的一個微服務。
另外,Spring-Cloud社群連結為:http://springcloud.cn/和http://bbs.springcloud.cn
二、Dropwizard
內建伺服器jetty,使用jersey作為骨架,jackson作為json解釋,Metrics作為健康檢查庫,支援Freemarker和Mustache模型引擎。
訪問地址為:http://www.dropwizard.io/
三、Netflix
內建伺服器jetty,使用jersey作為骨架,jackson/gson等作為json解釋,Hystrix作為健康檢查庫,支援Freemarker模型引擎。使用RxNetty支援tcp伺服器開發,WebSocket等開發。