概述
2018 年 10 月 31 日的淩晨,這個偉大的日子裡,Spring Cloud Alibaba 正式入駐了 Spring Cloud 官方孵化器,并在 Maven 中央庫釋出了第一個版本。
Spring Cloud for Alibaba 0.2.0 released
The Spring Cloud Alibaba project, consisting of Alibaba’s open-source components and several Alibaba Cloud products, aims to implement and expose well known Spring Framework patterns and abstractions to bring the benefits of Spring Boot and Spring Cloud to Java developers using Alibaba products.
Spring Cloud for Alibaba,它是由一些阿裡巴巴的開源元件和雲産品組成的。這個項目的目的是為了讓大家所熟知的 Spring 架構,其優秀的設計模式和抽象理念,以給使用阿裡巴巴産品的 Java 開發者帶來使用 Spring Boot 和 Spring Cloud 的更多便利。
Spring Cloud Alibaba 緻力于提供微服務開發的一站式解決方案。此項目包含開發分布式應用微服務的必需元件,友善開發者通過 Spring Cloud 程式設計模型輕松使用這些元件來開發分布式應用服務。
依托 Spring Cloud Alibaba,您隻需要添加一些注解和少量配置,就可以将 Spring Cloud 應用接入阿裡微服務解決方案,通過阿裡中間件來迅速搭建分布式應用系統。
Spring Cloud Alibaba GitHub
主要功能
服務限流降級: 預設支援 Servlet、Feign、RestTemplate、Dubbo 和 RocketMQ 限流降級功能的接入,可以在運作時通過控制台實時修改限流降級規則,還支援檢視限流降級 Metrics 監控。
服務注冊與發現: 适配 Spring Cloud 服務注冊與發現标準,預設內建了 Ribbon 的支援。
分布式配置管理: 支援分布式系統中的外部化配置,配置更改時自動重新整理。
消息驅動能力: 基于 Spring Cloud Stream 為微服務應用建構消息驅動能力。
阿裡雲對象存儲: 阿裡雲提供的海量、安全、低成本、高可靠的雲存儲服務。支援在任何應用、任何時間、任何地點存儲和通路任意類型的資料。
分布式任務排程: 提供秒級、精準、高可靠、高可用的定時(基于 Cron 表達式)任務排程服務。同時提供分布式的任務執行模型,如網格任務。網格任務支援海量子任務均勻配置設定到所有 Worker(schedulerx-client)上執行。
元件
Sentinel: 把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個次元保護服務的穩定性。
Nacos: 一個更易于建構雲原生應用的動态服務發現、配置管理和服務管理平台。
RocketMQ: 一款開源的分布式消息系統,基于高可用分布式叢集技術,提供低延時的、高可靠的消息釋出與訂閱服務。
Dubbo: Apache Dubbo™ 是一款高性能 Java RPC 架構。
Seata: 阿裡巴巴開源産品,一個易于使用的高性能微服務分布式事務解決方案。
Alibaba Cloud ACM: 一款在分布式架構環境中對應用配置進行集中管理和推送的應用配置中心産品。
Alibaba Cloud OSS: 阿裡雲對象存儲服務(Object Storage Service,簡稱 OSS),是阿裡雲提供的海量、安全、低成本、高可靠的雲存儲服務。您可以在任何應用、任何時間、任何地點存儲和通路任意類型的資料。
Alibaba Cloud SchedulerX: 阿裡中間件團隊開發的一款分布式任務排程産品,提供秒級、精準、高可靠、高可用的定時(基于 Cron 表達式)任務排程服務。
Alibaba Cloud SMS: 覆寫全球的短信服務,友好、高效、智能的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道。
更新包名和 Maven 坐标
接到阿裡官方通知在 2019 年 7 月 4 日修改相關包名和 Maven 坐标,請參考 Update package name & maven coordinates ,由于視訊錄制于 2019 年 6 月 28 日,故所使用的包名和坐标依然沿用原先的 <code>org.springframework.cloud</code>,後面的視訊會改用最新的标準,看到這裡的小夥伴可以嘗試使用新坐标。
包名字首由 <code>org.springframework.cloud.alibaba</code> 變更為 <code>com.alibaba.cloud</code>
bom 由 <code>spring-cloud-alibaba-dependencies</code> 變更為 <code>alibaba-spring-cloud-dependencies</code>
maven groupid 由 <code>org.springframework.cloud</code> 變更為 <code>com.alibaba.cloud</code>
修改前
修改後
sentinel starter
spring-cloud-starter-alibaba-sentinel
alibaba-sentinel-spring-cloud-starter
nacos config starter
spring-cloud-starter-alibaba-nacos-config
alibaba-nacos-config-spring-cloud-starter
nacos discovery starter
spring-cloud-starter-alibaba-nacos-discovery
alibaba-nacos-discovery-spring-cloud-starter
seata starter
spring-cloud-starter-alibaba-seata
alibaba-seata-spring-cloud-starter
dubbo starter
spring-cloud-starter-dubbo
dubbo-spring-cloud-starter
rocketmq binder starter
spring-cloud-starter-stream-rocketmq
rocketmq-stream-spring-cloud-starter
rocketmq bus module name
spring-cloud-starter-bus-rocketmq
rocketmq-bus-spring-cloud-starter
sentinel module name
spring-cloud-alibaba-sentinel
alibaba-sentinel-spring-cloud
sentinel datasource module name
spring-cloud-alibaba-sentinel-datasource
alibaba-sentinel-datasource-spring-cloud
sentinel gateway module name
spring-cloud-alibaba-sentinel-gateway
alibaba-sentinel-gateway-spring-cloud
nacos config module name
spring-cloud-alibaba-nacos-config
alibaba-nacos-config-spring-cloud
nacos discovery module name
spring-cloud-alibaba-nacos-discovery
alibaba-nacos-discovery-spring-cloud
dubbo module name
spring-cloud-alibaba-dubbo
alibaba-dubbo-spring-cloud
seata module name
spring-cloud-alibaba-seata
alibaba-seata-spring-cloud
rocketmq binder module name
spring-cloud-stream-binder-rocketmq
rocketmq-spring-cloud-stream-binder
oss starter
spring-cloud-alicloud-oss
alicloud-oss-spring-cloud
sms starter
spring-cloud-alicloud-sms
alicloud-sms-spring-cloud
schedulerx starter
spring-cloud-alicloud-schedulerx
alicloud-schedulerx-spring-cloud
ans starter
spring-cloud-alicloud-ans
alicloud-ans-spring-cloud
acm starter
spring-cloud-alicloud-acm
alicloud-acm-spring-cloud
oss module name
sms module name
schedulerx module name
ans module name
acm module name