springcloud feign集成hystrix方式

 更新时间:2023年08月28日 10:17:41   作者:lipengxs  
这篇文章主要介绍了springcloud feign集成hystrix方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

本章介绍feign集成hystrix

1、增加pom依赖`

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
		</dependency>

2、启动类中增加注解

@EnableHystrix

3、增加feign接口fallback以及相关配置

DemoService

@ConditionalOnProperty(name = "app.host.abcurl")
@FeignClient(value = "demo-service", url = "${app.host.abcurl}" ,fallback = DemoServiceFallbackImpl .class)
public interface DemoService {
    @GetMapping("/v1/api/getCateData")
    ApiResponse<Page<Object>> getCateData(@RequestParam Map<String,String> params);
    @GetMapping("/v1/api/getProductData")
    ApiResponse<Page<Detail>> getProductData(@RequestParam Map<String,String> params);
}

DemoServiceFallbackImpl

@Slf4j
@Component
public class DemoServiceFallbackImpl implements DemoService {
    @Override
    public ApiResponse<Page<Object>> getCateData (Map<String, String> params) {
        log.warn("DemoServiceFallbackImpl getCateData fail");
        return null;
    }
    @Override
    public ApiResponse<Page<Detail>> getProductData(Map<String, String> params) {
        log.warn("DemoServiceFallbackImpl getProductData fail");
        return null;
    }
}

4、增加yml相关配置

feign:
  httpclient:
    enabled: true
  hystrix:
    enabled: true
hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: true
        isolation:
          thread:
            timeoutInMilliseconds: 1000 //该配置需要比ribbon超时时间长
      circuitBreaker:
        requestVolumeThreshold: 1000
  threadpool:
    default:
      coreSize: 60
      maxQueueSize: 200
      queueSizeRejectionThreshold: 200
ribbon:
  ReadTimeout: 500
  ConnectTimeout: 500
  ExecTimeout: 500
  MaxAutoRetries: 1 //最好设置超时重试

这里如果需要查看hystrix监控,可以集成Hystrix Dashboard,详情参考

下图是我集成grafana 、prometheus的监控图

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Eclipse中实现JS代码提示功能(图文教程)

    Eclipse中实现JS代码提示功能(图文教程)

    本文通过图文并茂的形式给大家介绍了Eclipse中实现JS代码提示功能,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-11-11
  • 值得Java开发者关注的7款新工具

    值得Java开发者关注的7款新工具

    作为老牌语言Java,其生态圈也出来了一些有关云服务、监控、文档分享方面的工具,这篇文章主要介绍了Java开发者值得关注的7款新工具,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • RocketMQ特性Broker存储事务消息实现

    RocketMQ特性Broker存储事务消息实现

    这篇文章主要为大家介绍了RocketMQ特性Broker存储事务消息实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • SpringBoot多数据源配置的全过程记录

    SpringBoot多数据源配置的全过程记录

    在用SpringBoot开发项目时,随着业务量的扩大,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面这篇文章主要给大家介绍了关于SpringBoot多数据源配置的相关资料,需要的朋友可以参考下
    2021-11-11
  • 浅析Java中clone()方法浅克隆与深度克隆

    浅析Java中clone()方法浅克隆与深度克隆

    Java克隆(Clone)是Java语言的特性之一,本篇文章主要介绍了Java中的Clone机制是如何工作的,需要的朋友可以参考下
    2017-04-04
  • Java实现Dijkstra算法的示例代码

    Java实现Dijkstra算法的示例代码

    Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。本文主要介绍了实现这一算法的Java代码,需要的可以参考一下
    2022-07-07
  • 详解java CountDownLatch和CyclicBarrier在内部实现和场景上的区别

    详解java CountDownLatch和CyclicBarrier在内部实现和场景上的区别

    这篇文章主要介绍了详解java CountDownLatch和CyclicBarrier在内部实现和场景上的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Java模拟新浪和腾讯自动登录并发送微博

    Java模拟新浪和腾讯自动登录并发送微博

    这篇文章主要为大家详细介绍了Java模拟新浪和腾讯自动登录并发送微博功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Maven dependency plugin使用心得总结

    Maven dependency plugin使用心得总结

    这篇文章主要给大家介绍了关于Maven dependency plugin使用心得的相关资料,Maven是一个常用的Java build Manager,使用Maven可以很好的对Java Project的dependency进行管理,需要的朋友可以参考下
    2023-10-10
  • Java实战之基于TCP实现简单聊天程序

    Java实战之基于TCP实现简单聊天程序

    这篇文章主要为大家详细介绍了如何在Java中基于TCP实现简单聊天程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论