• Hystrix在SpringCloud2020版本中正式移除,在进行版本升级的过程中就需要替换熔断组件,熔断组件的替换也比较简单因为Resilience4J已经加入到了SpringCloud的大家庭中,属于SpringCloudCircuitBreaker下的一员,所以在进行熔断组件的切换也是比较简单的
  • 首先移除原有的SpringCloudHystrix的相关依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
  • 新增Resilience4J的坐标
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
</dependency>
<dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-spring-cloud2</artifactId>
</dependency>
  • 启动类的调整
 删除@EnableHystrix
  • 配置文件的调整将feign.hystrix.enable删除,删除以hystrix.command开头的配置文件替换为CircuitBreaker
feign:circuitbreaker:enabled: true
  • 以前的@FeginClient已经对应的熔断类不需要变更,需要注意的是指定fallBack时需要指定的是fallBackFactory属性
  • 新增Resilience4J的配置文件
@Configuration
public class ReactiveResilience4JCircuitBreakerConfig {@Beanpublic Customizer<Resilience4JCircuitBreakerFactory> circuitBreakerFactory() {//自定义断路器配置CircuitBreakerConfig circuitBreakerConfig=CircuitBreakerConfig.custom() //// 滑动窗口的类型为时间窗口.slidingWindowType(CircuitBreakerConfig.SlidingWindowType.TIME_BASED)// 时间窗口的大小为60秒.slidingWindowSize(60)// 在单位时间窗口内最少需要5次调用才能开始进行统计计算.minimumNumberOfCalls(5)// 在单位时间窗口内调用失败率达到70%后会启动断路器.failureRateThreshold(70)// 允许断路器自动由打开状态转换为半开状态.enableAutomaticTransitionFromOpenToHalfOpen()// 在半开状态下允许进行正常调用的次数.permittedNumberOfCallsInHalfOpenState(5)// 断路器打开状态转换为半开状态需要等待60秒.waitDurationInOpenState(Duration.ofSeconds(60))// 所有异常都当作失败来处理.recordExceptions(Throwable.class).build();return factory -> factory.configureDefault(id -> new Resilience4JConfigBuilder(id)//超时规则,默认1s.timeLimiterConfig(TimeLimiterConfig.custom().timeoutDuration(Duration.ofSeconds(20)).build())//设置断路器配置.circuitBreakerConfig(circuitBreakerConfig).build());}@Beanpublic Resilience4jBulkheadProvider defaultBulkheadCustomizer() {ThreadPoolBulkheadConfig threadPoolBulkheadConfig=ThreadPoolBulkheadConfig.custom()//最大线程数.maxThreadPoolSize(500)//核心线程数.coreThreadPoolSize(100)//拒绝策略.rejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy())//线程存活时间.keepAliveDuration(Duration.ofMillis(20L))//队列大小.queueCapacity(Integer.MAX_VALUE).build();ThreadPoolBulkheadRegistry threadPoolBulkheadRegistry=new InMemoryThreadPoolBulkheadRegistry(threadPoolBulkheadConfig);BulkheadConfig bulkheadConfig=BulkheadConfig.custom()//最大并发数量.maxConcurrentCalls(300)//最大等待时间.maxWaitDuration(Duration.ofMillis(500)).build();BulkheadRegistry bulkheadRegistry=new InMemoryBulkheadRegistry(bulkheadConfig);return new Resilience4jBulkheadProvider(threadPoolBulkheadRegistry,bulkheadRegistry);}}
  • 无缝切换完成

SpringCloudHystrix无缝切换到Resilience4J相关推荐

  1. 是否存在两台 MacOS 之间无缝切换的办法?

    可能是奢望,不过万一实现了呢? 假设我有一台 Mac mini 和一台 Macbook Pro,大多数时候我会在 Mac Mini 上开发.但是偶尔坐累了(站累了)我想拿起 MacBook Pro 躺 ...

  2. 网易云游戏来了:手机电脑电视随时接入可玩,高流畅度低延迟,还能跨终端无缝切换...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 允中 发自 凹非寺 量子位 报道 | 公众号 QbitAI 囿于版号的游戏行业,终于快 ...

  3. 安卓蓝牙键盘按键映射_多设备无缝切换 雷柏XK100无线蓝牙轻薄键盘评测

    对于现代办公用户来讲,肯定很多人会遇到像我一样的问题,那就是桌面上除了笔记本电脑之外,还有平板.手机等设备,而且这三个设备没办法整合到一块屏幕上,每当需要切换设备进行文字输入的时候,就会浪费很多的时间 ...

