SpringCloud組件和概念介紹1


一:什么是微服務(Microservice)

 

 微服務英文名稱Microservice,Microservice架構模式就是將整個Web應用組織為一系列小的Web服務。這些小的Web服務可以獨立地編譯及部署,並通過各自暴露的API接口相互通訊。它們彼此相互協作,作為一個整體為用戶提供功能,卻可以獨立地進行擴。

 

  微服務架構需要的功能或使用場景

 1:我們把整個系統根據業務拆分成幾個子系統。

 2:每個子系統可以部署多個應用,多個應用之間使用負載均衡。

 3:需要一個服務注冊中心,所有的服務都在注冊中心注冊,負載均衡也是通過在注冊中心注冊的服務來使用一定策略來實現。

 4:所有的客戶端都通過同一個網關地址訪問后台的服務,通過路由配置,網關來判斷一個URL請求由哪個服務處理。請求轉發到服務上的時候也使用負載均衡。

 5:服務之間有時候也需要相互訪問。例如有一個用戶模塊,其他服務在處理一些業務的時候,要獲取用戶服務的用戶數據。

 6:需要一個斷路器,及時處理服務調用時的超時和錯誤,防止由於其中一個服務的問題而導致整體系統的癱瘓。

 7:還需要一個監控功能,監控每個服務調用花費的時間等。

  

  目前主流的微服務框架:Dubbo、 SpringCloud、thrift、Hessian等,目前國內的中小企業用的大多數都是Dubbo,SpringCloud估計很少,也許有些開發同學都沒聽說過。

  

二:SpringCloud項目簡介

 

   springCloud是基於SpringBoot的一整套實現微服務的框架。他提供了微服務開發所需的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等組件。最重要的是,

  跟spring boot框架一起使用的話,會讓你開發微服務架構的雲服務非常好的方便。

  

  SpringBoot旨在簡化創建產品級的 Spring 應用和服務,簡化了配置文件,使用嵌入式web服務器,含有諸多開箱即用微服務功能

  

  相關組件架構圖

  

  spring cloud子項目包括:

 

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

  

  SpringCloud特點

1:約定優於配置

2:開箱即用、快速啟動

3:適用於各種環境

4:輕量級的組件

5:組件支持豐富,功能齊全

  

三: SpringBoot了解

 

    Spring Boot讓我們的Spring應用變的更輕量化。比如:你可以僅僅依靠一個Java類來運行一個Spring引用。你也可以打包你的應用為jar並通過使用java -jar來運行你的Spring Web應用。

由於SpringCloud依賴SpringBoot,所以在學習SpringCloud框架之前需要了解下SpringBoot。

SpringBoot的主要優點:

  1:為所有Spring開發者更快的入門

  2:開箱即用,提供各種默認配置來簡化項目配置

  3:內嵌式容器簡化Web項目

  4:沒有冗余代碼生成和XML配置的要求

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM