- Spring核心技術和案例實戰
- 鄭天民
- 914字
- 2023-06-21 18:56:29
1.4 Spring Cloud與微服務架構
在本節中,我們關注的是基于Spring Cloud開發面向微服務的系統,這也是當下非常主流的一種構建分布式系統的技術體系。
1.4.1 從Spring Boot到Spring Cloud
Spring Cloud具備一個天生的優勢,那就是它是Spring家庭的一員,而Spring在Java EE開發領域的強大地位給Spring Cloud起到了很好的推動作用。同時,Spring Cloud基于Spring Boot,而Spring Boot已經成為Java EE領域中最流行的開發框架之一,Spring Cloud被用來簡化Spring應用程序的框架搭建和開發過程。Spring Cloud與微服務架構如圖1-8所示。

圖1-8 Spring Cloud與微服務架構(來自Spring官網)
在微服務架構中,我們將使用Spring Boot來開發單個微服務。同樣作為Spring家族新的一員,Spring Boot提供了令人興奮的特性。正如我們在1.3節中所討論的,這些特性主要體現在開發過程的簡單化,包括支持快速構建項目、不依賴外部容器獨立運行、開發部署效率高以及與云平臺天然集成等。而在微服務架構中,Spring Cloud構建在Spring Boot之上,繼承了Spring Boot配置簡單、開發快速、部署輕松的特點,讓原本復雜的架構工作變得相對容易上手。
1.4.2 Spring Cloud中的技術組件
技術組件的完備性是我們選擇Spring Cloud的主要原因。Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了微服務系統基礎設施的開發過程,如服務發現注冊、API網關、配置中心、消息總線、負載均衡、熔斷器、數據監控等都可以基于Spring Boot的開發風格做到一鍵啟動和部署。
在對微服務的各項技術組件進行設計和實現的過程中,Spring Cloud也有自己的一些特色。一方面,它對微服務架構開發所需的技術組件進行了抽象,提供了符合開發需求的獨立組件,包括用于配置中心的Spring Cloud Config、用于API網關的Spring Cloud Gateway等。另一方面,Spring Cloud也沒有“重復造輪子”,它將目前各家公司現有的比較成熟、經得起實踐考驗的服務框架組合起來,通過Spring Boot開發風格進行了再次封裝。這部分主要指的是Spring Cloud Netflix組件,其中集成了Netflix OSS的Eureka注冊中心、Hystrix熔斷器、Zuul網關等工具,如圖1-9所示。

圖1-9 Spring Cloud、Spring Cloud Netflix與Netflix OSS之間的關系
Spring Cloud屏蔽了微服務架構開發所需的復雜配置和實現過程,最終給開發者提供了一套易理解、易部署和易維護的開發工具包。Spring Cloud中的組件非常多,本書無意對所有組件都進行詳細展開,而是梳理了開發一個微服務系統所必需的八大核心組件,如圖1-10所示。

圖1-10 Spring Cloud核心功能組件
可以看到,基于Spring Boot的開發便利性,Spring Cloud巧妙地簡化了微服務系統基礎設施的開發過程。
- Android 9 Development Cookbook(Third Edition)
- Python高效開發實戰:Django、Tornado、Flask、Twisted(第3版)
- Flux Architecture
- 從0到1:Python數據分析
- Instant Ext.NET Application Development
- Instant Lucene.NET
- HTML5 APP開發從入門到精通(微課精編版)
- SQL 經典實例
- Mastering Akka
- LabVIEW虛擬儀器入門與測控應用100例
- C#程序設計(項目教學版)
- Unity 3D腳本編程:使用C#語言開發跨平臺游戲
- Azure Serverless Computing Cookbook
- 深度實踐KVM:核心技術、管理運維、性能優化與項目實施
- JavaScript Unit Testing