主要讲解 resilience4j-spring-boot2:

1、依赖导入

dependencies {

compile "io.github.resilience4j:resilience4j-spring-boot2:${resilience4jVersion}"

compile('org.springframework.boot:spring-boot-starter-actuator')

compile('org.springframework.boot:spring-boot-starter-aop')

}

2、yml文件配置

resilience4j.circuitbreaker: #熔断

instances:

backendA:

registerHealthIndicator: true

slidingWindowSize: 100

backendB:

registerHealthIndicator: true

slidingWindowSize: 10

permittedNumberOfCallsInHalfOpenState: 3

slidingWindowType: TIME_BASED

minimumNumberOfCalls: 20

waitDurationInOpenState: 50s

failureRateThreshold: 50

eventConsumerBufferSize: 10

recordFailurePredicate: io.github.robwin.exception.RecordFailurePredicate

resilience4j.retry: #重试

instances:

backendA:

maxRetryAttempts: 3

waitDuration: 10s

enableExponentialBackoff: true

exponentialBackoffMultiplier: 2

retryExceptions:

- org.springframework.web.client.HttpServerErrorException

- java.io.IOException

ignoreExceptions:

- io.github.robwin.exception.BusinessException

backendB:

maxRetryAttempts: 3

waitDuration: 10s

retryExceptions:

- org.springframework.web.client.HttpServerErrorException

- java.io.IOException

ignoreExceptions:

- io.github.robwin.exception.BusinessException

resilience4j.bulkhead: #降级

instances:

backendA:

maxConcurrentCalls: 10

backendB:

maxWaitDuration: 10ms

maxConcurrentCalls: 20

resilience4j.thread-pool-bulkhead:

instances:

backendC:

maxThreadPoolSize: 1

coreThreadPoolSize: 1

queueCapacity: 1

resilience4j.ratelimiter: # 限流

instances:

backendA:

limitForPeriod: 10

limitRefreshPeriod: 1s

timeoutDuration: 0

registerHealthIndicator: true

eventConsumerBufferSize: 100

backendB:

limitForPeriod: 6

limitRefreshPeriod: 500ms

timeoutDuration: 3s

3、注解Annotations

@CircuitBreaker(name = BACKEND, fallbackMethod = "fallback")

@RateLimiter(name = BACKEND)

@Bulkhead(name = BACKEND)

@Retry(name = BACKEND, fallbackMethod = "fallback")

public Mono method(String param1) {

return Mono.error(new NumberFormatException());

}

private Mono fallback(String param1, IllegalArgumentException e) {

return Mono.just("test");

}

private Mono fallback(String param1, RuntimeException e) {

return Mono.just("test");

}

matlab熔断器,Resilience4j 熔断器相关推荐

  1. 防雪崩利器:熔断器 Hystrix 的原理与使用

    1.概述 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级. 而Hystrix的出现,给我们提供了另一 ...

  2. 防雪崩利器:熔断器 Hystrix 的原理与使用--转

    原文地址:https://segmentfault.com/a/1190000005988895 前言 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. ...

  3. 一文读懂熔断器和重试机制

    导语:随着微服务的流行,熔断作为其中一项很重要的技术也广为人知.当微服务的运行质量低于某个临界值时,启动熔断机制,暂停微服务调用一段时间,以保障后端的微服务不会因为持续过负荷而宕机.本文作者介绍了熔断 ...

  4. 熔断器 Hystrix 的原理与使用

    前言 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级. 而Hystrix的出现,给我们提供了另一种选 ...

  5. 线上防雪崩利器——熔断器设计原理与实现

    转载自  线上防雪崩利器--熔断器设计原理与实现 本文来自作者投稿,作者林湾村龙猫,这是一篇他根据工作中遇到的问题总结出的最佳实践. 上周六,我负责的业务在凌晨00-04点的支付全部失败了. 结果一查 ...

  6. 微服务高可用之熔断器实现原理与 Golang 实践

    I.内容提要 在微服务架构中,经常会碰到服务超时或通讯失败的问题,由于服务间层层依赖,很可能由于某个服务出现问题,不合理的重试和超时设置,导致问题层层传递引发雪崩现象,而限流和熔断是解决这个问题重要的 ...

  7. Java熔断器比较_线上防雪崩利器——熔断器设计原理与实现

    前言 这是一篇根据工作中遇到的问题总结出的最佳实践. 上周六,我负责的业务在凌晨00-04点的支付全部失败了. 结果一查,MD,晚上银行维护,下游支付系统没有挂维护公告,在此期间一直请求维护中的银行, ...

  8. gateway sentinel 熔断 不起作用_技术丨纯电动汽车高压熔断器计算及选型

    一.概述 现阶段动力电池能量密度越来越高,单体电芯容量越来越大,各高压部件一旦出现短路现象而无相应的保护措施,轻则部件损坏,重则引起火灾(尤其动力电池),后果将不堪设想,所以各高压部件回路的保护至关重 ...

  9. java熔断器_详解spring cloud分布式关于熔断器

    spring cloud分布式中,熔断器就是断路器,其实都是一个意思. 为什么要使用熔断器呢? 在分布式中,我们会根据业务或功能将项目拆分为多个服务单元,各个服务单元之间通过服务注册和订阅的方式相互依 ...

最新文章

  1. jQuery 是为事件处理特别设计的。
  2. [20170603]12c Top Frequency histogram.txt
  3. 《Linux Shell脚本攻略》读书笔记第五章 一网情深
  4. 结构体之位域全面分析
  5. leetcode 507. 完美数(Java版)
  6. Python基础(十一)--正则表达式
  7. 【2018开年知识盛会】15位大咖直播分享,全方位解析NoSQL数据库
  8. 卷积法求解系统的零状态响应_信号与系统复习(2013.6)
  9. jemalloc mysql5.6_Mysql-5.6安装编译全教程
  10. C++中BEGIN_MSG_MAP或者BEGIN_MESSAGE_MAP的个人理解
  11. 【LeetCode 剑指offer刷题】树题9:34 二叉树中和为某一值的路径(112. Path Sum)...
  12. network secruity studay day4
  13. android 看图片tv版,易图浏览_易图浏览TV版APK下载_电视版 for 安卓TV_ZNDS软件
  14. IOS_3DTouch实现
  15. JAVA中输出分两栏,老司机搞定Java 设置Word分栏
  16. 【python入门小知识】实现人名全大写,全小写,首字母大写
  17. 城市交通公众号2021年头部内容发布
  18. vuex的state数据丢失
  19. 硬件设计之JTAG转USB转换芯片
  20. HTML5支持服务器发送事件

热门文章

  1. 【VB与数据库】——机房收费系统之结账
  2. 乐观锁与悲观锁、自旋锁
  3. 详解分析MySQL8.0的内存消耗
  4. python面向对象:光学元件类的实现
  5. java 输出大于n的质数_Java 计算并打印第n个质数
  6. 2008最佳显微照片公布
  7. 软件工程作业---结对编程の九宫格拼图扩展
  8. 有关多项式处理的各种算法总结
  9. 华为技术有限公司总裁任正非
  10. 【PHP框架 | Laravel8 系列5】 - 视图与CSRF保护