【SpringCloud】Spring Cloud Alibaba 及 Nacos介紹(二十六)

Spring Cloud Alibaba介紹

  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 Alibba入門

  入門的最簡單方法是包括Spring Cloud BOM,而後將其添加spring-cloud-alibaba-dependencies到應用程序的類路徑中。若是您不想包括全部Spring Cloud Alibaba功能,則能夠爲所需的功能添加單個啓動器。

  spring-cloud-alibaba-dependenciespom中的依賴項:

 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>

Spring Cloud Alibaba Nacos介紹

  Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。

  Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以「服務」爲中心的現代應用架構 (例如微服務範式、雲原生範式) 的服務基礎設施。

  Nacos 名字的由來(取紅色的英文字符): Dynamic Naming and Configuration Service

  官網:https://nacos.io/

Nacos 地圖

  

  • 特性大圖:要從功能特性,非功能特性,全面介紹咱們要解的問題域的特性訴求
  • 架構大圖:經過清晰架構,讓您快速進入 Nacos 世界
  • 業務大圖:利用當前特性能夠支持的業務場景,及其最佳實踐
  • 生態大圖:系統梳理 Nacos 和主流技術生態的關係
  • 優點大圖:展現 Nacos 核心競爭力
  • 戰略大圖:要從戰略到戰術層面講 Nacos 的宏觀優點

Nacos 生態圖

  

  如 Nacos 全景圖所示,Nacos 無縫支持一些主流的開源生態,例如

  • Spring Cloud
  • Apache Dubbo and Dubbo Mesh TODO
  • Kubernetes and CNCF TODO

  使用 Nacos 簡化服務發現、配置管理、服務治理及管理的解決方案,讓微服務的發現、管理、共享、組合更加容易。

Nacos 架構

基本架構及概念

   

服務 (Service)

  服務是指一個或一組軟件功能(例如特定信息的檢索或一組操做的執行),其目的是不一樣的客戶端能夠爲不一樣的目的重用(例如經過跨進程的網絡調用)。Nacos 支持主流的服務生態,如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service.

服務註冊中心 (Service Registry)

  服務註冊中心,它是服務,其實例及元數據的數據庫。服務實例在啓動時註冊到服務註冊表,並在關閉時註銷。服務和路由器的客戶端查詢服務註冊表以查找服務的可用實例。服務註冊中心可能會調用服務實例的健康檢查 API 來驗證它是否可以處理請求。

服務元數據 (Service Metadata)

  服務元數據是指包括服務端點(endpoints)、服務標籤、服務版本號、服務實例權重、路由規則、安全策略等描述服務的數據

服務提供方 (Service Provider)

  是指提供可複用和可調用服務的應用方

服務消費方 (Service Consumer)

  是指會發起對某個服務調用的應用方

配置 (Configuration)

  在系統開發過程當中一般會將一些須要變動的參數、變量等從代碼中分離出來獨立管理,以獨立的配置文件的形式存在。目的是讓靜態的系統工件或者交付物(如 WAR,JAR 包等)更好地和實際的物理運行環境進行適配。配置管理通常包含在系統部署的過程當中,由系統管理員或者運維人員完成這個步驟。配置變動是調整系統運行時的行爲的有效手段之一。

配置管理 (Configuration Management)

  在數據中心中,系統中全部配置的編輯、存儲、分發、變動管理、歷史版本管理、變動審計等全部與配置相關的活動統稱爲配置管理。

名字服務 (Naming Service)

  提供分佈式系統中全部對象(Object)、實體(Entity)的「名字」到關聯的元數據之間的映射管理服務,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服務發現和 DNS 就是名字服務的2大場景。

配置服務 (Configuration Service)

  在服務或者應用運行過程當中,提供動態配置或者元數據以及配置管理的服務提供者。 

相關文章
相關標籤/搜索