學習SpringCloud(1)簡介

spring cloud 簡介

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,均可以用Spring Boot的開發風格作到一鍵啓動和部署。Spring Cloud並無重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,經過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。spring

Spring Cloud組成安全

Spring Cloud的子項目,大體可分紅兩類,一類是對現有成熟框架」Spring Boot化」的封裝和抽象,也是數量最多的項目;第二類是開發了一部分分佈式系統的基礎設施的實現,如Spring Cloud Stream扮演的就是kafka, ActiveMQ這樣的角色。對於咱們想快速實踐微服務的開發者來講,第一類子項目就已經足夠使用,如:服務器

  • Spring Cloud Netflix   是對Netflix開發的一套分佈式服務框架的封裝,包括服務的發現和註冊,負載均衡、斷路器、REST客戶端、請求路由等。
  • Spring Cloud Config   將配置信息中央化保存, 配置Spring Cloud Bus能夠實現動態修改配置文件
  • Spring Cloud Bus   分佈式消息隊列,是對Kafka, MQ的封裝
  • Spring Cloud Security   對Spring Security的封裝,並能配合Netflix使用
  • Spring Cloud Zookeeper   對Zookeeper的封裝,使之能配置其它Spring Cloud的子項目使用
  • Spring Cloud Eureka Spring Cloud Eureka 是 Spring Cloud Netflix 微服務套件中的一部分,它基於Netflix Eureka 作了二次封裝,主要負責完成微服務架構中的服務治理功能。

Spring Cloud 優缺點架構

其主要優勢有:app

  • 集大成者,Spring Cloud 包含了微服務架構的方方面面。
  • 約定優於配置,基於註解,沒有配置文件。
  • 輕量級組件,Spring Cloud 整合的組件大多比較輕量級,且都是各自領域的佼佼者。
  • 開發簡便,Spring Cloud 對各個組件進行了大量的封裝,從而簡化了開發。
  • 開發靈活,Spring Cloud 的組件都是解耦的,開發人員能夠靈活按需選擇組件。

接下來,咱們看下它的缺點:負載均衡

  • 項目結構複雜,每個組件或者每個服務都須要建立一個項目。
  • 部署門檻高,項目部署須要配合 Docker 等容器技術進行集羣部署,而要想深刻了解 Docker,學習成本高。

架構圖框架

  • Spring Cloud Config:配置管理開發工具包,可讓你把配置放到遠程服務器,目前支持本地存儲、Git以及Subversion。分佈式

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

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

  • Netflix Eureka:雲端負載均衡,一個基於 REST 的服務,用於定位服務,以實現雲端的負載均衡和中間層服務器的故障轉移。

  • Netflix Hystrix:容錯管理工具,旨在經過控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。

  • Netflix Zuul:邊緣服務工具,是提供動態路由,監控,彈性,安全等的邊緣服務。

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

  • 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,可讓你以命令行方式快速創建雲組件。

Spring Cloud前景

Spring Cloud對於中小型互聯網公司來講是一種福音,由於這類公司每每沒有實力或者沒有足夠的資金投入去開發本身的分佈式系統基礎設施,使用Spring Cloud一站式解決方案能在從容應對業務發展的同時大大減小開發成本。同時,隨着近幾年微服務架構和Docker容器概念的火爆,也會讓Spring Cloud在將來愈來愈「雲」化的軟件開發風格中立有一席之地,尤爲是在目前五花八門的分佈式解決方案中提供了標準化的、全站式的技術方案,意義可能會堪比當年Servlet規範的誕生,有效推動服務端軟件系統技術水平的進步。

相關文章
相關標籤/搜索