问剑白玉京 2024-03-23 20:33 采纳率: 74.2%
浏览 23
已结题

Sentinel整合openFeign出错,如何开openfeign对sentinel的支持

Sentinel整合openFeign出错,如何开openfeign对sentinel的支持

  1. 版本:

    img

  2. 在消费者一侧,添加如下配置:

    # 激活Sentinel对Feign的支持
    feign:
    sentinel:
     enabled: true
    

启动报错:

Error creating bean with name 'applicationTaskExecutor': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)

img

是版本太高了吗?

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 Java领域优质创作者 2024-03-23 20:34
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    可能不是版本太高的问题,而是配置不正确导致的。可以尝试以下解决方案:
    1. 升级Spring Cloud版本,参考官方文档中的对应版本的配置方式。
    2. 检查依赖是否正确,比如是否引入了正确的Feign和Sentinel依赖,是否排除了其他与其冲突的依赖。
    3. 检查配置是否正确,比如是否正确配置了Feign和Sentinel的相关属性,是否正确使用了注解和配置文件等。
    4. 尝试在启动类中加上注解@EnableAsync,或者手动配置一个Executor Bean以解决该错误。
    5. 如果以上方法都不行,可以尝试重写Spring Boot自动装配的一些组件,或者调整一些开关来解决该问题。 代码实例: 可以尝试在启动类中加入以下代码:
    @EnableAsync
    public class MyApplication {
        @Bean
        public Executor applicationTaskExecutor() {
            ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
            executor.setMaxPoolSize(500);
            executor.setThreadNamePrefix("My-Thread-Pool-");
            return executor;
        }
        public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
        }
    }
    

    该代码是使用@EnableAsync注解来启用异步操作,并手动配置了一个Bean来覆盖Spring Boot默认的Executor Bean。如果仍然无法解决问题,可以尝试调整自动装配的一些组件,或者联系相关开发人员查看具体原因。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 创建了问题 3月23日