淺談SpringCloud?Alibaba和SpringCloud的區(qū)別
Spring Cloud Netflix 和 Spring Cloud 是什么關(guān)系?
Spring Cloud Netflix框架也屬于Spring Cloud,但是Netflix并不是由spring來進(jìn)行開發(fā)的。而是由
Netflix(Nasdaq NFLX) 美國奈飛公司開發(fā)的。在某一時(shí)間段進(jìn)行開源了出來,然后spring官網(wǎng)認(rèn)為他的微服務(wù)架構(gòu)體系挺完善,然后直接給集成到了cloud社區(qū)當(dāng)中。所謂集成也就是二次封裝,封裝了Netflix框架各個(gè)組件的starter,于是乎我們需要哪個(gè)組件就引入哪個(gè)組件的starter,用少量的配置便可以快速上手。
Netflix源碼社區(qū):https://github.com/Netflix
Netflix其實(shí)開源的項(xiàng)目有很多,而spring呢,也是將Netflix當(dāng)中的五大組件給集成到了cloud當(dāng)中,五大組件分別是Eureka + Ribbon + Feign + Hystrix + Zuul。其實(shí)在沒了解過歷史的情況下,很多人都會以為這五個(gè)組件是cloud提供的,并且認(rèn)為cloud是微服務(wù)的一站式解決方案,其實(shí)真正一站式的是Netflix,毫不夸張的講就是Netflix體系成就了現(xiàn)在的cloud!
這五個(gè)組件構(gòu)造了我們所謂的一站式微服務(wù)架構(gòu),而微服務(wù)架構(gòu)完全是由注冊中心、負(fù)載均衡、遠(yuǎn)程調(diào)用、熔斷器、網(wǎng)關(guān)來組成的。正因?yàn)檫@五個(gè)組件也徹底將Java引入到了現(xiàn)在人人皆知的微服務(wù)架構(gòu),他更像是一種框架發(fā)展趨勢。
| 組件名稱 | 組件作用 |
| Eureka | 注冊中心,服務(wù)注冊、發(fā)現(xiàn)等 |
| Ribbon | 負(fù)載均衡,多服務(wù)時(shí)做負(fù)載 |
| Feign | 服務(wù)間內(nèi)部調(diào)用 |
| Hystrix | 熔斷器,服務(wù)熔斷、降級 |
| Zuul | 服務(wù)網(wǎng)關(guān),所有外部請求經(jīng)過網(wǎng)關(guān)進(jìn)行過濾轉(zhuǎn)發(fā)(路由+過濾+轉(zhuǎn)發(fā)) |
閑聊: 有的公司甚至根本都涉及不到
高并發(fā),但是也會毫不猶豫的使用微服務(wù)架構(gòu)。其實(shí)我 個(gè)人感覺哈,如果項(xiàng)目特別小的情況下,單體springboot項(xiàng)目其實(shí)就足夠了,沒必要去盲目跟風(fēng)。當(dāng)然要是奔著學(xué)習(xí)而工作的,使用新架構(gòu)也沒有任何毛病。
注意: 在面試的時(shí)候經(jīng)常會問Netflix的五大組件,所以我認(rèn)為還是有必要學(xué)習(xí)一哈的。
為什么有了Spring Cloud又出來個(gè)Spring Cloud Alibaba呢?
Spring Cloud Netflix的五個(gè)組件其實(shí)完全足夠開發(fā)一套成熟的微服務(wù)架構(gòu),但是為什么又出來個(gè) Spring Cloud Alibaba呢?
原因:2018年12月cloud官網(wǎng)對外宣布: https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now
其實(shí)在cloud對外宣布前,Netflix的很多產(chǎn)品已經(jīng)早就出去停更狀態(tài)。而cloud也沒有任何辦法,例如zuul停更,cloud一直等著他更新等不來,于是直接自己開發(fā)了一個(gè)網(wǎng)關(guān)gateway。還有Feign,cloud直接開發(fā)了個(gè)openFeign。

這個(gè)是官網(wǎng)18年12月發(fā)出的框架替代:

而Alibaba在Netflix停更階段,開發(fā)出了自己的微服務(wù)組件,Nacos注冊中心和Sentinel熔斷限流組件。并且成功于2018.10.31,Spring Cloud Alibaba 正式入駐了 Spring Cloud 官方孵化器,并在 Maven 中央庫發(fā)布了第一個(gè)版本。這樣一來cloud也算是松了一口氣。

