微服務是什麼? Spring Cloud是什麼? Spring Cloud版本命名方式? Spring Cloud版本選擇? ...
微服務是什麼?
Spring Cloud是什麼?
Spring Cloud版本命名方式?
Spring Cloud版本選擇?
一、微服務是什麼
微服務是一種架構風格,是一種將單體應用開發為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信採用輕量級通信機制(通常用HTTP資源API)。這些服務圍繞業務能力構建並且可通過全自動部署機制獨立部署。這些服務共用一個最小型的集中式的管理,服務可用不同的語言開發,使用不同的數據存儲技術。
二、Spring Cloud是什麼
Spring Cloud並不是一個具體的框架,可以理解為一個工具箱,它提供了各類工具,可以快速構建分散式系統。
Spring Cloud的各個項目基於Spring Boot,將Netflix的多個框架進行封裝,並且通過自動配置的方式將這些框架綁定到Spring的環境中。
三、Spring Cloud版本命名方式
大多數Spring項目以“主版本號.次版本號.增量版本號.里程碑版本號”的形式命名版本。
主版本號表示項目的重大重構;
次版本號表示新特性的添加和變化;
增量版本號一般表示Bug修複;
里程碑版本號表示某版本號的里程碑;
例如Spring Framework穩定版本4.3.5.RELEASE、里程碑版本5.0.0.M4等。
但是Spring Cloud未採用上面這種方式,以“英文單詞SRX(X為數字)”的形式命名版本號。
Spring Cloud是一個綜合項目,包含很多的子項目,由於子項目也維護著自己的版本號,所以採用這種命名方式避免與子項目的版本混淆。
其中“英文單詞”叫做“release train”,Camden、Dalston、Edgware等都是倫敦地鐵的名稱,按照字母順序發行。
“SR”表示“Service Release”,一般表示Bug修複;
在SR版本發佈之前,會先發佈一個Release版本,例如在發佈Edgware SR1之前,會先發佈Edgware RELEASE。
“RC”表示“Release Candidate”候選版本,幾乎不會加入新功能,著重於除錯,是最終版之前的最後版本。
“SNAPSHOT”快照版本,不穩定、尚處於開發中的版本。
“M”表示“Milestone”,里程碑版,具有一些全新的功能或是具有里程碑意義的版本。
四、Spring Cloud版本選擇
Spring Cloud版本與與子項目版本關係可查看:https://spring.io/projects/spring-cloud
Release Train | Boot Version |
---|---|
Hoxton |
2.2.x |
Greenwich |
2.1.x |
Finchley |
2.0.x |
Edgware |
1.5.x |
Dalston |
1.5.x |
Component | Edgware.SR6 | Greenwich.SR2 | Greenwich.BUILD-SNAPSHOT |
---|---|---|---|
spring-cloud-aws |
1.2.4.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-bus |
1.3.4.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-cli |
1.4.1.RELEASE |
2.0.0.RELEASE |
2.0.1.BUILD-SNAPSHOT |
spring-cloud-commons |
1.3.6.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-contract |
1.2.7.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-config |
1.4.7.RELEASE |
2.1.3.RELEASE |
2.1.4.BUILD-SNAPSHOT |
spring-cloud-netflix |
1.4.7.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-security |
1.2.4.RELEASE |
2.1.3.RELEASE |
2.1.4.BUILD-SNAPSHOT |
spring-cloud-cloudfoundry |
1.1.3.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-consul |
1.3.6.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-sleuth |
1.3.6.RELEASE |
2.1.1.RELEASE |
2.1.2.BUILD-SNAPSHOT |
spring-cloud-stream |
Ditmars.SR5 |
Fishtown.SR3 |
Fishtown.BUILD-SNAPSHOT |
spring-cloud-zookeeper |
1.2.3.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-boot |
1.5.21.RELEASE |
2.1.5.RELEASE |
2.1.8.BUILD-SNAPSHOT |
spring-cloud-task |
1.2.4.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-vault |
1.1.3.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-gateway |
1.0.3.RELEASE |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
spring-cloud-openfeign |
2.1.2.RELEASE |
2.1.3.BUILD-SNAPSHOT |
|
spring-cloud-function |
1.0.2.RELEASE |
2.0.2.RELEASE |
2.0.3.BUILD-SNAPSHOT |
Greenwich builds and works with Spring Boot 2.1.x, and is not expected to work with Spring Boot 1.5.x.
例如,Greenwich 版本基本Spring Boot 2.1.x構建,不相容之前版本,如Spring Boot 1.5.x。