Spring Cloud Alibaba 的前世今生
1
Spring Boot
SpringBoot 是由 Pivotal 團隊在2013年開始研發(fā)、2014年4月發(fā)布第一個版本的全新開源的輕量級框架。
目的是解決企業(yè)項目一站式部署,通過內(nèi)嵌 Servlet 容器(如Tomcat)創(chuàng)建可執(zhí)行的jar,用簡單的 java -jar 方式就能實現(xiàn) Java 項目快速部署,省去了 Tomcat 等 Servlet 容器部署環(huán)節(jié)。
通過注解方式,弱化了xml的作用, 自動裝配,開箱即用,幾乎實現(xiàn)代碼零配置。
底層基于Spring4.0設(shè)計,不僅繼承了Spring框架優(yōu)秀特性,而且通過注解方式簡化配置,進一步簡化了Spring應用的整個搭建和開發(fā)過程。
2
SpringCloud底層集成了 netflix 開源微服務框架,依托于大名鼎鼎的 Servlet 容器框架:SpringBoot
核心模塊包括:服務注冊發(fā)現(xiàn)、斷路器和監(jiān)控、服務網(wǎng)關(guān)與反向代理機制、客戶端負載均衡、配置中心等。
目的是解決大規(guī)模服務分布式架構(gòu)下,提供服務集中監(jiān)控及治理能力。
架構(gòu)圖

核心組件及主要功能大致如下:
1、服務注冊和發(fā)現(xiàn):eureka
它提供了微服務架構(gòu)中很核心的組件:服務注冊中心。基于服務端與客戶端模式實現(xiàn)服務注冊與發(fā)現(xiàn)。

另外還提供可視化的微服務監(jiān)控頁面,能夠很直觀的查看正在運行的微服務實例列表。
2、服務網(wǎng)關(guān):zuul
所有對外暴露接口請求通過網(wǎng)關(guān)服務轉(zhuǎn)向后臺服務,防止后臺服務具體地址被泄露,其機制是一套路由規(guī)則配置來判斷某個請求url由哪個服務來響應,配合eureka獲取已注冊的微服務來轉(zhuǎn)發(fā)真實的請求。
3、配置中心:config server
微服務配置文件統(tǒng)一管理,主要包括連接數(shù)據(jù)庫連接參數(shù)、業(yè)務參數(shù)、redis連接參數(shù)、kafka連接參數(shù)等。
4、客戶端負載均衡:ribbon
zuul網(wǎng)關(guān)將一個請求發(fā)送給某一個服務的應用的時候,如果一個服務啟動了多個實例,就會通過ribbon負載均衡機制來決定由其中某個服務實例處理請求。
5、服務間接口調(diào)用(類似于rpc):feign
如果服務(進程)之間需要相互調(diào)用,需要用到feign,類似于以前的httpclient 請求,它默認會使用 ribbon 來實現(xiàn)微服務多實例客戶端負載均衡。
6、監(jiān)控和斷路器:hystrix
提供接口級的監(jiān)控和斷路器功能。
7、監(jiān)控面板:hystrix dashboard
提供可視化界面,監(jiān)控微服務的調(diào)用所消耗的時間等。
8、監(jiān)控聚合:turbine
使用hystrix監(jiān)控,我們需要打開每一個服務實例的監(jiān)控信息來查看。而turbine可以幫助我們把所有的服務實例的監(jiān)控信息聚合到一個地方統(tǒng)一查>看。這樣就不需要挨個打開一個個的頁面一個個查看。
版本匹配
spring cloud版本 Greenwich spring boot版本 2.1.x
spring cloud版本 Finchley spring boot版本 2.0.x
spring cloud版本 Edgware spring boot版本 1.5.x
spring cloud版本 Dalston spring boot版本 1.5.x
3
Spring Cloud Alibaba
Spring Cloud Alibaba?是阿里巴巴貢獻給 SpringCloud 一個子項目,致力于提供微服務開發(fā)的一站式解決方案,包含微服務開發(fā)的必備組件,基于SpringCloud,符合SpringCloud標準,阿里的微服務解決方案。
注意 Spring Cloud Alibaba 微服務框架不是為了替代 SpringCloud,而是一種繼承和發(fā)展,提供一個微服務框架選擇,豐富了 SpringCloud 生態(tài)。
主要特性
服務限流降級:默認支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降級功能的接入,可以在運行時通過控制臺實時修改限流降級規(guī)則,還支持查看限流降級 Metrics 監(jiān)控。
服務注冊與發(fā)現(xiàn):適配 Spring Cloud 服務注冊與發(fā)現(xiàn)標準,默認集成了 Ribbon 的支持。
分布式配置管理:支持分布式系統(tǒng)中的外部化配置,配置更改時自動刷新。
消息驅(qū)動能力:基于 Spring Cloud Stream 為微服務應用構(gòu)建消息驅(qū)動能力。
分布式事務:使用 @GlobalTransactional 注解, 高效并且對業(yè)務零侵入地解決分布式事務問題。。
阿里云對象存儲:阿里云提供的海量、安全、低成本、高可靠的云存儲服務。支持在任何應用、任何時間、任何地點存儲和訪問任意類型的數(shù)據(jù)。
分布式任務調(diào)度:提供秒級、精準、高可靠、高可用的定時(基于 Cron 表達式)任務調(diào)度服務。同時提供分布式的任務執(zhí)行模型,如網(wǎng)格任務。網(wǎng)格任務支持海量子任務均勻分配到所有 Worker(schedulerx-client)上執(zhí)行。
阿里云短信服務:覆蓋全球的短信服務,友好、高效、智能的互聯(lián)化通訊能力,幫助企業(yè)迅速搭建客戶觸達通道。
4
Nacos
Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現(xiàn)動態(tài)服務發(fā)現(xiàn)、服務配置、服務元數(shù)據(jù)及流量管理。
Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務平臺。Nacos 是構(gòu)建以“服務”為中心的現(xiàn)代應用架構(gòu) (例如微服務范式、云原生范式) 的服務基礎(chǔ)設(shè)施。
Nacos作為注冊中心
Nacos對標Spring Cloud 的eureka
Nacos作為配置中心
Nacos 對標 Spring Cloud 的 Configserver
Nacos是注冊中心和配置中心結(jié)合體,致力于提供一站式云原生、微服務的服務治理平臺,看似有一統(tǒng)注冊中心和配置中心趨勢。
