.net core 對標 Spring Cloud Alibaba
目錄
強大的Java陣營
在java陣營平臺下,提提微服務,必然言必稱Spring Cloud
下面是華麗的分割線,我不想說話了!
介紹(以下摘自github)
Spring Cloud Alibaba 致力於提供微服務開發的一站式解決方案。此專案包含開發分散式應用微服務的必需元件,方便開發者通過 Spring Cloud 程式設計模型輕鬆使用這些元件來開發分散式應用服務。
依託 Spring Cloud Alibaba,您只需要新增一些註解和少量配置,就可以將 Spring Cloud 應用接入阿里微服務解決方案,通過阿里中介軟體來迅速搭建分散式應用系統。
主要功能
- 服務限流降級:預設支援 Servlet、RestTemplate、Dubbo 和 RocketMQ 限流降級功能的接入,可以在執行時通過控制檯實時修改限流降級規則,還支援檢視限流降級 Metrics 監控。
- 服務註冊與發現:適配 Spring Cloud 服務註冊與發現標準,預設集成了 Ribbon 的支援。
- 分散式配置管理:支援分散式系統中的外部化配置,配置更改時自動重新整理。
- 阿里雲物件儲存:阿里雲提供的海量、安全、低成本、高可靠的雲端儲存服務。支援在任何應用、任何時間、任何地點儲存和訪問任意型別的資料。
更多功能請參考 Roadmap
元件:
Sentinel:把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。
Nacos:一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。
AliCloud OSS: 阿里雲物件儲存服務(Object Storage Service,簡稱 OSS),是阿里雲提供的海量、安全、低成本、高可靠的雲端儲存服務。您可以在任何應用、任何時間、任何地點儲存和訪問任意型別的資料。
更多元件請參考 Roadmap。
如何構建
- master 分支對應的是 Spring Boot 2.x,最低支援 JDK 1.8。
- 1.x 分支對應的是 Spring Boot 1.x,最低支援 JDK 1.7。
Spring Cloud 使用 Maven 來構建,最快的使用方式是將本專案clone到本地,然後執行以下命令:
./mvnw install
執行完畢後,專案將被安裝到本地 Maven 倉庫。
如何使用
如何引入依賴
專案已經發布了第一個版本,版本 0.2.0.RELEASE 對應的是 Spring Boot 2.x 版本,版本 0.1.0.RELEASE 對應的是 Spring Boot 1.x 版本。
如果需要使用已釋出的版本,在 dependencyManagement
中新增如下配置。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然後再 dependencies
中新增自己所需使用的依賴即可使用。
如果您想體驗最新的 BUILD-SNAPSHOT 的新功能,則可以將版本換成最新的版本,但是需要在 pom.xml 中配置 Spring BUILDSNAPSHOT 倉庫,注意: SNAPSHOT 版本隨時可能更新
<repositories>
<repository>
<id>spring-snapshot</id>
<name>Spring Snapshot Repository</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Reference Doc
演示 Demo
為了演示如何使用,Spring Cloud Alibaba 專案包含了一個子模組spring-cloud-alibaba-examples
。此模組中提供了演示用的 example ,您可以閱讀對應的 example 工程下的 readme 文件,根據裡面的步驟來體驗。
Example 列表:
版本管理規範
專案的版本號格式為 x.x.x 的形式,其中 x 的數值型別為數字,從0開始取值,且不限於 0~9 這個範圍。專案處於孵化器階段時,第一位版本號固定使用0,即版本號為 0.x.x 的格式。
由於 Spring Boot 1 和 Spring Boot 2 在 Actuator 模組的介面和註解有很大的變更,且 spring-cloud-commons 從 1.x.x 版本升級到 2.0.0 版本也有較大的變更,因此我們使用了兩個不同分支來分別支援 Spring Boot 1 和 Spring Boot 2:
- 0.1.x 版本適用於 Spring Boot 1
- 0.2.x 版本適用於 Spring Boot 2
專案孵化階段,專案版本升級機制如下:
- 功能改動的升級會增加第三位版本號的數值,例如 0.1.0 的下一個版本為0.1.1。
結語
所謂的對標,本章並沒有,不過後續我會逐步整理出來。
畢竟 .net core 平臺才2~3年時間,相信時間的力量吧!!!