Spring Cloud核心组件介绍

2024-01-18 16:11:41 浏览数 (1)

三大门派

有Spring Cloud的地方就有江湖,我们就来看一看在这个江湖中都有哪些独霸一方的门派!

Netflix

是先有SpringCloud还是先有Netflix?这是一个好问题。Netflix是一家大名鼎鼎的互联网传媒公司,但为什么它在开源软件领域有这么大的名声呢?这就不得不说起它和SpringCloud的渊源了。

很久很久以前,天和地还没有分开,宇宙混沌一片。有个叫Netflix的公司,在这混沌之中,拿自身的业务动手,开启了一段微服务的改造之旅。在这段漫长的过程中,沉淀出了一系列优秀的微服务组件,比如大名鼎鼎的Eureka,Hystrix,Zuul等等,这些组件经过Pivotal的一系列封装以后就构成了初代目Spring Cloud。

目前Spring Cloud Netflix组件库是Spring Cloud中最受欢迎的项目,并且还拥有最广泛的群众基础,这么说吧,10个用SpringCloud的公司,有八九个都会选用Netflix组件库全家桶来构建自己的技术栈。听到这,同学们可能会问,难道SpringCloud里还有其他的组件库吗?那我们就往下看。

阿里巴巴

阿里近些年开源的步子迈的很大,都说步子迈得大容易扯着裆,不过凭借阿里996 鸡血文化的加持,用互联网行业特有的糙快猛的精神,近几年在开源软件上不断开疆扩土,发展速度和规模都是是可圈可点。

目前开源领域一大热门当属Spring Cloud,尽管前面有Netflix组件库占尽天时地利,可是不妨碍阿里巴巴集团一贯怼天怼地的做派。这不,Spring Cloud大家族中又添新丁,那就是-Spring Cloud Alibaba组件库。

从目前的势头来看,Alibaba组件库还是呈现一路高歌猛进的态势,其中多款组件已经站上擂台和Netflix组件展开直接竞争。得益于阿里集团的福报文化,加班不要命的码农们给这些组件添加了各种业务功能,从我个人使用这两个组件的感受来说,Netflix组件相对来说比较“纯粹和纯净”,Alibaba组件似乎透出一股“KPI导向"的味道(恨不得把能想到的功能全塞进去)。本文我们将以Netflix组件为主,同时也会重点介绍几个Alibaba组件库的组件。

Spring Open Source

这最后一股势力就是Spring自个儿了,由Spring自己独家挂牌的开源组件,可以说是“原配”组件了。都说原配的才是最好的,不过在上面两个重量级组件库面前还真不好说。同学们经常会看到这样-个情况,在某个领域中这三家的组件会扎堆出现。比如服务治理,这三家各自都有一个独立组件,想想大家都是Spring Cloud一家子 ,为何还整出了一副三足鼎立的态势呢?这背后都有很多故事的, 我们在后面进入实战课程之后再来跟大家说说这里面的恩怨情仇。

势力范围

那接下来我们就看一看上面那三股势力都在哪些领域部署了兵力

| | Netfix组件 | Alibaba组件 | Spring或其它开源厂商 |

应用领域名称

Netfix组件

Alibaba组件

Spring或其它开源厂商

服务治理

Eureka

Nacos,Dubbol(Rpc框架)

Consul

负载均衡

Ribbon

spring cloud loadbalancer

服务调用

Open Feign

Dubbo

服务容错

Hystrix Turbine Dashboard

Sentinel

Resilience4j

限流

Sentinel

Resilience4j

服务网关

Zuul

Gateway

配置管理

Archaius

Alibaba Cloud ACM

Config

消息总线

Bus

调用链路追踪

Skywalking

Sleuth Zipkin

消息驱动组件

Rocket MQ

Spring Cloud Stream

从上面的表格中可以看出,在大多数的领域当中,我们都有多与一种的解决方案,而且各个组织在不同领域发力程度也不一样。我们在实际的研发当中不会只盯着一个组件库用,而是结合使用来自不同组织开发的组件,这样才能发挥SpringCloud的最强功力。

同学们可能注意到了,阿里巴巴组件库传达出了一股不小的野心,它的很多的组件都和阿里云(Alibaba Cloud)紧密关联了起来,甚至连Nacos都有一股“强推Dubbo”的味道,看上去像是在大力推广阿里集团自己的技术栈,似乎并不打算全心全意服务于SpringCloud原生的生态体系。所以从我个人角度来说,并不太喜欢这种比较“功利”和KPI导向的价值观。

0 人点赞