當(dāng)然商人之間肯定有利益交易,Spring Cloud Alibaba也是利用spring官網(wǎng)來推廣自己的云產(chǎn)品。不管人家推薦不推薦,只要開源出來了,我認(rèn)為就是值得我們學(xué)習(xí)的!并且說真心話,Nacos注冊中心不輸于任何現(xiàn)有的注冊中心。Sentinel熔斷器和Hystrix熔斷器那就更不用提了,簡直一個(gè)天上一個(gè)地下。當(dāng)然Netflix屬于老產(chǎn)品,Alibaba屬于借助人家的思想而后開發(fā)的。所以本身也沒有可比性。

Spring Cloud Alibaba都有哪些功能呢?
源碼:https://github.com/alibaba/spring-cloud-alibaba SpringCloud Alibaba
官網(wǎng):https://spring.io/projects/spring-cloud-alibaba#overview
github中文文檔:https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.x/README-zh.md
也可以通過官網(wǎng)來看文檔:

使用Spring Cloud Alibaba,您只需添加一些注解和配置,您的應(yīng)用程序就可以使用阿里巴巴的分布式解決方案,并通過阿里巴巴中間件構(gòu)建您自己的分布式系統(tǒng)。
Spring Cloud 阿里巴巴的特點(diǎn):
- 流量控制和服務(wù)降級:支持WebServlet、WebFlux、OpenFeign、RestTemplate、Dubbo接入限流降級功能。可以在運(yùn)行時(shí)通過控制臺實(shí)時(shí)修改限流和降流規(guī)則,還支持對限流和降流Metrics的監(jiān)控。
- 服務(wù)注冊和發(fā)現(xiàn):可以注冊服務(wù),客戶端可以使用 Spring 管理的 bean,自動(dòng)集成 Ribbon 發(fā)現(xiàn)實(shí)例。
- 分布式配置:支持分布式系統(tǒng)的外部化配置,配置變化時(shí)自動(dòng)刷新。
- Rpc Service:擴(kuò)展 Spring Cloud 客戶端 RestTemplate 和 OpenFeign 以支持調(diào)用 Dubbo RPC 服務(wù)。
- 事件驅(qū)動(dòng):支持構(gòu)建與共享消息系統(tǒng)連接的高度可擴(kuò)展的事件驅(qū)動(dòng)微服務(wù)。
- 分布式事務(wù):支持高性能、易用的分布式事務(wù)解決方案。
- 阿里云對象存儲:海量、安全、低成本、高可靠的云存儲服務(wù)。支持隨時(shí)隨地在任何應(yīng)用程序中存儲和訪問任何類型的數(shù)據(jù)。
- 阿里云SchedulerX:精準(zhǔn)、高可靠、高可用的定時(shí)作業(yè)調(diào)度服務(wù),響應(yīng)時(shí)間秒級。
- 阿里云短信:覆蓋全球的短信服務(wù),阿里短信提供便捷、高效、智能的通信能力,幫助企業(yè)快速聯(lián)系客戶。
組件:
- Sentinel:把流量作為切入點(diǎn),從流量控制、熔斷降級、系統(tǒng)負(fù)載保護(hù)等多個(gè)維度保護(hù)服務(wù)的穩(wěn)定性。
- Nacos:一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。
- RocketMQ:一款開源的分布式消息系統(tǒng),基于高可用分布式集群技術(shù),提供低延時(shí)的、高可靠的消息發(fā)布與訂閱服務(wù)。
- Seata:阿里巴巴開源產(chǎn)品,一個(gè)易于使用的高性能微服務(wù)分布式事務(wù)解決方案。
- Alibaba Cloud OSS: 阿里云對象存儲服務(wù)(Object Storage Service,簡稱 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存儲服務(wù)。您可以在任何應(yīng)用、任何時(shí)間、任何地點(diǎn)存儲和訪問任意類型的數(shù)據(jù)。
- Alibaba Cloud SchedulerX: 阿里中間件團(tuán)隊(duì)開發(fā)的一款分布式任務(wù)調(diào)度產(chǎn)品,提供秒級、精準(zhǔn)、高可靠、高可用的定時(shí)(基于 Cron 表達(dá)式)任務(wù)調(diào)度服務(wù)。
- Alibaba Cloud SMS: 覆蓋全球的短信服務(wù),友好、高效、智能的互聯(lián)化通訊能力,幫助企業(yè)迅速搭建客戶觸達(dá)通道。
Spring Cloud Netflix屬于cloud集成了人家,而Spring Cloud Alibaba屬于是自己維護(hù),但是加入了cloud社區(qū),也就是在cloud官網(wǎng)可以看到。這兩個(gè)都不是一個(gè)普通組件,像gateway和openFeign這些屬于一個(gè)組件,而Netflix和Alibaba是一套組件,這個(gè)關(guān)系一定要屢明白!
Cloud 框架上目前有哪些變化呢?
| 名稱 | 之前的最新的 | 目前所替代的 |
| 注冊中心 | Eureka | Consul(spring的)、Nacos(Alibaba的) |
| 配置中心 | Config(spring的) | Consul(spring的)、Nacos(Alibaba的) |
| 網(wǎng) 關(guān) | Zuul | SpringCloud Gateway(spring的) |
| 負(fù)載均衡 | Ribbon | Loadbalancer (spring的) |
| 熔斷降級 | Hystrix | Sentinel(Alibaba的) |
| 服務(wù)調(diào)用 | Feign | OpenFeign(spring的) |
其中Eureka + Ribbon + Feign + Hystrix + Zuul都屬于Netflix 的 Nacos 和 Sentinel屬于是Cloud Alibaba的,其他均屬于spring cloud自己的,而spring cloud屬于是spring框架的其中一個(gè)框架。
到此這篇關(guān)于淺談SpringCloud Alibaba和SpringCloud的區(qū)別的文章就介紹到這了,更多相關(guān)淺談SpringCloud Alibaba內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringCloudAlibaba微服務(wù)調(diào)用組件OpenFeign的方法
- Alibaba?SpringCloud集成Nacos、openFeign實(shí)現(xiàn)負(fù)載均衡的解決方案
- 聊聊SpringCloud和SpringCloudAlibaba的區(qū)別
- SpringCloudAlibaba整合Feign實(shí)現(xiàn)遠(yuǎn)程HTTP調(diào)用的簡單示例
- SpringCloudAlibaba分布式組件詳解
- SpringCloud Alibaba項(xiàng)目實(shí)戰(zhàn)之nacos-server服務(wù)搭建過程
- SpringCloud Alibaba 基本開發(fā)框架搭建過程
- Springcloud Alibaba超詳細(xì)使用詳解
相關(guān)文章
tomcat報(bào)錯(cuò):Wrapper cannot find servlet class ...問題解決
這篇文章主要介紹了tomcat報(bào)錯(cuò):Wrapper cannot find servlet class ...問題解決的相關(guān)資料,需要的朋友可以參考下2016-11-11
springboot整合quartz定時(shí)任務(wù)框架的完整步驟
在做項(xiàng)目時(shí)有時(shí)候會有定時(shí)器任務(wù)的功能,比如某某時(shí)間應(yīng)該做什么,多少秒應(yīng)該怎么樣之類的,下面這篇文章主要給大家介紹了關(guān)于springboot整合quartz定時(shí)任務(wù)框架的相關(guān)資料,需要的朋友可以參考下2022-01-01
Spring中的@RestControllerAdvice注解使用解析
這篇文章主要介紹了Spring中的@RestControllerAdvice注解使用解析,@RestControllerAdvice?是?Spring?框架中一個(gè)用于統(tǒng)一處理控制器異常和返回結(jié)果的注解,它可以被用來定義全局異常處理程序和全局響應(yīng)結(jié)果處理程序,需要的朋友可以參考下2024-01-01
IDEA快速搭建spring?boot項(xiàng)目教程(Spring?initializr)
這篇文章主要介紹了IDEA快速搭建spring?boot項(xiàng)目教程(Spring?initializr),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Java設(shè)計(jì)模式之策略模式原理與用法實(shí)例詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之策略模式原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java策略模式的概念、原理、定義及使用方法,并總結(jié)了相關(guān)的優(yōu)缺點(diǎn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2018-04-04
Springboot 實(shí)現(xiàn)數(shù)據(jù)庫備份還原的方法
這篇文章主要介紹了Springboot 實(shí)現(xiàn)數(shù)據(jù)庫備份還原的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Java中String類常用類型實(shí)例總結(jié)
在我們開發(fā)中經(jīng)常會用到很多的常用的工具類,這里做一個(gè)總結(jié),下面這篇文章主要給大家介紹了關(guān)于Java中String類常用類型的相關(guān)資料,String類代表字符串,需要的朋友可以參考下2021-12-12

