实现熔断、限流的底层原理是什么

简介: 实现熔断、限流的底层原理是什么

Sentinel提供多种流量 控制算法 ,包括:滑动窗口算法、令牌桶算法以及漏桶算法等。
滑动窗口算法:
是一种用于统计单位时间内请求次数的方法,用来实现限流的目的。它将时间划分为多个小的时间窗口,并在每个小窗口内记录请求的数量。当新的请求到来时,系统会检查当前小窗口内的请求数量是否超过了预设的阈值,如果超过则拒绝请求。
令牌桶算法:
核心思想是一个桶中存储了一定数量的令牌,每当有请求到达时,就需要从桶中取出一个令牌。如果没有足够的令牌,则请求被延迟或拒绝。
以固定的速率生成令牌,存入令牌桶中,如果令牌桶满了以后,多余令牌丢弃。
请求进入后,必须先尝试从桶中获取令牌,获取到令牌后才可以被处理
如果令牌桶中没有令牌,则请求等待或丢弃
在使用令牌桶算法时,可能会存在突发流量导致系统过载,所以尽量不要将令牌上限设定到服务能承受的QPS上限。而是预留一定的波动空间,这样我们才能应对突发流量。
漏桶算法:
漏桶算法与令牌桶相似,但在设计上更适合应对并发波动较大的场景,以解决令牌桶中的问题。
就是请求到达后不是直接处理,而是先放入一个队列。而后以固定的速率从队列中取出并处理请求。之所以叫漏桶算法,就是把请求看做水,队列看做是一个漏了的桶。

目录
打赏
0
0
0
0
2
分享
相关文章
【熔断限流组件resilience4j和hystrix】
【熔断限流组件resilience4j和hystrix】
237 0
服务降级和服务熔断的区别
服务降级和服务熔断的区别
通俗一点讲“限流熔断之Hystrix”
本篇文章用通俗的语言来讲述分布式系统中常用的限流熔断机制库Hystrix,旨在理解使用场景和原理,以及如何实现。不管你会不会敲代码,无论是大佬还是小白,力求老少皆宜。
297 0
通俗一点讲“限流熔断之Hystrix”
【微服务~Sentinel】Sentinel降级、限流、熔断
【微服务~Sentinel】Sentinel降级、限流、熔断
1484 0
【微服务~Sentinel】Sentinel降级、限流、熔断
服务保护、服务限流、服务降级的概念|学习笔记
快速学习服务保护、服务限流、服务降级的概念
218 0
熔断和限流原理和使用(3)
熔断和限流原理和使用(3)
285 0
熔断和限流原理和使用(3)