微服务开发(四) Spring Cloud 与熔断器(Resilience4j)

本文详细介绍了微服务开发中Resilience4j的使用,包括为什么要使用熔断器、Resilience4j的简介、适用场景及具体使用方法,如断路器、限速器和舱壁隔离的配置和应用。同时,文章还探讨了Resilience4j在Spring Cloud项目中的位置,即服务调用者模块。
摘要由CSDN通过智能技术生成

目录

一.为什么要用熔断器

二.什么是Resilience4j

三.在哪里使用Resilience4j

四.怎么使用Resilience4j

1.引用Resilience4j的包

2.使用断路器

3.使用限速器(限流器)

4.使用舱壁隔离


        本章给大家介绍Resilience4j,从四个方面对Resilience4j进行阐述:Resilience4j是什么,为什么要用它,用在哪个位置以及怎么使用.也会介绍Resilience4j中常用的几个组件:断路器,限速器,舱壁隔离,限时器.

在这之前如果先了解Spring Cloud微服务还可以查看下面的几篇文章.

微服务开发(一) Spring Cloud 到底是什么?_flame.liu的博客-CSDN博客

微服务开发(二) :Spring Cloud:OpenFeign 服务调用与网关_flame.liu的博客-CSDN博客

微服务开发(三) Spring Cloud 网关gateway_flame.liu的博客-CSDN博客  

一.为什么要用熔断器

        熔断器的原理类似家庭用的电路保险丝,但电路短路或者过载时,主动切断电源,避免出现更大的问题.我们把网络也看作是一个电路,在网络中也会出现过载或者终端(服务)出现问题,那么这个使用避免出现更为严重的问题(可能由于一个服务的不可用,而导致其它服务的等待,最终造成整个服务器的崩溃),所以只能暂时先断开服务,那么这个时候就需要熔断器了.

        当然我们的网络比电路肯定要智能很多,所以在熔断之后,不像电网一样,熔断之后什么都没有了.熔断器会在熔断之后执行预设的代替方案,但是在这个过程中,我们的服务已经出现了问题,显然是没有办法达到原来预定的效果了,只能降低服务标准,这里把提供降低标准的服务称为降级.

二.什么是Resilience4j

        Resilience4j是Spring Cloud推荐的主流熔断器,之前有过一个Netflix Hystrix,但是已经不再更新了.

        Rezilience4j主要包括:

        断路器:Resilience4j-circuitbreaker

        重试器:Resilience4j-retry

        限速器:Resilience4j-ratelimiter

        舱壁隔离:Resiliience4j-bulkhead

        等多个组件,但重要的断路器,限速器,舱壁隔离这三个组件,这也是本篇文章进行讨论的三个内容.

三.在哪里使用Resilience4j

        在spring cloud项目中,代码以模块的形式集合在我们的项目中.我们大致可以分为以下几类模块:

1.eureke-server:服务管理中心模块

2.gateway:网关模块

3.common:公共通用模块

4.客户端服务模块(在本例中,user,goods服务模块就属于此类)

那么我们的Resilience4j(熔断器)应该写在哪个模块了?

        Resilience4j是当服务出现状况的时候,将客户端服务在服务中心下线,当然在这期间它需要做一些逻辑判断和善后处理,所以Resilience4j是需要和我们的客户端服务在一起了,这样才能实时的监管客户端服务是否出现状况.

        所以接下来的操作我们都是在goods,user这两个提供实际服务的模块中进行的.

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud中,熔断器(Circuit Breaker)是一种用于处理分布式系统中故障和延迟的机制。它的作用是在服务之间进行通信时,当某个服务出现故障或响应过慢时,可以快速失败并返回一个预设的错误响应或备用数据,以保证系统的可用性和稳定性。 熔断器的作用主要体现在以下几个方面: 1. 故障快速失败:当调用的服务出现故障或超时时,熔断器能够快速失败,而不是一直等待超时或者长时间无响应。这样可以减少等待时间,提高系统的响应速度。 2. 服务降级:在高负载或故障情况下,熔断器可以暂时屏蔽一些非核心或可选功能,以保证核心功能的稳定运行。当服务降级被触发时,请求会被重定向到一个备用的处理逻辑,返回一个预先定义的响应,这样可以减轻系统负载并提高响应速度。 3. 故障隔离:熔断器能够通过断开与故障服务的连接,将故障隔离在一定范围内,防止故障在整个系统中蔓延。这样可以保护系统的稳定性,避免故障服务对其他服务的影响。 4. 自动恢复:熔断器能够监控服务的状态,并根据一定的策略自动进行恢复。当故障服务恢复正常时,熔断器会逐渐恢复对该服务的调用,保证系统的平稳过渡。 通过熔断器的作用,可以保护系统免受故障和延迟的影响,提高系统的可用性和稳定性。在Spring Cloud中,常见的熔断器实现包括Netflix Hystrix和Resilience4j等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值