  4. 切换终端_首款搭载鸿蒙系统的终端来了:配自研芯片,能跟手机无缝切换

    功能类似于互联网智能电视的荣耀智慧屏正式发布. 8月10日下午,广东东莞篮球中心,荣耀发布了首款搭载华为鸿蒙OS操作系统的智能终端--荣耀智慧屏. 前一天,华为刚刚发布了自研的操作系统鸿蒙OS,这是华 ...

  5. vuefullcalendar怎么判断切换上下月_房间太多、楼上楼下,终极解决家里wifi信号无缝切换问题...

    相信不少人有我一样的烦恼,房间太多,或者楼上楼下,家里的wifi信号总是不能无缝切换.路由器放在配电箱,除了客厅信号不错外,一旦到了其他房间,掉线.网速慢等问题让人很苦恼.特别是和小伙伴一起玩游戏一边 ...

  6. bootstrap轮播图 原点变为方块_JS实现无缝切换轮播图(自动+手动)

    一.背景 说起轮播图,大家应该都不陌生,各大购物网站和面试题里都能看到它的身影. 实现上也并不困难,而写这篇文章是想整理一下自己心血来潮写的代码,以及实现过程中的一些思考,大家也可以顺便复习巩固一下. ...

  7. android无缝切换播放器,android 视频 无缝切换 无缝播放 surfaceview

    android 视频 无缝切换 无缝播放 surfaceview 最近做一个app,其中有一个控件要不断的播放视频,切换视频,然后遇到每次切换视频都会黑屏一会. baidu,google没有找到有效的 ...

  8. Zabbix高可用,实现zabbix的无缝切换,无故障时间

    作者:骚年有梦 联系方式:lianglian8866@163.com zabbix高可用设计目标: 1.keepalived服务优先级选择切换机制:对于zabbix服务器来说,只要zabbix存活和m ...

  9. jquery 图片无缝切换

    想要和园友分享一下学习jquery的经验.总结,更希望园友提出点建议. 第一次写,有不好的地方请多多见谅! 文笔有限,很多时候不知道怎么来描述,唉.硬伤啊!!那只好多做了,贴代码... ok,废话少说 ...

最新文章

  1. OpenCV 【十二】OpenCV如何扫描图像、利用查找表和计时
  2. 计算机中音乐设备数字接口,一种计算机用声卡封存装置的制作方法
  3. laravel excel迁移到lumen
  4. DHCP服务搭建(1)
  5. 7.33oracle安装不了,在RedHat7.0下安装Oracle的经历
  6. c语言做一个小程序报告,《C语言程序设计实践》课程报告30个小程序组合成一个大程序.doc...
  7. 程序以html形式发送邮件注意问题
  8. java生成和读取keystore_java-如何以编程方式创建新的KeyStore?
  9. 集训8.21树状数组讲解
  10. 【转】(Jquery)避免数据相加小数点后产生多位数和计算精度损失
  11. 【ML小结5】决策树(ID3、C4.5、CART)
  12. Fiddler抓包快速入门-windows网页抓包
  13. 再谈Redis应用场景
  14. 新员工入职表_医院新员工入职培训怎么做?
  15. 为什么blender安装后无法打开_CAD软件打开图纸后钢筋符号无法读取的解决办法...
  16. TM32F103C8T6(晶振电路,复位电路,调试下载串口详解)
  17. 这款网页翻译插件,用了就舍不得戒掉
  18. js距离单位换算_1等于多少公里
  19. Zabbix 邮件报警、钉钉报警、微信报警
  20. spring入门总结

热门文章

  1. 武汉地图json文件_echarts各省市地图js和json文件
  2. 数字孪生论文阅读笔记【1.1】
  3. 量子计算机适用场景,最新量子计算机能够模拟宇宙诞生之初的情景
  4. swoole系列(一)- swoole入门与介绍
  5. 美国马萨诸塞州修订法律,称旨在保护消费者免受数据泄露侵害
  6. C++语言程序设计上机指导(二级),C++语言程序设计上机实验及学习指导(第2版)...
  7. 虚幻引擎_材质+后处理实现中国风水墨渲染
  8. 小羊驼和你一起学习cocos2d-x与lua之四(泛型for学习)
  9. html常用特效,网页常用特效整理:初级篇-网页设计,HTML/CSS
  10. 科技型中小企业评价的好处