hystrix原理总结
hystrix降级的场景有3种
1.熔断触发降级
2.请求超时触发降级
3.资源隔离触发降级
熔断触发降级
当10秒内达到20个请求并且请求错误率达到50%的时候
调用fallback()降级
请求超时降级
单请求执行时间超过execution.isolation.thread.timeoutInMilliseconds配置的
值时触发降级
资源隔离触发降级
1信号量隔离
execution.isolation.strategy=SEMAPHORE
execution.isolation.semaphore.maxConcurrentRequests - 信号量最大并发数。默认
值是10。常见配置500~1000,并发数超过时触发降级调用fallback逻辑
2线程池隔离(默认使用)
execution.isolation.strategy=THREAD
@HystrixProperty(name = "coreSize", value = "30"),//线程池大小
@HystrixProperty(name = "maxQueueSize", value = "100"),//最大队列长度
@HystrixProperty(name = "keepAliveTimeMinutes", value ="2"),//线程存活时间
@HystrixProperty(name = "queueSizeRejectionThreshold", value= "15")//拒绝请求
hystrix的数据统计是采用滑动窗口
滑动窗口:流量控制技术
默认10秒统计时长
汇总每秒的请求数
基于RxJava的响应式开发框架实现