springcloud-feign的hystrix支持

关于hystrix的介绍,可以看我的上篇博客:springcloud-断路器hystrixs

本文主要介绍在feign中,如何使用hystrix

 

1、pom依赖

复制代码
      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>
        <dependency>
            <!-- hystrix 断路器 -->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>com.xwj</groupId>
            <artifactId>spring-cloud-core</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
复制代码

 

2、入口开启feign和hystrix

复制代码
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients // 开启feign
@EnableCircuitBreaker // 开启断路器
public class ConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }

}
复制代码

 

3、在yml文件打开feign对hystrix的支持(关于hystrix的配置,本篇不做介绍)

feign:
  hystrix:
    enabled: true #打开feign对hystrix的支持

 

4、修改FeignClient,增加 fallback 参数,这是接口的降级回调类

@FeignClient(name = "service-provider", fallback = UserFallback.class)
public interface UserFeignClient {

    @GetMapping("/find/{id}")
    UserEntity findById(@PathVariable("id") Long id); // PathVariable必须得设置value

}

 

5、创建降级回调类UserFallback

复制代码
/**
 * 错误回调类
 */
@Component
public class UserFallback implements UserFeignClient {

    @Override
    public UserEntity findById(Long id) {
        UserEntity user = new UserEntity();
        user.setId("1000");
        user.setAge(12);
        return user;
    }

}
复制代码

 

posted @   仅此而已-远方  阅读(359)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示