SprinCloud落地方案介绍以及核心架构原理

1.需求背景

如下图所示的单体架构 我们需要改造成分布式为服务的架构。这是就需要引入SpringCloud的一些组件。
SprinCloud落地方案介绍以及核心架构原理

2.Eureka的引用

一个系统拆分成多个子系统 面对众多的服务地址如何管理 这是就需要引用Eureka组件 服务注册中心
SprinCloud落地方案介绍以及核心架构原理

3.feign的引用

现在有了服务注册中心来管理众多的服务地址 ,那各个各个服务之间如何调用呢?这是就引入了feign组件 会把程序的请求转换成http协议
SprinCloud落地方案介绍以及核心架构原理

3.ribbon的引用

引用Eureka和feign之后一个乞丐版的分布式为服务就搭建好了 但是每个服务如果部署一台机器的话就很容易造成单点故障。为了保证高可用我们通常部署多台机器 这时候就要引入ribbon来负载均衡了
SprinCloud落地方案介绍以及核心架构原理

4.zuul(网关的引用)

前后端分离的项目中 我们不可能把所有的接口都暴露出去让前端去进行管理和维护 这里就引用了zuul网关
SprinCloud落地方案介绍以及核心架构原理

5 补充知识点的说明

zuul(网关的作用) 灰度发布 统一限流 统一降级 统一熔断 统一缓存 统一授权认证
这里可能会有疑问ngix也有请求转发的功能为什么要引入网关呢?
说明一下 ngix 的作用就是反向代理 如果要使用一些高级功能(统一认证 灰度发布 熔断降级 )都需要配合lua去实现 一是麻烦 二是不够灵活 所以才加了一层网关