• springcloud五大组件:Eureka:注册中心、Zuul:服务网关、Ribbon:负载均衡、Feign:服务调用、Hystix:熔断器


    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的功能列表

    1. 身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符合的请求。

    2. 审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。

    3. 动态路由:动态的将请求路由到不同的后端集群。

    4. 压力测试:逐渐增加指向集群的流量,以了解性能。

    5. 负载分配:为每一种负载类型分配对应容量,并弃用超出限定值的请求。

    6. 静态响应处理:在边缘位置直接建立部分响应,从而避免其转发到内部集群。

    7. 多区域弹性:跨越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
    
    • 1

    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
    
    • 1

    5.Hystix:熔断器

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

    2、Hystix的作用

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

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

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

  • 相关阅读:
    关于环境保护html网页设计完整版-4环保垃圾分类5页
    phpstrom 快速注释:
    网课查题公众号如何搭建查题系统
    台灯显色指数多少好?护眼台灯该这样选择
    深入探讨Kubernetes(K8s)在云原生架构中的关键作用和应用
    计算机视觉的优势和挑战
    excel中超级表和普通表的相互转换
    leetcode竞赛:20220911周赛
    StartDT奇点云邀您参加2022云栖大会,11月3-5日杭州见
    Wi-Fi连接握手包抓包
  • 原文地址:https://blog.csdn.net/qq_39311377/article/details/136750078