前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud: Feign集成Hystrix(FALLBACKFACTORY 方式)

SpringCloud: Feign集成Hystrix(FALLBACKFACTORY 方式)

作者头像
Freedom123
发布2024-03-29 11:35:29
850
发布2024-03-29 11:35:29
举报
文章被收录于专栏:DevOpsDevOps

01 FeignClient接口定义

代码语言:javascript
复制
@FeignClient(value = "eureka-client",configuration = FeignConfig.class,fallbackFactory = HystrixClientFactory.class)
public interface FeignHystrixInter {
 
    //使用 Spring MVC 的注解来绑定具体该服务提供的 REST 接口
    @GetMapping(value = "/HiController/hi/{name}")
    String hi(@PathVariable(value = "name") String name);
}

02 UserFeignClientWithFactory 定义

代码语言:javascript
复制
//继承 @FeignClient 注解的 接口类
public interface UserFeignClientWithFactory extends FeignHystrixInter {
}

03 HystrixClientFactory 定义

代码语言:javascript
复制
@Component //注入Spring 容器中
public class HystrixClientFactory implements FallbackFactory<FeignHystrixInter> {
 
    private static final Logger logger = LoggerFactory.getLogger(HystrixClientFactory.class);
 
    @Override
    public FeignHystrixInter create(Throwable cause) {
        //一进入异常就能知道什么异常
        HystrixClientFactory.logger.info("fallback; exception was: {}", cause.toString());
        HystrixClientFactory.logger.info("fallback; reason was: {}", cause.getMessage());
        return new UserFeignClientWithFactory() {
            @Override
            public String hi(String name) {
                return "我有两把枪,一把叫射,一把叫啊";
            }
        };
    }
}

04 启动类配置

代码语言:javascript
复制
@SpringBootApplication
//开启服务注册于发现
@EnableDiscoveryClient
//开启 Feign Client 功能
@EnableFeignClients
public class EurekaFeignHystrixClientApplication {

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

}

05 测试

启动 eureka-serve,eureka-client (8762,8763 两个端口),eureka-feign-hystrix-client , 浏览器访问 http://localhost:8761/

在浏览器上 输入 :http://localhost:8767/FeignHystrixController/hi/java,得到结果如下:

关掉eureka-client (8762,8763 两个端口 )服务,结果如下:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 FeignClient接口定义
  • 02 UserFeignClientWithFactory 定义
  • 03 HystrixClientFactory 定义
  • 04 启动类配置
  • 05 测试
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档