课工场 > 文章 >新专栏 > 火的一塌糊涂的SpringCloud到底是个啥?
火的一塌糊涂的SpringCloud到底是个啥?
陈燕 | 2021-02-03 11:13:00
915

时至今日,Springcloud几乎已经是互联网公司的标配了,但是很多同学可能对SpringCloud还不是特别的了解……

至今日,Springcloud几乎已经是互联网公司的标配了,但是很多同学可能对SpringCloud还不是特别的了解,微服务和SpirngCloud经常傻傻分不清楚,今天的我们的文章是介绍下SpringCloud生态;顺便把微服务的和SpirngCloud的关系,在跟大家解释下;因为要想理解SpringCloud,怎么也离不了微服务。


因为SpringCloud火爆的大背景就是微服务架构的火爆,接下来我们就按照先说微服务,再说SpringCloud的顺序,给大家一一介绍。


· 微服务


提到微服务相信大家都不太陌生,互联网经过这么多年的发展,从最初的草莽时代,到现在巨头林立的阶段,很多领域都已经相对完善。


从早期的单体架构、集群架构、分布式架构、到现在基本人人都是微服务架构,这里我们先通过几张图来看下互联网技术架构的演进。


 · 单体架构


我们都知道互联网刚开始发展的时候,用户量是非常少的,能接触到网络的人都是极其有限的,所以这个时候的互联网的架构师是这样的,只有一个服务器,一个数据库。


image.png

 · 集群架构


紧接着,随着互联网的发展,用户量的增加(就是能玩的电脑的人多了),原来的这个单体的架构支撑不了这么大的用户访问量了,之前一个服务器,现在网站动不动就挂了,这个课怎么得了;大佬一咬牙,一跺脚,一个服务器不行,加多来几个服务器,就这么一不小心互联网的技术架构就变成了集群架构。


image.png


 · 分布式架构


本来一切都这么安静发生着,好像宇宙大和谐的样子,用户感觉网速嗖嗖的,大佬们也感觉我们的想法真牛逼,简直可以改变世界。可是没想到,突然互联网迎来了前所未有的大发展,因为多年前有以为老人在中国的南海边画了一个圈。


这个时候各位技术大佬可是坐不住了,网站总是卡死可怎么办,以为增加的服务器根本解决不了问题,之前所有的业务都在同一个服务器中,非常复杂。这个时候就开始把之前耦合在一起的业务给拆分来了,比如:订单模块、用户模块等;这样互联网的技术架构也就演变。


image.png


 · 微服务架构


本来分布式架构基本满足了现在互联网的发展,一切都这么安静的发生着,但是大厂的可是永远不那么安分,依然进行着创新,想要进一步提高效率,所以之前仅从业务单元进行拆分,还是满足不了大厂的需求,所以就对业务进行了更加细粒度的拆分,而且每一个服务都可以独立部署,这就就是我们现在所说的微服务。


image.png


 · SpringCloud


好了,到这里互联网的技术架构演变基本就这么回事儿,最终实现微服务的技术就是我们接下来要介绍SpringCloud,要说SpringCloud是个啥,先买个关子,且听我慢慢道来。


SpringCloud是微服务架构的集大成者,将一系列优秀的组件进行了整合(大杂烩)已经在国内众多大中小型的公司有实际应用案例。许多公司的业务线全部拥抱SpringCloud,部分公司选择部分拥抱SpringCloud.


之所以说它是大杂烩,我们可以通过下面这张图来感受一下,因为它几乎就包揽了所有微服务架构所需的技术组件。这里再给大家透露一个小秘密,就是SpringCloud中的很多组件,都是一家电影公司开源的;你能想象吗?一家电影公司的技术实力都这么强,我们真的应该反思反思了。


image.png


SpringCloud中组件很多,并且还在扩充中,所以我们就介绍几个常用的组件:



  • Eureka:服务治理组件,包含服务注册与发现

  • Feign:声明式服务调用组件

  • Ribbon:客户端负载均衡的服务调用组件

  • Hystrix:容错管理组件,实现了熔断器

  • Zuul:网关组件,提供智能路由、访问过滤等功能

  • Config:分布式配置中心组件,用来统一配置文件



通过这么多核心的组件就可以轻松的搭建起一个个微服务系统架构,由于都是一个生态内的技术,所以很多技术都很兼容,极大的降低了开发的门开,所以现在基本是互联网公司的,都上微服务架构了,接下来我们就挨个来看下这几个组件吧。


 · Eureka服务治理组件


Eureka是Netflix开发的服务治理框架,是一个基于REST的服务,主要用于服务间的注册发现、负载均衡等。


image.png


 · Feign声明式服务调用组件


Feign是一个声明式的web服务客户端,一种负载均衡的HTTP客户端,使用Feign调用API就像调用本地方法一样,从避免了调用目标微服务时,需要不断的解析/封装json数据的繁琐,通常是和Ribbon一起实现。


image.png


 · Ribbon负载均衡组件


栏目分类
关闭
关闭

了解
畅学卡

手机端
学习