当前位置: 首页 > news >正文

服务断路器_Resilience4j超时降级

创建模块cloud-consumer-resilience4j-order80

image-20220223172803252

POM引入依赖

<dependencies><!--  引入Eureka 客户端依赖   --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--   引入服务调用依赖 OpenFigen   --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><!-- actuator监控信息完善 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-spring-cloud2</artifactId>
</dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency></dependencies>

修改YML文件

server:port: 80eureka:instance:#实例名字instance-id: cloud-order-resilience4j-consumer80client:# Eureka Server地址service-url:# 单机Eureka server 地址# defaultZone: http://localhost:7001/eurekadefaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/spring:application:# 设置应用名字name: cloud-order-consumerlogging:level:com.hgy.service: debug# 超时机制
resilience4j:timelimiter:instances:delay:# 设置超时时间 5秒timeoutDuration: 2

编写服务提供者提供超时方法

  /*** 超时服务* @return*/@GetMapping("timeout")public String timeout(){try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {e.printStackTrace();}return "success";}

编写服务提供者Controller

@GetMapping("/timeout")
@TimeLimiter(name = "delay",fallbackMethod = "timeoutfallback")public CompletableFuture<String> timeout() {log.info("********* 进入方法 ******");//异步操作CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync((Supplier<String>) () -> (paymentFeignService.timeout()));log.info("********* 离开方法 ******");return completableFuture;}

编写服务降级方法

  /*** 超时服务降级方法* @param e* @return*/public CompletableFuture<ResponseEntity> timeoutfallback(Exception e){e.printStackTrace();return CompletableFuture.completedFuture(ResponseEntity.ok("超时啦"));}

测试

image-20220214172235232

http://www.lryc.cn/news/176531.html

相关文章:

  • 【知识点随笔分析】我看看谁还不会用CURL命令
  • ICCV 2023|Occ2Net,一种基于3D 占据估计的有效且稳健的带有遮挡区域的图像匹配方法...
  • leetcode - 14. Longest Common Prefix
  • MySQL-查询语句语法(DQL)结构(查询操作 一)
  • SWAT-MODFLOW地表水与地下水耦合
  • 工地临时用电之智慧用电:全方位保障用电安全
  • JumpServer开源堡垒机与爱可生云树数据库完成兼容性认证
  • 信息化发展64
  • 什么是全媒体整合营销?如何做好全媒体整合营销呢?
  • 系统集成|第十六章(笔记)
  • hive数据库操作,hive函数,FineBI可视化操作
  • 信息学奥赛一本通 2075:【21CSPJ普及组】插入排序(sort) | 洛谷 P7910 [CSP-J 2021] 插入排序
  • 基于微信小程序的民宿短租酒店预订系统设计与实现(源码+lw+部署文档+讲解等)
  • Python第二次作业(2)【控制台界面】
  • conda创建环境在Collecting package metadata (current_repodata.json)时报错的解决
  • 卤制品配送经营商城小程序的用处是什么
  • 信息化发展65
  • pytho实例--pandas读取表格内容
  • 处理飞书在线文档导出Word后无法自动编号问题
  • C++刷题 全排列问题
  • 求数列a+aa+aaa+aaaa+......前n项和,a和n均由输入获得。
  • ElementUI之首页导航+左侧菜单->mockjs,总线
  • 文心大模型写TodoList项目需求
  • 使用applescript自动化trilium的数学公式环境(二)
  • 机器学习与数据挖掘第三、四周
  • 黎明加水印微信小程序源码 支持流量主接入
  • 22 Python的argparse模块
  • Unity之NetCode多人网络游戏联机对战教程(3)--NetworkObject组件讲解
  • 正点原子lwIP学习笔记——Socket接口UDP实验
  • 连接组学中的机器学习:从表征学习到模型拟合