spring微服务之Hystrix的介绍与使用

目录

1.Hystrix作用

2.yml配置

3.注解

4.request_cache

1.生成同一个上下文

2.添加两个注解

3.指定commandKey

4.除了第一次调用之外,其他的都是走缓存;

5.HystrixCommand详解

6.常见的降级策略


1.Hystrix作用

        在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很常见的。
        Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。Hystrix 通过将依赖服务进行资源隔离,进而阻止某个依赖服务出现故障时在整个系统所有的依赖服务调用中进行蔓延;同时Hystrix 还提供故障时的 fallback 降级机制。
        总而言之,Hystrix 通过这些方法帮助我们提升分布式系统的可用性和稳定性。


2.yml配置
# 开启Feign下面的Hystrix功能
feign.hystrix.enabled=true
# 是否开启服务降级
hystrix.command.default.fallback.enabled=true

熔断判断:

hystrix.command.default.metrics.rollingStats.timeInMilliseconds=20000
# 熔断的前提条件(请求的数量),在一定的时间窗口内,请求达到5个以后,才开始进行熔断判断
hystrix.command.default.circuitBreaker.requestVolumeThreshold=5
# 超过50%的失败请求,则熔断开关开启
hystrix.command.default.circuitBreaker.errorThresholdPercentage=50
# 当熔断开启以后,经过多少秒再进入半开状态
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=15000

超时判断:

# 全局超时
hystrix.command.default.execution.timeout.enabled=true
# 超时时间
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=1000
# 超时以后终止线程
hystrix.command.default.execution.isolation.thread.interruptOnTimeout=true
# 取消的时候终止线程
hystrix.command.default.execution.isolation.thread.interruptOnFutureCancel=true
# 特定方法的超时设置 hystrix.command.MyService#retry(int).execution.isolation.thread.timeoutInMilliseconds=3000
3.注解

1.启动类添加@EnableCircuitBreaker

2.熔断方法添加@HystrixCommand(fallbackMethod = "熔断后调用的方法")

4.request_cache

        hystrix支持将一个请求结果缓存起来,下一个具有相同key的请求将直接从缓存中取出结果,减少请求开销。要使用该功能必须管理HystrixRequestContext,如果请求B要用到请求A的结果缓存,A和B必须同处一个context。通过HystrixRequestContext.initializeContext()和context.shutdown()可以构建一个context,这两条语句间的所有请求都处于同一个context,当然这个管理过程可以通过自定义的filter来实现,相当于一个thradlocal

1.生成同一个上下文
@Cleanup HystrixRequestContext context =
        HystrixRequestContext.initializeContext();
2.添加两个注解
@CacheResult添加在方法上
@CacheKey添加在键上
3.指定commandKey
@HystrixCommand(commandKey = "cacheKey")
4.除了第一次调用之外,其他的都是走缓存;
5.HystrixCommand详解

HystrixCommand配置参数详解 · JeecgBoot 开发文档 · 看云

6.常见的降级策略

1.富文本   返回最近的一次快照信息;

2.图片 返回主图,可以对主图进行备份;

3.评论等,直接返回空;

参考:

1.SpringCloud-Hystrix:服务熔断,降级,限流_hystris_洛基还是内马尔的博客-CSDN博客

2.详解spring cloud hystrix请求缓存(request cache) - 码农教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值