Spring Cloud是什么(非常详细)

Spring Cloud是什么(非常详细)-mikechen

Spring Cloud是什么?

SpringCloud 是一套完整的微服务解决方案,基于 SpringBoot框架,为开发人员提供了一套完整的微服务解决方案。

 

什么是微服务架构?

微服务是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间采用轻量级的通信机制互相沟通。

一个系统业务量很小的时候,大部分Web工程的Java应用程序,打包为War包部署在一台服务器上。

如下图所示:

Spring Cloud是什么(非常详细)-mikechen

这种将所有功能,都部署在一个web容器中运行的系统,就叫做单体架构,也叫巨石型应用。

随着业务的快速发展,业务越来越多、子系统也越来越多时,比如:淘宝的交易系统、商品系统、用户系统、评价系统…上百个系统的出现。

Spring Cloud是什么(非常详细)-mikechen

每个服务都可以独立开发、部署、扩展和管理,从而实现敏捷开发、高可伸缩性和松耦合的架构,这就是微服务架构

 

Spring Cloud组件

Spring Cloud提供了一系列的组件,来实现微服务架构。

Spring Cloud是什么(非常详细)-mikechen

涵盖了分布式系统中常见的需求,比如:服务注册与发现、负载均衡、断路器、配置管理、服务网关、分布式跟踪、服务监控等。

1.Eureka

Eureka是一个服务注册与发现的组件,它提供了服务注册中心的功能,微服务通过将自己注册到Eureka服务器来实现服务的自动发现和注册。

Spring Cloud是什么(非常详细)-mikechen

Eureka作为 Spring Cloud 框架的注册中心,与之对应的是 Dubbo 框架的Zookeeper。

 

2.Ribbon

Ribbon是一个负载均衡的组件,它可以与Eureka集成,通过在客户端实现负载均衡算法,将请求分发到多个服务实例中,提高系统的可用性和性能。

Spring Cloud是什么(非常详细)-mikechen

3.Feign

Feign是一个声明式的、基于注解的HTTP客户端,它简化了微服务之间的远程调用。

开发人员可以使用Feign的注解定义接口,并通过注入代理对象来实现服务之间的通信。

 

4.Hystrix

Hystrix是一个断路器模式的实现,它提供了容错和故障处理的能力。

分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个别的服务,如下图:

Spring Cloud是什么(非常详细)-mikechen

如果各个服务正常运行,那大家齐乐融融,但是如果其中一个服务Service C崩坏掉会出现什么样的情况呢?如下图:

Spring Cloud是什么(非常详细)-mikechen

通过使用Hystrix,可以在服务之间进行隔离、超时控制、服务降级和故障转移等操作,提高系统的稳定性和弹性。

 

5.Zuul

Zuul是一个服务网关组件,它提供了动态路由、请求过滤和负载均衡等功能。

作为系统的入口,Zuul可以对外部请求进行路由、认证和授权,并将请求转发到相应的微服务实例。

Spring Cloud是什么(非常详细)-mikechen

6.Config

Config是一个分布式配置管理的组件,它提供了集中式的配置管理和动态刷新的能力。

通过使用Config,可以将应用程序的配置集中管理,便于对配置的修改和管理。

 

7.Sleuth

Sleuth是一个分布式跟踪系统的组件,它可以与Zipkin等跟踪工具集成,实现对请求的跟踪和监控。

Sleuth为每个请求生成唯一的跟踪ID,并将请求的跟踪信息传播到微服务调用链中。

 

Spring Cloud架构实现

通过这张图,可以比较清楚的了解到各组件配置使用运行机制:

Spring Cloud是什么(非常详细)-mikechen

1、请求统一通过API网关Zuul来访问内部服务;

2、网关接收到请求后,从注册中心Eureka获取可用服务;

3、由Ribbon进行均衡负载后,分发到后端具体实例;

4、微服务之间通过Feign进行通信处理业务;

5、Hystrix负责处理服务超时熔断;

6、Turbine监控服务间的调用和熔断相关指标。

 

Spring SpringBoot和SpringCloud关系

1.Spring

Spring是一个开源的应用程序框架,提供了一套全面的解决方案来构建企业级Java应用程序。

它提供了基本的核心功能,比如:Spring IOC、依赖注入、Spring AOP面向切面编程、事务管理等。

2.Spring Boot

Spring Boot是基于Spring框架的一个快速开发框架,旨在简化Spring应用程序的配置和开发过程。

它提供了自动化配置和约定优于配置的原则,使得开发人员可以更快速、轻松地创建独立运行的、可执行的Spring应用程序。

3.Spring Cloud

Spring Cloud是一个用于构建分布式系统和微服务架构的工具集合,基于Spring Boot。

它提供了一系列的组件和模块,用于解决分布式系统中常见的需求,如服务注册与发现、负载均衡、断路器、配置管理、服务网关、分布式跟踪、服务监控等。

开发人员可以在使用Spring Boot的基础上,通过引入Spring Cloud的组件来构建分布式系统和微服务架构。

以上就是Spring Cloud是什么详解,更多Spring Cloud内容请查看:Spring Cloud教程(史上最全图文详解)

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法