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


Spring Cloud Alibaba介紹

  Spring Cloud Alibaba為分布式應用程序開發提供了一站式解決方案。它包含開發分布式應用程序所需的所有組件,使您可以輕松地使用Spring Cloud開發應用程序。

  使用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分布式事務解決方案

  • 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)

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM