android熔断,限流熔断技术

本文介绍了分布式系统中的熔断与限流技术,重点讨论了Hystrix、Resilience4j和Sentinel这三大组件。Hystrix采用线程/信号隔离,实现资源隔离和熔断器模式,而Resilience4j轻量级、模块化,适用于小型项目。Sentinel则提供了丰富的流量控制场景和易用的控制台,具有良好的扩展性。三者都在帮助服务保障稳定性方面发挥重要作用。
摘要由CSDN通过智能技术生成

Hystrix

作为Spring Cloud官方默认的熔断组件,停止开发,Hystrix官方推荐使用Resilience4j;

Netflix的 Hystrix 是一个帮助解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力.

Hystrix的设计原则包括:

a.资源隔离

Hystrix隔离方式采用线程/信号的方式,通过隔离限制依赖的并发量和阻塞扩散

a)线程隔离

Hystrix在用户请求和服务之间加入了线程池。

Hystrix为每个依赖调用分配一个小的线程池,如果线程池已满调用将被立即拒绝,默认不采用排队.加速失败判定时间。线程数是可以被设定的。

原理:用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务,如果线程池已满,则会进行降级处理,用户的请求不会被阻塞,至少可以看到一个执行结果(例如返回友好的提示信息),而不是无休止的等待或者看到系统崩溃。

b)信号隔离:

信号隔离也可以用于限制并发访问,防止阻塞扩散, 与线程隔离最大不同在于执行依赖代码的线程依然是请求线程(该线程需要通过信号申请, 如果客户端是可信的且可以快速返回,可以使用信号隔离替换线程隔离,降低开销。信号量的大小可以动态调整, 线程池大小不可以

货船为了进行防止漏水和火灾的扩散,会将货仓分隔为多个,这种资源隔离减少风险的方式被称为:Bulkheads(舱壁隔离模式).

在一个高度服务化的系统中,我们实现的一个业务逻辑通常会依赖多个服务,Hystrix通过将每个依赖服务分配独立的线程池进行资源隔离, 从而避免服务雪崩.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值