微服務框架-Spring Cloud簡介(一)
Spring Cloud對微服務基礎框架Netflix的多個開源組件進行了封裝,同時又實現了和雲端平臺以及和Spring Boot開發框架的集成。
Spring Cloud 為開發者提供了在分布式系統(配置管理,服務發現,熔斷,路由,微代理,控制總線,一次性token,全居瑣,leader選舉,分布式session,集群狀態)中快速構建的工具,使用Spring Cloud的開發者可以快速的啟動服務或構建應用、同時能夠快速和雲平臺資源進行對接。
我們先簡單闡述下Spring Cloud中文社區對四個基礎關鍵組件的描述:
Spring Cloud Config配置中心
Spring Cloud Config就是我們通常意義上的配置中心。Spring Cloud Config-把應用原本放在本地文件的配置抽取出來放在中心服務器,本質是配置信息從本地遷移到雲端。從而能夠提供更好的管理、發布能力。
Spring Cloud Config分服務端和客戶端,服務端負責將git(svn)中存儲的配置文件發布成REST接口,客戶端可以從服務端REST接口獲取配置。但客戶端並不能主動感知到配置的變化,從而主動去獲取新的配置,這需要每個客戶端通過POST方法觸發各自的/refresh。
Spring Cloud Netflix 服務發現
Spring Cloud Eureka提供在分布式環境下的服務發現,服務註冊的功能。
Spring Cloud Netflix,該項目是Spring Cloud的子項目之一,主要內容是對Netflix公司一系列開源產品的包裝,它為Spring Boot應用提供了自配置的Netflix OSS整合。
通過一些簡單的註解,開發者就可以快速的在應用中配置一下常用模塊並構建龐大的分布式系統。它主要提供的模塊包括:服務發現(Eureka),斷路器(Hystrix),智能路由(Zuul),客戶端負載均衡(Ribbon)等。
Spring cloud Hystrix 熔斷器
斷路器(Cricuit Breaker)是一種能夠在遠程服務不可用時自動熔斷(打開開關),並在遠程服務恢復時自動恢復(閉合開關)的設施。
斷路器(Cricuit Breaker)是一種能夠在遠程服務不可用時自動熔斷(打開開關),並在遠程服務恢復時自動恢復(閉合開關)的設施,Spring Cloud通過Netflix的Hystrix組件提供斷路器、資源隔離與自我修復功能。
Spring Cloud Zuul 服務網關
Spring Cloud Eureka提供在分布式環境下的服務發現,服務註冊的功能。
Spring Cloud Netflix,該項目是Spring Cloud的子項目之一,主要內容是對Netflix公司一系列開源產品的包裝,它為Spring Boot應用提供了自配置的Netflix OSS整合。通過一些簡單的註解,開發者就可以快速的在應用中配置一下常用模塊並構建龐大的分布式系統。它主要提供的模塊包括:服務發現(Eureka),斷路器(Hystrix),智能路有(Zuul),客戶端負載均衡(Ribbon)等。
當然Spring Cloud還有額外擴展的其它很多組件,包括了服務鏈路監控和跟蹤(很關鍵的一個功能),消息總線,數據流處理,批量任務處理等。而對於整個Spring Cloud微服務框架簡單來說,即是:
你只要劃分到你的微服務組件和模塊,並定義好需要暴露的API接口,那麽剩下的整個開發和傳統方式沒有太大的區別,你開發完成的組件集成起來就是一個分布式可擴展的微服務環境。裏面設計到的接口發布,服務註冊,服務調用和路由,服務監控,健康檢測和流控等都會由微服務框架來幫你完成。
正是有了成熟的微服務框架,我們才更應該將微服務架構設計重心從技術底層轉移到組件劃分和接口設計上。微服務架構是一種趨勢,Spring Cloud提供了標準化的、全站式的技術方案,意義可能會堪比當前Servlet規範的誕生,有效推進服務端軟件系統技術水平的進步。
微服務框架-Spring Cloud簡介(一)