SpringCloud各个组件介绍和各个版本组件之间区别、差异

SpringCloud=分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的几何体,俗称微服务全家桶。
技术选型:SpringCloud Hoxton.SR1(H版SR1)与SpringBoot2.2.2-2.2.5版本(官网推荐SpringBoot2.2.2版本的)
组件说明:
注册中心:eureka(停更)、Zookeeper、Consul(go语言编写)、Nacos
服务调用:Ribbon、LoadBalancer(新出的)/ Feign(Netfilx公司不在更新)、OpenFeign(Spring公司自己出的,与Feign相当于葫芦娃兄弟,几乎一样)
服务降级:Hystrix(cloud自带的停更,国内依然很多使用,其思想很值得学习),resilience4j(国外推荐代替Hystrix),sentienl(国内一般推荐用这个,阿里出品)
服务网关:Zuul(内部原因没出Zuul2)gateway(Spring自己推出的)
服务配置:Config,Nacos(把Config替代了)
服务总线:Bus(淘汰)Nacos
Euerka:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第1张图片
服务注册:将服务信息注册进注册中心。服务发现:从注册中心上获取服务信息。
实质:存key服务名 取value调用地址
消费者服务在需要调用接口时,使用服务别名去注册中心获取实际RPC远程调用地址。
消费者获得调用地址后,底层实际是利用HttpClient技术实现远程调用。
Eureka集群原理:互相注册。
集群的搭建:修改配置文件,修改host文件。
Euerka自我保护机制:始于CAP里面的AP分支、某时刻某一个微服务不可用了,Euerka不会立即清理,依旧会对该微服务的信息进行保存。
Euerka、Zookeeper、Consul三个注册中心的异同点:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第2张图片
Redis是cp,mysql是ca。
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第3张图片
CAP介绍:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第4张图片
NACOS和其他注册中心比较:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第5张图片
Feign和OpenFeign区别:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第6张图片
Feign和Ribbon区别(Feign集成了Ribbon):
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第7张图片
Hystrix:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第8张图片
在这里插入图片描述
Hystrix重要概念:
服务降级:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第9张图片
服务熔断、服务限流:

在这里插入图片描述
在yml里配置Hystrix,@HystrixCommand注解,编写服务降级方法。
Gateway与Zuul:
Zuul 1.x基于Servlet2.5使用阻塞架构,不支持长连接,性能相对较差。
Zuul 2.x理念更先进,想基于Netty非阻塞和支持长连接,但SpringCloud目前没有整合。
Gateway(异步非阻塞
)使用的是非阻塞API,还支持websocket,并且与Spring紧密集成拥有更好的开发体验。
Gateway底层是Spring WebFlux框架实现的,Spring WebFlux底层是Netty实现的。
Spring WebFlux框架介绍:
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第10张图片
Gateway工作流程:
路由、断言、过滤:
在这里插入图片描述
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第11张图片
Gateway动态路由配置(yml里的配置):
SpringCloud各个组件介绍和各个版本组件之间区别、差异_第12张图片
默认情况下Gateway会根据注册中心注册的服务列表,以注册中心上服务名为路径创建动态路由进行转发,从而实现动态路由的功能。
Filter过滤器:
在yml配置里配置:
在这里插入图片描述

你可能感兴趣的:(Spring,Cloud,java)