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

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

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

相关文章
|
6月前
|
Java API Nacos
|
运维 监控 算法
聊一聊Sentinel背后的原理
本文介绍了Sentinel的核心原理,包括流量控制、熔断降级、系统负载保护、实时监控和统计、与多种微服务框架的集成能力以及扩展性,强调了Sentinel在保障分布式系统稳定性方面的重要性。
883 0
|
7月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
3364 0
|
负载均衡 安全 Java
【微服务系列笔记】Gateway
Gateway是Spring Cloud生态系统中的网关服务,作为微服务架构的入口,提供路由、负载均衡、限流、鉴权等功能。借助于过滤器和路由器,Gateway能够动态地管理请求流量,保障系统的安全和性能。
1842 7
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
12月前
|
缓存 JSON NoSQL
为什么是删除缓存,而不是更新缓存?
本文介绍了数据库与缓存一致性的常见方案——Cache-Aside Pattern(旁路缓存模式),并分析了其工作流程及优势。该模式通过应用程序显式管理缓存,确保数据一致性。文章详细探讨了删除缓存而非更新缓存的原因,包括避免数据不一致、简化操作、减少并发问题及提高性能。删除缓存能有效保证下次请求获取最新数据,尤其在高并发场景下,确保系统的简单性和可靠性。
565 0
|
存储 负载均衡 NoSQL
一文让你搞懂 zookeeper
一文让你搞懂 zookeeper
18994 16
|
开发框架 Java 开发者
Spring Boot中的自动装配原理
Spring Boot中的自动装配原理
2993 1
|
机器学习/深度学习 缓存 监控
Redis经典问题:热点key问题
本文介绍了Redis中的热点key问题及其对系统稳定性的影响。作者提出了多种提前发现热点key的方法,包括历史数据分析、业务分析、实时监控、用户行为分析和机器学习预测。同时,文章列举了应对热点key的解决方案,如分布式存储、主从复制、前置缓存、定时刷新、限制逃逸流量和兜底逻辑。通过这些策略,可以有效管理和预防热点key带来的挑战,保证系统性能和可用性。
1767 5
|
监控 算法 Java
sentinel 服务限流工作原理
sentinel 服务限流工作原理