线程隔离,服务降级
1.3.1.原理
Hystrix为每个依赖服务调用分配一个小的线程池,如果线程池已满调用将被立即拒绝,默认不采用排队.加速失败判定时间。
用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务,
如果线程池已满,或者请求超时,则会进行降级处理,什么是服务降级?
服务降级:优先保证核心服务,而非核心服务不可用或弱可用。
用户的请求故障时,不会被阻塞,更不会无休止的等待或者看到系统崩溃,
至少可以看到一个执行结果
(例如返回友好的提示信息) 。
服务降级虽然会导致请求失败,但是不会导致阻塞,
而且最多会影响这个依赖服务对应的线程池中的资源,
对其它服务没有响应。
触发Hystix服务降级的情况:
- 线程池已满
- 请求超时