簡介
目前公司已經擁抱SpringCloud框架,本人也在不斷學習成長,此系列旨在記錄學習點滴,以期勉勵,共同成長。
Spring Cloud是什么
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。
與Spring Boot的關系
- Spring boot 是 Spring 的一套快速配置腳手架,可以基于spring boot 快速開發單個微服務,Spring Cloud是一個基于Spring Boot實現的云應用開發工具;
- Spring boot專注于快速、方便集成的單個個體,Spring Cloud是關注全局的服務治理框架;
- spring boot使用了默認大于配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,
Spring Cloud很大的一部分是基于Spring boot來實現。
關系:Spring boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開Spring boot,屬于依賴的關系。
SpringCloud核心組件
Spring Cloud Netflix
針對多種Netflix組件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
Netflix Eureka:云端負載均衡,一個基于 REST 的服務,用于定位服務,以實現云端的負載均衡和中間層服務器的故障轉移,包含服務端和客戶端。
Netflix Hystrix:容錯管理工具,旨在通過控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。
Netflix Zuul:云平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 相當于是設備和 Netflix 流應用的 Web 網站后端所有請求的前門。
Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能。
Spring Cloud Config
配置中心,配置管理開發工具包,可以讓你把配置放到遠程服務器,目前支持本地存儲、Git以及Subversion。
Spring Cloud Bus
事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
Spring Cloud for Cloud Foundry
通過Oauth2協議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS云平臺。
Spring Cloud Sleuth
日志收集工具包,封裝了Dapper,Zipkin和HTrace操作。
Spring Cloud Data Flow
大數據操作工具,通過命令行方式操作數據流。
Spring Cloud Security
安全工具包,為你的應用程序添加安全控制,主要是指OAuth2。
Spring Cloud Consul
封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫集成。
Spring Cloud Zookeeper
操作Zookeeper的工具包,用于使用zookeeper方式的服務注冊和發現。
Spring Cloud Stream
數據流操作開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。
Spring Cloud CLI
基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。