博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生产技巧:Feign如何控制Hystrix的启停、超时、熔断?
阅读量:6683 次
发布时间:2019-06-25

本文共 1284 字,大约阅读时间需要 4 分钟。

  hot3.png

原文: ,转载请说明出处。

这也是一篇写于2017-08前后的工作日志,当时由于项目比较多,很多团队对Feign和Hystrix之间的小暧昧搞不清楚,所以写了本篇文章,希望对大家的工作有所帮助。

  1. 要想全局关闭Hystrix,只需使用如下配置即可:

    feign.hystrix.enabled: false

    这样,就会为所有服务关闭掉Feign的Hystrix支持。也就是说:A服务调用B服务,如果在A服务上设置该属性,A服务的所有Feign Client都不会再有Hystrix熔断的能力了。

  2. 全局配置够灵活,一般不能满足实际项目的要求。实际项目中,往往需要精确到指定服务的细粒度配置。例如:调用服务a时关闭Hystrix,调用b服务时打开Hystrix。可如下配置:

    @FeignClient(name="a", configuration = FooConfiguration.class)

    那么,这个FooConfiguration只需要编写如下即可:

    public class FooConfiguration {    @Bean	@Scope("prototype")	public Feign.Builder feignBuilder() {		return Feign.builder();	}}

    这样,对于name = "a" 的Feign Client都会关闭Hystrix支持。

  3. 很多场景下,关闭Hystrix相对暴力,特别是上文编写代码的方式。很多时候,我们可能更希望只是关闭熔断,抑或是关闭超时保护。此时要怎么搞呢?

    关闭熔断:

    # 全局关闭熔断:hystrix.command.default.circuitBreaker.enabled: false# 局部关闭熔断:hystrix.command.
    .circuitBreaker.enabled: false

    设置超时:

    # 全局设置超时:hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 1000# 局部设置超时:hystrix.command.
    .execution.isolation.thread.timeoutInMilliseconds: 1000

    关闭超时:

    # 全局关闭:hystrix.command.default.execution.timeout.enabled: false# 局部关闭:hystrix.command.
    .execution.timeout.enabled: false

    其中的<HystrixCommandKey> ,是个变量,可以打开服务的hystrix.stream 端点即可看到,也可在Hystrix Dashboard中查看。

转载于:https://my.oschina.net/eacdy/blog/2966895

你可能感兴趣的文章
c++动态内存开辟之 new 的三种形态
查看>>
R语言实战(十)处理缺失数据的高级方法
查看>>
HP data protector的运作过程和名词解释
查看>>
rsync配置教程
查看>>
css优先级详解
查看>>
小白第三天
查看>>
2016年linux运维人员必会开源运维工具体系
查看>>
理性分析Python和C#哪个更有前途?
查看>>
mysql主备复制I/O线程不能同步问题
查看>>
高速缓存dns
查看>>
安装lenovo SR860 7x69服务器遇到的坑
查看>>
MIT透过机器学习技术用胺基酸预测蛋白质结构
查看>>
python课堂笔记之django-day01(8)
查看>>
Hadoop之HDFS分布式文件系统具有哪些优点?
查看>>
小型企业公司路由器做DHCP服务器
查看>>
愿不负青春 历经风雨 归期我们仍是少年|六一大童节
查看>>
洞悉物联网发展1000问之物联网与大数据,人工智能到底是什么关系?
查看>>
JAVA数组和面向对象
查看>>
NVisionXR_iOS教程四 —— 在立方体上贴材质
查看>>
Microsoft Visual C++ Runtime library not enough space for thread data
查看>>