1.Eureka:注册中心

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

Eureka包含两个组件:Eureka Server和Eureka Client。 Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。 Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。 在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。 Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。

使用教程方法,参考转载内容地址:https://cloud.tencent.com/developer/article/2226635?areaSource=102001.10&traceId=flBkshWMjfTLON-Drf3uW

2.Zuul:服务网关

1、什么是Zuul 服务网关

Zuul 是 Netflix 提供的⼀个开源的 API ⽹关服务器,是客户端和⽹站后端所有请求的中间层,对外开放 ⼀个 API,将所有请求导⼊统⼀的⼊⼝,屏蔽了服务端的具体实现逻辑,Zuul 可以实现反向代理的功 能,在⽹关内部实现动态路由、身份认证、IP 过滤、数据监控等。Zuul也是Spring Cloud集成的组件,通过它来实现服务网关。

2、Zuul的功能列表

身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符合的请求。 审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。 动态路由:动态的将请求路由到不同的后端集群。 压力测试:逐渐增加指向集群的流量,以了解性能。 负载分配:为每一种负载类型分配对应容量,并弃用超出限定值的请求。 静态响应处理:在边缘位置直接建立部分响应,从而避免其转发到内部集群。 多区域弹性:跨越AWS Region进行请求路由,旨在实现ELB(Elastic Load Balancing)使用的多样化,以及让系统的便越更贴近系统的使用者。

3、zuul与spring-cloud-gateway的区别

不同点: 1、gateway吞吐率比zuul高,耗时比zuul少,性能比zuul高倍左右,gateway对比zuul多依赖了spring-webflux, 2、zuul仅支持同步,gateway支持异步。 3、gateway具有更好的扩展性

相同点: 1、底层都是servlet 2、两者均是web网关,处理的是http请求

使用教程参考内容转载地址:https://www.jianshu.com/p/522a38ca2067

3.Ribbon:负载均衡

Spring Cloud Ribbon 是一个基于 Netflix Ribbon 实现的负载均衡框架,它提供了客户端负载均衡、服务发现等功能,可与 Spring Cloud Eureka、Consul 等服务发现组件集成使用。在微服务架构中,使用 Ribbon 可以有效地分配请求负载到多个服务实例中,提高了服务的可用性和可扩展性。本文将详细介绍如何在 Spring Cloud 中使用 Ribbon。

Ribbon 的主要特点 在使用 Ribbon 之前,我们需要先了解一下它的主要特点: 1、负载均衡策略:Ribbon 提供了多种负载均衡策略,如轮询、随机、加权轮询等。 2、服务发现:Ribbon 可以与多种服务发现组件集成,如 Spring Cloud Eureka、Consul 等。 3、重试机制:在服务调用失败时,Ribbon 会自动进行重试,提高服务的可用性。 4、自定义配置:Ribbon 允许开发者自定义负载均衡策略、重试机制等参数。

使用教程参考转载地址:

https://cloud.tencent.com/developer/article/2259696

4.Feign:服务调用

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 特点如下: 1、Feign 采用的是基于接口的注解 2、Feign 整合了ribbon,具有负载均衡的能力 3、整合了Hystrix(下一篇讲到),具有熔断的能力

使用教程参考转载地址:

https://www.jianshu.com/p/61ebd98be3ca

5.Hystix:熔断器

1、Hystix是什么 Hystix是分布式系统的一个延迟和容错的开源库,它可以进行熔断、降级、限流、监控,可以避免分布式系统的级联故障和雪崩效应。

2、Hystix的作用

1.服务熔断:熔断是直接调用降级方法。不调用目标方法,无需等待接口调用超时才返回结果。

2.服务降级:降级是调用目标方法,由于目标方法调用超时或者异常,才调用降级方法。

3、Hystix如何使用 服务降级是在消费端和feign一起使用,默认降级的配置不是开启的(feign.hystrix.enabled=false),服务熔断是在服务端使用,对服务端的controller进行熔断,默认熔断的配置是开启的(spring.cloud.circuit.breaker.enabled=true)。

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: