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的监控图

总结

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

相关文章

  • LinkedList学习示例模拟堆栈与队列数据结构

    LinkedList学习示例模拟堆栈与队列数据结构

    这篇文章主要介绍了LinkedList学习示例,模拟一个堆栈与队列数据结构,大家参考使用吧
    2014-01-01
  • Java源码解析之ConcurrentHashMap

    Java源码解析之ConcurrentHashMap

    今天带大家分析Java源码,文中对Java ConcurrentHashMap介绍的非常详细,有代码示例,对正在学习Java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java基础教程_判断语句if else

    Java基础教程_判断语句if else

    下面小编就为大家带来一篇Java基础教程_判断语句if else。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • java 串口通信详细及简单实例

    java 串口通信详细及简单实例

    这篇文章主要介绍了java 串口通信详细及简单实例的相关资料,在开发硬件与软件结合的时候,就会用到串口,需要的朋友可以参考下
    2017-01-01
  • Java吃货联盟订餐系统代码实例

    Java吃货联盟订餐系统代码实例

    这篇文章主要介绍了Java订餐系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Java通过XPath获取XML文件中符合特定条件的节点

    Java通过XPath获取XML文件中符合特定条件的节点

    今天小编就为大家分享一篇关于Java通过XPath获取XML文件中符合特定条件的节点,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • redis 使用lettuce 启动内存泄漏错误的解决方案

    redis 使用lettuce 启动内存泄漏错误的解决方案

    这篇文章主要介绍了redis 使用lettuce 启动内存泄漏错误的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码

    SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码

    本文主要介绍了SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java8 Optional的详细使用教程

    Java8 Optional的详细使用教程

    这篇文章主要给大家介绍了关于Java8 Optional的详细使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Java编程中避免equals方法的隐藏陷阱介绍

    Java编程中避免equals方法的隐藏陷阱介绍

    这篇文章主要介绍了Java编程中避免equals方法的隐藏陷阱介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11

最新评论