springcloud微服务-hystrix

hystrix的作用:防止服务雪崩,隔离异常服务,提供降级方案

requestCache,在一个请求中有效。

 

降级步骤:

1.写一个降级类

2.通过hystrixcommand注解,指定降级方法,并且可以实现多级降级

 

熔断步骤:

  1.熔断配置参数,在一定时间窗口内,请求数量达标,错误率达标,则开启熔断,经过一定时间,进入半开启状态,尝试发起请求,如果请求成功,则熔断器关闭,否则继续开启。

    

 

 互联网项目主链路保卫战

关键词:钱和流量

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

线程隔离:

1.线程池,默认。性能比信号量差,但是能主动进行超时判定。

2.信号量,只建议在超高并发的非外部接口的调用上使用,直接使用tomcat的容器线程,没有新的资源开销。 execution.isolation.strategy = ExecutionIsolationStrategy.SEMAPHORE

 

yml文件配置hystrix降级

hystrix:
command:
#有的属性是默认配置,为了教学目的
default:
fallback:
enabled: true
circuitBreaker:
enabled: true
#超过50%错误开启熔断
errorThresholdPercentage: 50
#5个request之后才开始统计
requestVolumeThreshold: 5
#10秒之后进入半开状态
sleepWindowInMillisecond: 10000
execution:
timeout:
enabled: true
#可以指定线程隔离方式是线程池还是信号量
isolation:
thread:
interruptOnTimeout: true
interruptOnFutureCancle: true
timeoutInMilliseconds: 10000
metrics:
rollingStats:
#时间窗口统计
timeInMilliseconds: 20000
#计数桶,要能被时间窗口整除,用来均匀分布
numBuckets: 10
rollingPercentile:
#时间窗口统计
timeInMilliseconds: 20000
#计数桶,要能被时间窗口整除,用来均匀分布
numBuckets: 10
bucketSize: 300
#对特定配置属性的重载
loginFail:
execution:
isolation:
thread:
timeoutInMilliseconds: 3000

解决amigious mapping错误的方法:
1.@enableFeignClients注解,指定clients属性,把所有要加载的类罗列出来
2.原始feign接口不指定requestmapping
3.原始feign接口不指定feignClient

 

posted @ 2020-08-08 18:22  红嘴鲤鱼  阅读(300)  评论(0编辑  收藏  举报