SpringCloud(一):瞭解SpringCloud
一、SpringCloud 簡介 首先看看SpringCloud官方的介紹。
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
簡單翻譯就是:
Spring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排)。分散式系統的協調導致樣板模式,並且使用Spring Cloud開發人員可以快速站起來實施這些模式的服務和應用程式。他們將在任何分散式環境中執行良好,包括開發人員自己的膝上型電腦,裸機資料中心,以及Cloud Foundry等託管平臺。
特性 Spring Cloud專注於為典型用例提供良好的開箱即用經驗和擴充套件機制來涵蓋他人。
分散式/版本化配置
服務註冊和發現
路由
service - to - service呼叫
負載均衡
斷路器
分散式訊息傳遞
官方文件:http://projects.spring.io/spring-cloud/ 中文文件:https://springcloud.cc/
SpringCloud版本的命名是按照倫敦地鐵站的名稱由a-z排序進行命名, 並不是普通的版本命名方式,如最新的版本為Dalston,原因的話應該是SpringCloud包含許許多多的元件,每個元件的版本號都是不一樣的,如果都以版本號命名的話,防止誤解
二、SpringCloud常用元件成員 Spring Cloud Netflix
Netflix Eureka (服務註冊及發現)
Netflix Hystrix (熔斷器,容錯管理工具)
Netflix Zuul (動態路由,監控,彈性,安全)
Netflix Archaius (配置管理)
Spring Cloud Config (配置中心,配置管理工具包)
Spring Cloud Bus (事件、訊息匯流排)
三、SpringCloud與SpringBoot的關係 Spring boot 是 Spring 的一套快速配置腳手架,可以基於spring boot 快速開發單個微服務,使用了預設大於配置的理念,很多整合方案已經幫你選擇好了,能不配置就不配置。
SpringCloud是基於SpringBoot的,為微服務體系開發中的架構問題,提供了一整套的解決方案——服務註冊與發現,服務消費,服務保護與熔斷,閘道器,分散式呼叫追蹤,分散式配置管理等。
四、為什麼用SpringCloud 前幾年,基本上都是使用Dubbo作為開發微服務的框架,畢竟是阿里巴巴出品,現如今主流開始慢慢變為SpringCloud,至於原因的話。 1. Dubbo團隊之前不維護了,現在已經開始維護了,但是SpringCloud社群活躍,更新迭代快。 2. SpringCloud與Spring體系緊密,學習使用成本低。 3. SpringCloud功能更強大,Dubbo相當於SpringCloud的子集,雖然Dubbo也能與第三方整合實現SpringCloud的功能。