15 | 熔断限流:业务如何实现自我保护?
何小锋
该思维导图由 AI 生成,仅供参考
你好,我是何小锋。上一讲我讲解了 RPC 框架中的优雅启动,这块的重点就是启动预热与延迟暴露。今天,我们换一个新的话题,看看在使用 RPC 时,业务是如何实现自我保护的。
为什么需要自我保护?
我在开篇词中说过,RPC 是解决分布式系统通信问题的一大利器,而分布式系统的一大特点就是高并发,所以说 RPC 也会面临高并发的场景。在这样的情况下,我们提供服务的每个服务节点就都可能由于访问量过大而引起一系列的问题,比如业务处理耗时过长、CPU 飘高、频繁 Full GC 以及服务进程直接宕机等等。但是在生产环境中,我们要保证服务的稳定性和高可用性,这时我们就需要业务进行自我保护,从而保证在高访问量、高并发的场景下,应用系统依然稳定,服务依然高可用。
那么在使用 RPC 时,业务又如何实现自我保护呢?
最常见的方式就是限流了,简单有效,但 RPC 框架的自我保护方式可不只有限流,并且 RPC 框架的限流方式可以是多种多样的。
我们可以将 RPC 框架拆开来分析,RPC 调用包括服务端和调用端,调用端向服务端发起调用。下面我就分享一下服务端与调用端分别是如何进行自我保护的。
服务端的自我保护
我们先看服务端,举个例子,假如我们要发布一个 RPC 服务,作为服务端接收调用端发送过来的请求,这时服务端的某个节点负载压力过高了,我们该如何保护这个节点?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了RPC框架中的自我保护机制,从服务端和调用端两个角度进行了详细阐述。在服务端,通过限流来保护节点免受过载压力,RPC框架提供了多种限流方式,并强调了应用级别和IP级别的限流以及通过RPC治理的管理端进行动态配置的方法。此外,为了解决限流精确性问题,提出了依赖限流服务的方式。调用端则通过熔断机制进行自我保护,防止调用下游服务出现异常或耗时过长影响业务逻辑。文章还探讨了如何在RPC框架中整合熔断器,以实现熔断功能。总的来说,本文全面介绍了RPC框架中的自我保护机制,为读者提供了深入了解和应用的指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《RPC 实战与核心原理》,新⼈⾸单¥59
《RPC 实战与核心原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(12)
- 最新
- 精选
- Darren服务保护一般就是限流、熔断、降级。 限流的落地方式有:Guava RateLimiter、lua+Redis、Sentinel等; 熔断:Hystrix、Resilience4j; 降级:服务降级,就是对不怎么重要的服务进行低优先级的处理。说白了,就是尽可能的把系统资源让给优先级高的服务。资源有限,而请求是无限的。
作者回复: 对,取舍很重要
2020-03-23253 - 雨霖铃声声慢除了文中提到的服务熔断、降级、限流保护手段,还可以使用异步RPC 提升性能吧
作者回复: 异步RPC可以提升吞吐量。
2020-03-248 - 问心调用方限流的时候,应该是发起调用时请求限流器去判断阈值,调用完成后,还需要通知一下限流器吧。这样是不是才能达到接近饱和的性能吧。
作者回复: 是的。
2020-03-285 - 旭东(Frank)熔断策略如何能避免频繁重复在三个状态切换呢?除了增加机器扩容,以及业务和性能优化,熔断策略还能做些什么吗?
作者回复: 熔断可以避免进一步恶化,比如某个节点性能不行,可以通过熔断的手段,避免调用发整体TP性能下降
2020-03-235 - Tesla老师好,请问这几节的解决方案都有通过注册中心下发,注册中心比如consul怎么下发数据给各个节点啊 没有找到相关的api,是要自己做二次开发吗
作者回复: 利用consul推送能力
2020-05-133 - Desmond如果设置一个专门的限流服务,那么压力都会集中到这个服务,对这个服务的性能要求会提高,当业务再变大的时候,这限流服务会成为一个瓶颈,要换解决方案了
作者回复: 不一定要采用集中式限流
2020-04-152 - 钱服务的自我保护: 1:压测——进行性能优化及容量规划 2:限流——防止服务端被流量高峰压垮 3:降级——优先保证核心服务高可用 4:熔断——防止当前服务被下游慢服务拖垮 5:自动扩缩容——可以扛住流量洪峰,需要资源冗余 原理OK,具体咋弄呢?哈哈😄,解刨一下某个知名RPC2020-05-1626
- Laputa老师你好,请问“专门的限流服务”老师有没有比较好的实践,比如在灵敏度和性能方面都比较好的方案,谢谢2020-06-071
- 时隐时现限流有多个层级,接入层、web层、应用层,每个都可以进行流量限定2022-08-02归属地:广东
- ryanxwclient侧节流,svr侧过载保护2022-04-10
收起评论