阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構

1、 什麼是 SpringCloud

什麼是 SpringCloud:是一個服務治理平臺,提供了一些服務框架。包含了:服務註冊與發現、配置中心、消息中心 、負載均衡、數據監控等等。安全

1 概念定義服務器

Spring Cloud 是一個微服務框架,相比 Dubbo 等 RPC 框架, Spring Cloud 提session

供的全套的分佈式系統解決方案架構

Spring Cloud 對微服務基礎框架 Netflix 的多個開源組件進行了封裝,同時又實現了和雲端平臺以及和 Spring Boot 開發框架的集成。app

Spring Cloud 爲微服務架構開發涉及的配置管理,服務治理,熔斷機制,智能路由,微代理,控制總線,一次性 token,全局一致性鎖,leader 選舉,分佈式 session,集羣狀態管理等操做提供了一種簡單的開發方式。負載均衡

Spring Cloud 爲開發者提供了快速構建分佈式系統的工具,開發者能夠快速的啓動服務或構建應用、同時可以快速和雲平臺資源進行對接。框架

2 Spring Cloud 的項目的位置分佈式

Sping Cloud 是 Spring 的一個頂級項目與 Spring Boot、Spring Data 位於同一位置。ide

3 Spring Cloud 的子項目微服務

Spring Cloud 包含了不少子項目,如:

阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構


3.1Spring Cloud Config:配置管理工具,支持使用 Git 存儲配置內容,支持應用配置的外部化存儲,支持客戶端配置信息刷新、加解密配置內容等

3.2 Spring Cloud Bus:事件、消息總線,用於在集羣(例如,配置變化事件)中傳播狀態變化,可與 Spring Cloud Config 聯合實現熱部署。

3.3Spring Cloud Netflix:針對多種 Netflix 組件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius 等。

3.3.1Netflix Eureka:一個基於 rest 服務的服務治理組件,包括服務註冊中心、服務註冊與服務發現機制的實現,實現了雲端負載均衡和中間層服務器的故障轉移。

3.3.2Netflix Hystrix:容錯管理工具,實現斷路器模式,經過控制服務的節點,從而對延遲和故障提供更強大的容錯能力。

3.3.3Netflix Ribbon:客戶端負載均衡的服務調用組件。

3.3.4Netflix Feign:基於 Ribbon 和 Hystrix 的聲明式服務調用組件。

3.3.5Netflix Zuul:微服務網關,提供動態路由,訪問過濾等服務。

3.3.6Netflix Archaius:配置管理 API,包含一系列配置管理 API,提供動態類型化屬性、線程安全配置操做、輪詢框架、回調機制等功能。

3.4Spring Cloud for Cloud Foundry : 通 過 Oauth2 協 議 綁 定 服 務 到CloudFoundry,CloudFoundry 是 VMware 推出的開源 PaaS 雲平臺。

3.5Spring Cloud Sleuth:日誌收集工具包,封裝了 Dapper,Zipkin 和 HTrace操做。

3.6Spring Cloud Data Flow:大數據操做工具,經過命令行方式操做數據流。

3.7Spring Cloud Security:安全工具包,爲你的應用程序添加安全控制,主要是指 OAuth2。

3.8Spring Cloud Consul:封裝了 Consul 操做,consul 是一個服務發現與配置工具,與 Docker 容器能夠無縫集成

3.9Spring Cloud Zookeeper : 操 做 Zookeeper 的 工 具 包 , 用 於 使 用zookeeper 方式的服務註冊和發現。

3.10Spring Cloud Stream:數據流操做開發包,封裝了與 Redis,Rabbit、Kafka 等發送接收消息。

3.11Spring Cloud CLI:基於 Spring Boot CLI,可讓你以命令行方式快速創建雲組件。

2、 SpringCloud 與 Dubbo 的區別

阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構


3、 Spring Cloud 版本說明

1 常見版本號說明

軟件版本號:2.0.2.RELEASE

2:主版本號。當功能模塊有較大更新或者總體架構發生變化時,主版本號會更新

0:次版本號。次版本表示只是局部的一些變更。

2:修改版本號。通常是 bug 的修復或者是小的變更

RELEASE:希臘字母版本號。次版本號用戶標註當前版本的軟件處於哪一個開發階段

1.1希臘字母版本號

Base:設計階段。只有相應的設計沒有具體的功能實現。

Alpha:軟件的初級版本。存在較多的 bug

Bate:表示相對 alpha 有了很大的進步,消除了嚴重的 bug,還存在一些潛在的 bug。

Release:該版本表示最終版。

2 Spring Cloud 版本號說明

2.1爲何 Spring Cloud 版本用的是單詞而不是數字?

設計的目的是爲了更好的管理每一個 Spring Cloud 的子項目的清單。避免子的版本號與子項目的版本號混淆。

2.2版本號單詞的定義規則

採用倫敦的地鐵站名稱來做爲版本號的命名,根據首字母排序,字母順序靠後的版本號越大。

2.3版本發佈計劃說明

阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構


Spring Cloud 與子項目版本兼容說明

阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構


因爲篇幅有限,文案過長,筆者沒法爲你們講述微服務中的方方面面。微服務是-一個很是宏觀的話題,要想切實落地微服務架構,光靠一兩本書是遠遠不夠的。 微服務粒度、持續集成、自動化機制、組織機構的建設乃至如何從傳統架構向微服務架構遷移,都是值得咱們深思的問題。

Spring Cloud與Docker微服務架構實戰

阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構



阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構



阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構



阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構



阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構



阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構



阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構



阿里首席架構師談微服務:SpringCloud與Docker入門到實戰架構


因爲篇幅有限,文案過長,筆者沒法爲你們講述微服務中的方方面面。微服務是-一個很是宏觀的話題,要想切實落地微服務架構,光靠一兩本書是遠遠不夠的。 微服務粒度、持續集成、自動化機制、組織機構的建設乃至如何從傳統架構向微服務架構遷移,都是值得咱們深思的問題。

相關文章
相關標籤/搜索