SpringCloud原理架构图解(附6大运行流程)

SpringCloud原理架构图解(附6大运行流程)-mikechen

SpringCloud简介

Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具,它为基于 JVM 的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等。

SpringCloud原理架构图解(附6大运行流程)-mikechen

SpringCloud与微服务关系?

SpringCloud是微服务的一种实现,所以你要掌握好SpringCloud,首先你要理解清楚:

什么是微服务?

微服务的概念源于Martin Fowler所写的一篇文章“Microservices”,微服务架构是一种架构模式,一个大型复杂软件应用由一个或多个微服务组成。

  • 系统中的各个微服务可被独立部署,各个微服务之间是松耦合的;
  • 每个微服务仅关注于完成一件任务并很好地完成该任务,每个任务代表着一个小的业务能力;
  • 微服务它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值;
  • 每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通:通常是基于HTTP的RESTfulAPI,或者基于RPC通信;
  • 每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。

微服务目前主流就Spring Cloud这套系列和Dubbo,相关的比较也可以参考:阿里P8架构师谈:微服务Dubbo和Spring Cloud架构设计、优劣势比较

 

Spring Cloud的工作原理

SpringCloud原理架构图解(附6大运行流程)-mikechen
SpringCloud的主要由以下组件构成:

1.Spring Cloud Netflix

Spring Cloud Netflix 集成众多Netflix的开源软件:Eureka, Hystrix, Zuul, Archaius,组成了微服务的最重要的核心组件。

 

2.Netflix Eureka

服务中心,用于服务注册与发现,一个基于 REST 的服务,用于定位服务。

 

3.Netflix Hystrix

熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

 

4.Netflix Zuul

Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。

 

5.Netflix Archaius

配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能,可以实现动态获取配置。

 

6.Spring Cloud Config

配置中心,利用git集中管理程序的配置。

 

7.Spring Cloud Bus

事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

 

8.Spring Cloud Ribbon

Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为。为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。

 

SpringCloud架构及流程

SpringCloud原理架构图解(附6大运行流程)-mikechen

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

主要分为如下6大运行流程:

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

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

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

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

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

6、Turbine监控服务间的调用和熔断相关指标,用于后续的监控与分析。

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

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

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

评论交流
    说说你的看法