Spring Cloud Alibaba爲分佈式應用程序開發提供了一站式解決方案。它包含開發分佈式應用程序所需的全部組件,使您能夠輕鬆地使用Spring Cloud開發應用程序。spring
使用Spring Cloud Alibaba,您只須要添加一些註釋和少許配置便可將Spring Cloud應用程序鏈接到Alibaba的分佈式解決方案,並使用Alibaba中間件構建分佈式應用程序系統。數據庫
官網:https://spring.io/projects/spring-cloud-alibaba安全
流量控制和服務降級:使用Sentinel進行流量控制,斷路和系統自適應保護。網絡
服務註冊和發現:實例能夠在Nacos中註冊,客戶可使用Spring管理的bean發現實例。支持經過Spring Cloud Netflix的客戶端負載均衡器Ribbon。架構
分佈式配置:使用Nacos做爲數據存儲負載均衡
事件驅動:構建與Spring Cloud Stream RocketMQ Binder鏈接的高度可擴展的事件驅動微服務運維
消息總線:使用Spring Cloud Bus RocketMQ連接分佈式系統的節點分佈式
分佈式事務:支持高性能且易於使用的Seata分佈式事務解決方案ide
Dubbo RPC:經過Dubbo RPC擴展Spring Cloud服務到服務調用的通訊協議微服務
阿里雲對象存儲:OSS的Spring資源抽象。阿里雲對象存儲服務(OSS)是一種加密,安全,經濟高效且易於使用的對象存儲服務,可以讓您在雲中存儲,備份和存檔大量數據
入門的最簡單方法是包括Spring Cloud BOM,而後將其添加spring-cloud-alibaba-dependencies
到應用程序的類路徑中。若是您不想包括全部Spring Cloud Alibaba功能,則能夠爲所需的功能添加單個啓動器。
spring-cloud-alibaba-dependencies
pom中的依賴項:
1 <dependencyManagement> 2 <dependencies> 3 <dependency> 4 <groupId>com.alibaba.cloud</groupId> 5 <artifactId>spring-cloud-alibaba-dependencies</artifactId> 6 <version>2.1.0.RELEASE</version> 7 <type>pom</type> 8 <scope>import</scope> 9 </dependency> 10 </dependencies> 11 </dependencyManagement>
Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以「服務」爲中心的現代應用架構 (例如微服務範式、雲原生範式) 的服務基礎設施。
Nacos 名字的由來(取紅色的英文字符): Dynamic Naming and Configuration Service
如 Nacos 全景圖所示,Nacos 無縫支持一些主流的開源生態,例如
使用 Nacos 簡化服務發現、配置管理、服務治理及管理的解決方案,讓微服務的發現、管理、共享、組合更加容易。
服務是指一個或一組軟件功能(例如特定信息的檢索或一組操做的執行),其目的是不一樣的客戶端能夠爲不一樣的目的重用(例如經過跨進程的網絡調用)。Nacos 支持主流的服務生態,如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service.
服務註冊中心,它是服務,其實例及元數據的數據庫。服務實例在啓動時註冊到服務註冊表,並在關閉時註銷。服務和路由器的客戶端查詢服務註冊表以查找服務的可用實例。服務註冊中心可能會調用服務實例的健康檢查 API 來驗證它是否可以處理請求。
服務元數據是指包括服務端點(endpoints)、服務標籤、服務版本號、服務實例權重、路由規則、安全策略等描述服務的數據
是指提供可複用和可調用服務的應用方
是指會發起對某個服務調用的應用方
在系統開發過程當中一般會將一些須要變動的參數、變量等從代碼中分離出來獨立管理,以獨立的配置文件的形式存在。目的是讓靜態的系統工件或者交付物(如 WAR,JAR 包等)更好地和實際的物理運行環境進行適配。配置管理通常包含在系統部署的過程當中,由系統管理員或者運維人員完成這個步驟。配置變動是調整系統運行時的行爲的有效手段之一。
在數據中心中,系統中全部配置的編輯、存儲、分發、變動管理、歷史版本管理、變動審計等全部與配置相關的活動統稱爲配置管理。
提供分佈式系統中全部對象(Object)、實體(Entity)的「名字」到關聯的元數據之間的映射管理服務,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服務發現和 DNS 就是名字服務的2大場景。
在服務或者應用運行過程當中,提供動態配置或者元數據以及配置管理的服務提供者。