一、Spring Cloud微服務概念定義
提起微服務,不得不提 Spring Cloud 全家桶系列,Spring Cloud 是一個服務治理平臺,是若干個框架的集合,提供了全套的分布式系統解決方案,包含了:服務注冊與發現、配置中心、服務網關、智能路由、負載均衡、斷路器、監控跟蹤、分布式訊息佇列等等,(作者:哈嘍沃德先生,請關注公眾號:哈嘍沃德先生)
Spring Cloud 通過 Spring Boot 風格的封裝,屏蔽掉了復雜的配置和實作原理,最終給開發者留出了一套簡單易懂、容易部署的分布式系統開發工具包,開發者可以快速的啟動服務或構建應用、同時能夠快速和云平臺資源進行對接,微服務是可以獨立部署、水平擴展、獨立訪問(或者有獨立的資料庫)的服務單元,Spring Cloud 就是這些微服務的大管家,采用了微服務這種架構之后,專案的數量會非常多,Spring Cloud 做為大管家需要管理好這些微服務,自然需要很多小弟來幫忙,
獲取Spring Cloud alibaba詳細視頻教程,請點:Spring Cloud視頻教程,

二、Spring Cloud子專案
Spring Cloud 包含很多子專案,我們重點圍繞 Netflix 和 Alibaba 兩個標準實作給大家介紹:

三、Spring Cloud Netflix 第一代

Netflix是一家美國公司,在美國、加拿大提供互聯網隨選流媒體播放,定制DVD、藍光光碟在線出租業務,該公司成立于1997年,總部位于加利福尼亞州洛斯蓋圖,1999年開始訂閱服務,2009年,該公司可提供多達10萬部DVD電影,并有1千萬的訂戶,2007年2月25日,Netflix宣布已經售出第10億份DVD,HIS一份報告中表示,2011年Netflix網路電影銷量占據美國用戶在線電影總銷量的45%,
?
針對多種 Netflix 組件提供的開發工具包,其中包括 Eureka、Ribbon、Feign、Hystrix、Zuul、Archaius 等,
Netflix Eureka:一個基于 Rest 服務的服務治理組件,包括服務注冊中心、服務注冊與服務發現機制的實作,實作了云端負載均衡和中間層服務器的故障轉移,Netflix Ribbon:客戶端負載均衡的服務呼叫組件,Netflix Hystrix:容錯管理工具,實作斷路器模式,通過控制服務的節點,從而對延遲和故障提供更強大的容錯能力,Netflix Feign:基于 Ribbon 和 Hystrix 的宣告式服務呼叫組件,Netflix Zuul:微服務網關,提供動態路由,訪問過濾等服務,Netflix Archaius:配置管理 API,包含一系列配置管理 API,提供動態型別化屬性、執行緒安全配置操作、輪詢框架、回呼機制等功能,
四、Spring Cloud Alibaba 第二代
同 Spring Cloud 一樣,Spring Cloud Alibaba 也是一套微服務解決方案,Spring Cloud Alibaba 致力于提供微服務開發的一站式解決方案,此專案包含開發分布式應用微服務的必需組件,方便開發者通過 Spring Cloud 編程模型輕松使用這些組件來開發分布式應用服務,
依托 Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以將 Spring Cloud 應用接入阿里微服務解決方案,通過阿里中間件來迅速搭建分布式應用系統,
這幅圖是 Spring Cloud Alibaba 系列組件,其中包含了阿里開源組件,阿里云商業化組件,以及集成 Spring Cloud 組件,

「阿里開源組件」
Nacos:阿里巴巴開源產品,一個更易于構建云原生應用的動態服務發現、配置管理和服務管理平臺,Sentinel:面向分布式服務架構的輕量級流量控制產品,把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性,RocketMQ:一款開源的分布式訊息系統,基于高可用分布式集群技術,提供低延時的、高可靠的訊息發布與訂閱服務,Dubbo:Apache Dubbo? 是一款高性能 Java RPC 框架,用于實作服務通信,Seata:阿里巴巴開源產品,一個易于使用的高性能微服務分布式事務解決方案,
「阿里商業化組件」
Alibaba Cloud ACM:一款在分布式架構環境中對應用配置進行集中管理和推送的應用配置中心產品,Alibaba Cloud OSS:阿里云物件存盤服務(Object Storage Service,簡稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存盤服務,您可以在任何應用、任何時間、任何地點存盤和訪問任意型別的資料,Alibaba Cloud SchedulerX:阿里中間件團隊開發的一款分布式任務調度產品,提供秒級、精準、高可靠、高可用的定時(基于 Cron 運算式)任務調度服務,Alibaba Cloud SMS:覆寫全球的短信服務,友好、高效、智能的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道,
作為 Spring Cloud 體系下的新實作,Spring Cloud Alibaba 跟官方的組件或其它的第三方實作如 Netflix,Consul,Zookeeper 等對比,具備了更多的功能:

五、常用組件
Spring Cloud Netflix Eureka:服務注冊中心,Spring Cloud Zookeeper:服務注冊中心,Spring Cloud Consul:服務注冊和配置管理中心,Spring Cloud Netflix Ribbon:客戶端負載均衡,Spring Cloud Netflix Hystrix:服務容錯保護,Spring Cloud Netflix Feign:宣告式服務呼叫,Spring Cloud OpenFeign(可替代 Feign):OpenFeign 是 Spring Cloud 在 Feign 的基礎上支持了 Spring MVC 的注解,如 @RequesMapping等等,OpenFeign 的 @FeignClient 可以決議 SpringMVC 的 @RequestMapping 注解下的介面,并通過動態代理的方式產生實作類,實作類中做負載均衡并呼叫其他服務,Spring Cloud Netflix Zuul:API 網關服務,過濾、安全、監控、限流、路由,Spring Cloud Gateway(可替代 Zuul):Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發的網關,Spring Cloud Gateway 旨在為微服務架構提供一種簡單而有效的統一的 API 路由管理方式,Spring Cloud Gateway 作為 Spring Cloud 生態系中的網關,目標是替代 Netflix Zuul,其不僅提供統一的路由方式,并且基于 Filter 鏈的方式提供了網關基本的功能,例如:安全,監控/埋點,和限流等,Spring Cloud Security:安全認證,Spring Cloud Config:分布式配置中心,配置管理工具,支持使用 Git 存盤配置內容,支持應用配置的外部化存盤,支持客戶端配置資訊重繪、加解密配置內容等,Spring Cloud Bus:事件、訊息總線,用于在集群(例如,配置變化事件)中傳播狀態變化,可與 Spring Cloud Config 聯合實作熱部署,Spring Cloud Stream:訊息驅動微服務,Spring Cloud Sleuth:分布式服務跟蹤,Spring Cloud Alibaba Nacos:阿里巴巴開源產品,一個更易于構建云原生應用的動態服務發現、配置管理和服務管理平臺,Spring Cloud Alibaba Sentinel:面向分布式服務架構的輕量級流量控制產品,把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性,Spring Cloud Alibaba RocketMQ:一款開源的分布式訊息系統,基于高可用分布式集群技術,提供低延時的、高可靠的訊息發布與訂閱服務,Spring Cloud Alibaba Dubbo:Apache Dubbo? 是一款高性能 Java RPC 框架,用于實作服務通信,Spring Cloud Alibaba Seata:阿里巴巴開源產品,一個易于使用的高性能微服務分布式事務解決方案,
六、總結

雖然 Eureka,Hystrix 等不再繼續開發或維護,但是目前來說不影響使用,不管怎么說感謝開源,向 Netflix 公司的開源致敬,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/139415.html
標籤:Java
