当前位置: 首页 > 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);}
http://www.lryc.cn/news/543992.html

相关文章:

  • python-leetcode-最长公共子序列
  • centos 7 停更后如何升级kernel版本 —— 筑梦
  • WPF-3天快速WPF入门并达到企业级水准
  • 爬虫反爬:CSS位置偏移反爬案例分析与实战案例
  • Ubuntu20.04安装Redis
  • Ubuntu 22.04 安装Nvidia驱动加速deepseek
  • OkHttp、Retrofit、RxJava:一文讲清楚
  • 星环科技推出DeepSeek全场景解决方案:即开即用、企业级部署、端侧智能三位一体
  • Redis缓存一致性难题:如何让数据库和缓存不“打架”?
  • 动态部署Web应用程序与web.xml配置详解
  • 2025年软考报名费用是多少?全国费用汇总!
  • DeepSeek 15天指导手册——从入门到精通 PDF(附下载)
  • 【Javascript】js精度丢失
  • 让Word插上AI的翅膀:如何把DeepSeek装进Word
  • 秒杀系统的常用架构是什么?怎么设计?
  • 【文件基础操作】小笔记
  • RabbitMQ系列(七)基本概念之Channel
  • 本地搭建Koodo Reader书库结合内网穿透打造属于自己的移动图书馆
  • DeepSeek R1 训练策略4个阶段解析
  • 【博资考4】网安学院-硕转博考试内容
  • 30 分钟从零开始入门 CSS
  • C语言综合案例:学生成绩管理系统
  • 使用python做http代理请求
  • 数据库事务的基本要素(ACID)
  • DeepSeek R1满血+火山引擎详细教程
  • 大型语言模型技术对比:阿里Qwen qwq、DeepSeek R1、OpenAI o3与Grok 3
  • ArcGIS Pro可见性分析:精通地形视线与视域分析
  • 计算机工具基础(五)——Vim
  • Android应用app实现AI电话机器人接打电话
  • Mobaxterm服务器常用命令(持续更新)