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

spring boot 2.7 + seata +微服务 降级失败问题修复

文章引流

一个简单而使用的API管理工具

版本号

spring boot 2.7.17
spring-cloud-dependencies 2021.0.8
spring-cloud-circuitbreaker-resilience4j 2.1.7
spring-cloud-starter-alibaba-seata 2021.1
jdk 1.8

原因分析

  1. 未配置属性
feign.circuitbreaker.enabled=true
# 未开启该配置,则该代码对应的bean 不会初始化
FeignAutoConfiguration.CircuitBreakerPresentFeignTargeterConfiguration.circuitBreakerFeignTargeter()
  1. seata 的配置对feign存在一定的影响
SeataFeignClientAutoConfiguration.feignBuilder()
// 该bean的配置会影响服务降级的实现过程
// 改bean初始化的是 Feign.builder(),具体的自行看源码
// 进而导致 FeignCircuitBreaker.builder() 无法初始化,源码在 FeignClientsConfiguration.CircuitBreakerPresentFeignBuilderConfiguration.circuitBreakerFeignBuilder

修复方案

// 添加配置 feign.circuitbreaker.enabled=true
// 自定义 Feign.Builder 对应的Bean的初始化

    @Bean
    @ConditionalOnBean(CircuitBreakerFactory.class)
    public Feign.Builder circuitBreakerFeignBuilder(BeanFactory beanFactory) throws Exception {
       // 此处需要通过反射的方式实现,原因。。。。自己看源码
        Constructor<SeataFeignClient> declaredConstructor =
                SeataFeignClient.class.getDeclaredConstructor(BeanFactory.class);
        declaredConstructor.setAccessible(Boolean.TRUE);
        SeataFeignClient seataFeignClient = declaredConstructor.newInstance(beanFactory);
        return FeignCircuitBreaker.builder().client(seataFeignClient);
    }

相关文章:

  • VSCode轻松调试运行C#控制台程序
  • 【C/C++】如何求出类对象的大小----类结构中的内存对齐
  • useLayoutEffect和useEffect有什么区别?
  • Expert Domain-Driven Design (DDD) Implementation in .NET 2024-10
  • Arduino项目实战:使用MQ-2气体传感器与OLED屏幕监测环境气体
  • Hadoop第2课(伪分布式集群的搭建)
  • Java——基本数据类型
  • 挖src实用脚本开发(二)
  • 命名管道通信和共享内存通信
  • 【开源】低代码 C++程序框架,Linux多线程程序
  • 欧拉动力学方程的推导(持续更新)
  • 第十四届蓝桥杯:DFS之飞机降落
  • Java 大视界 -- Java 大数据中的时间序列数据异常检测算法对比与实践(103)
  • Joycon-Robotics库的安装报错解决记录
  • Hadoop简介
  • 【朝夕教育】《鸿蒙原生应用开发从零基础到多实战》003-TypeScript 中的类
  • 转化率(漏斗分析)——mysql计算过程
  • 【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.3.1单节点安装(Docker与手动部署)
  • DDD该怎么去落地实现(4)多对多关系
  • PyTorch的.pt文件详解
  • 古稀之年的设计家吴国欣:重拾水彩,触摸老上海文脉
  • 意德首脑会谈,梅洛尼警告欧盟绿色政策面临“工业荒漠化”
  • 雅安市纪委监委回应黄杨钿甜耳环事件:相关政府部门正在处理
  • 《五行令》《攻守占》,2个月后国博见
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 特朗普再提“接管”加沙,要将其变为“自由区”