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

淘宝做任务网站wordpress 官方app

淘宝做任务网站,wordpress 官方app,建设合同网上备案上哪个网站,网站开发app开发培训在微服务架构中#xff0c;服务之间的通信是非常频繁的。而使用OpenFeign可以极大简化微服务之间的HTTP通信。但在复杂的分布式系统中#xff0c;服务之间的调用可能会因为网络问题、服务故障等原因而失败。因此#xff0c;实现服务调用的重试机制显得尤为重要。Resilience4… 在微服务架构中服务之间的通信是非常频繁的。而使用OpenFeign可以极大简化微服务之间的HTTP通信。但在复杂的分布式系统中服务之间的调用可能会因为网络问题、服务故障等原因而失败。因此实现服务调用的重试机制显得尤为重要。Resilience4j是一个功能强大的库它提供了多种容错机制包括重试Retry、熔断CircuitBreaker、限流RateLimiter等。本篇文章将详细介绍如何在Spring Cloud中使用Resilience4j Retry对OpenFeign进行重试。 一、Resilience4j Retry原理  Resilience4j的Retry模块允许在调用失败时进行自动重试。它支持以下几种特性 自定义重试次数可以配置最大重试次数。自定义等待时间可以配置每次重试之间的等待时间。重试条件可以配置哪些异常类型触发重试。 Resilience4j Retry的工作流程如下 方法调用对目标方法进行调用。异常捕获如果目标方法抛出配置的异常则捕获该异常。重试判断判断是否满足重试条件以及重试次数是否已达到上限。重试等待如果满足重试条件且重试次数未达到上限则等待配置的时间后再次尝试调用。降级处理如果重试次数达到上限依然无法成功调用则执行降级处理逻辑。 二、项目准备 首先确保你的Spring Cloud项目中已经引入了必要的依赖包括Spring Cloud OpenFeign和Resilience4j。 1. 引入依赖 在pom.xml中添加以下依赖 !--resilience4j-- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-circuitbreaker-resilience4j/artifactId /dependency !-- 由于resilience4j需要AOP的包所以必须导入AOP包 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency 2. 启用Feign Clients 确保你的Spring Boot应用程序主类上或者配置类上有EnableFeignClients注解 Configuration EnableFeignClients(basePackages com.springcloud.sample.service) Import(FeignClientsConfiguration.class) public class FeignConfiguration {/*** Set the Feign specific log level to log client REST requests.*/Beanfeign.Logger.Level feignLoggerLevel() {return feign.Logger.Level.BASIC;} } 三、配置Resilience4j Retry  在你的application.yml或application.properties文件中配置Resilience4j的Retry策略。例如 resilience4j.retry:configs:default:maxRetryAttempts: 3waitDuration: 2sretryExceptions:- org.springframework.web.client.HttpServerErrorException- java.io.IOException- feign.FeignException 解释 maxRetryAttempts: 最大重试次数这里设置为3次。waitDuration: 每次重试之间的等待时间这里设置为2秒。retryExceptions: 配置哪些异常类型触发重试这里包括HttpServerErrorException、IOException和FeignException。 四、创建Feign客户端接口 创建一个Feign客户端接口来定义服务间的调用。例如 FeignClient(pay-service) public interface PayService {GetMapping(/pay/{id})String payOrder(PathVariable(id) Integer id);} 五、使用Retry注解 在调用Feign客户端的方法上添加Retry注解并创建一个fallback方法用于定义服务调用失败后的降级处理逻辑。例如 RestController public class OrderController {private static final Logger log LoggerFactory.getLogger(OrderController.class);Autowiredprivate PayService payService;GetMapping(/order/{id})Retry(name paymentService, fallbackMethod fallback)public String order(PathVariable(id) Integer id){log.info(Request Pay For Order id: {}, id);//通过open feign远程调用支付服务return payService.payOrder(id);}//fallback就是服务降级后的兜底处理方法public String fallback(Integer id,Throwable t) {log.info(Pay Service invoke failed for order ID: {}, id);log.error(Error: {}, t.getMessage());return Pay Service Was Busy Now. Please try again later!;} } 通过上述步骤当payOrder方法调用失败时Resilience4j的Retry机制将自动进行重试。如果重试次数超过配置的最大重试次数Fallback类中的降级逻辑将会被执行。 六、测试 我我们通过关闭目标服务pay-service来测试重试机制是否正常工作。在目标服务不可用的情况下请求/order/1接口应该会看到系统进行多次重试然后返回降级信息。 1. 在浏览器中访问order接口 http://localhost:8082/order/1 在访问以上地址后浏览器并没有立刻返回结果应该正在进行重试。因为我们已经关闭了目标服务在等待几秒之后浏览器返回了降级后的结果。如下 2. 在控制台中验证是否重试过  从上面的log中我们可以看出一共请求了3次和我们配置的maxRetryAttempts3 一致每次请求间隔2s是我们在配置文件中指定的。并且在最后一次重试任然失败后走到了降级的方法 fallback中去返回默认的降级结果。和我们预期的一样retry能够正常工作。并且在retryExceptions中我们可以选择下游返回哪些异常时进行重试我们在进行业务逻辑处理时可以灵活应用。 七、总结 通过上述配置和代码示例我们在Spring Cloud项目中成功集成了Resilience4j的Retry机制为OpenFeign的服务调用提供了自动重试功能。Resilience4j提供的灵活配置使得我们可以根据实际需求精细控制重试策略从而提高系统的可靠性和稳定性。 希望这篇文章能帮助你更好地理解和使用Resilience4j Retry对OpenFeign进行重试。如果你有任何问题或建议欢迎在评论区留言交流。
http://www.w-s-a.com/news/956298/

相关文章:

  • 做的网站浏览的越多越挣钱基于jsp的网站开发开题报告
  • 好的做问卷调查的网站好网站调用时间
  • 广州微网站建设平台阿里云国外服务器
  • 如何把做好的网站代码变成网页wordpress shortcode土豆 视频
  • 网站改版竞品分析怎么做中山网站建设文化价格
  • 玉林市网站开发公司电话做网站空间 阿里云
  • 南充做网站略奥网络免费的正能量视频素材网站
  • 电子商务网站开发的基本原则汕头网站制作流程
  • 网站访问量突然增加合肥宣传片制作公司六维时空
  • 建设购物网站流程图怎么找网站
  • 阿里云部署多个网站制作小程序网站源码
  • 博罗东莞网站建设网站免费源代码
  • 网站规划与设计范文桂平网站建设
  • 网站备案号密码wordpress邮箱发送信息错误
  • 模板的网站都有哪些关键词搜索工具爱站网
  • 鲜花网站建设的利息分析企业网站建设方案书
  • 深圳网站平台石家庄做商城网站的公司
  • 微网站营销是什么私人订制网站有哪些
  • 浙江建设工程合同备案网站新手做网站教程
  • 网站优化关键词排名自己怎么做wordpress安装主题失败
  • 成都建设银行招聘网站网站的切换语言都是怎么做的
  • 网站网业设计wordpress 很差
  • 网站开发软件著作权归谁网站悬浮窗广告
  • 如何提升网站alexa排名货运网站源码
  • 如何看自己网站流量梧州网站设计理念
  • 商城网站建设特点有哪些信息门户
  • 弄一个网站临沂有哪几家做网站的
  • 广州个人网站制作公司网站建设公司价
  • 免费建设网站赚钱小程序开发文档pdf
  • ucenter 整合两个数据库网站网店推广技巧