谈谈微服务中的限流、熔断和降级

本文介绍了微服务中限流的重要性及其常见算法,包括计数器、漏桶和令牌桶,并探讨了熔断和降级的概念,用于防止雪崩效应。同时提到了Sentinel、Hystrix和Resilience4j等主流框架在服务保护中的作用。
摘要由CSDN通过智能技术生成

1、限流

1.1 为什么需要限流

对外的API服务

  • 用户增长过快
  • 因为某个热点事件(微博热搜)
  • 竞争对象爬虫
  • 恶意的刷单
  • 开学季(可预知)

这些情况都是无法预知的,不知道什么时候会有10倍甚至20倍的流量打进来,如果真碰上这种情况,扩容是根本来不及的(弹性扩容都是虚谈,一秒钟能扩容完成吗?)

对内的RPC服务

一个服务A的接口可能被BCDE多个服务进行调用,在B服务发生突发流量时,直接把A服务给调用挂了,导致A服务对CDE也无法提供服务。
1、每个调用方采用线程池进行资源隔离
2、使用限流手段对每个调用方进行限流

1.2 常见的限流算法

常见的限流算法有:计数器、漏桶、令牌桶。

计数器算法

  • 实现:采用计数器实现限流有点简单粗暴,一般我们会限制一秒钟的能够通过的请求数,比如限流qps为100,算法的实现思路就是从第一个请求进来开始计时,在接下去的1s内,每来一个请求,就把计数加1,如果累加的数字达到了100,那么后续的请求就会被全部拒绝。等到1s结束后,把计数恢复成0,重新开始计数。
  • 弊端:如果我在单位时间1s内的前10ms,已经通过了100个请求,后面的990ms,只能眼巴巴的把请求拒绝,这种现象称为“突刺现象”,不平滑
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值