Sentinel的限流和Gateway的限流差别?

这篇具有很好参考价值的文章主要介绍了Sentinel的限流和Gateway的限流差别?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Sentinel的限流与Gateway的限流有什么差别?

问题说明:考察对限流算法的掌握情况

限流算法常见的有三种实现:滑动时间窗口,令牌桶算法,漏桶算法。gateway则采用基于Redis实现的令牌桶算法。但是我们不会去用,而Sentinel 功能比较丰富。
而sentinel内部比较复杂:

  • 默认限流模式是基于滑动时间窗口算法
    针对资源做统计,一个资源对弈一个滑动窗口算法,统计的数据较少,内存使用不高。
  • 流控效果为排队等待的限流模式基于漏桶算法
    需要排队等待效果
  • 而流控规则的热点参数限流 是基于令牌桶算法
    参数较多,只需要记录参数对应的请求时间信息

补充

限流: 对 应用服务的请求做限制,避免因过多的请求而导致服务器过载甚至宕机。
限流算法常见的包括两种:
1.计算器算法,有包括窗口计算器算法,滑动窗口算法

2.令牌桶算法(Token Bucket)

3.漏桶算法(Leaky Bucket)

固定窗口算法

  • 将时间划分为多个窗口,窗口时间跨度成为Interval(间隔). 1000ms
  • 每个窗口维护一个计数器,每有一次请求就会将计数器加1,限流就是设置计数器阀值。设置为3
  • 如果计算器超过了限流阀值,则超出阀值的请求都会被丢弃。
    Sentinel的限流和Gateway的限流差别?

观上图,这种算法使用问题的,在4500-5500ms 这1s内有6个请求通过。

滑动窗口计数器算法

滑动窗口计数器算法会对一个窗口分为n个更小的区间,例如:

  • 窗口时间跨度Interval为1s;区间数量 n=2,则每个小区间的时间间隔为500ms
  • 限流阀值依然为3,时间窗口(1s)内请求超过阀值时,超出的请求被限流
  • 窗口会根据当前请求所在的时间(currentTime)移动,窗口范围是从(currentTime-Interval)之后的第一个时区开始,到currentTime 所在时区结束

0 500 1000 1500 2000
比如是1250ms 时来个请求,1250-1000=250, 250后面的第一个时区是500-100。而1250在 1000-1500中;所以这个滑动窗口是 500-1000。

Sentinel的限流和Gateway的限流差别?
观上图,其实还是有问题,可以将区间数量设置越小,限流就越准确,但是还是不能100%准确。

令牌桶算法

  • 以固定的速率生成令牌,存入令牌桶中,如果令牌桶满了以后,多余令牌丢弃
  • 请求进入后,必须先尝试从桶中获取令牌后才可以被处理
  • 如果令牌中没有令牌,则请求等待或丢弃

Sentinel的限流和Gateway的限流差别?
代码实现上并不是设计一个桶来存储令牌,而是存储 一定时间范围的请求信息,根据请求信息来计算是否可以拿到令牌。

漏桶算法

漏桶算法是对令牌桶算法的改进

  • 将每个请求视作水滴放入漏桶进行存储
  • 漏桶以固定速度向外漏出请求来执行,如果“漏桶”空了则停止“漏水”
  • 如果“漏桶”满了则多余的“水滴”会被直接丢弃
    Sentinel的限流和Gateway的限流差别?

漏桶实现 用阻塞队列

漏桶算法

Sentinel 在实现漏桶时,采用了排队等待模式:
让所有请求进入一个队列中,然后按照阀值允许的时间间隔依次执行。并发的多个请求必须等待,预期的等待时长-最近一次请求的预期等待时间+允许的间隔。如果请求预期的等待时间超出最大时长,则会拒绝。

例如: QPS=5 ,意味这没200ms处理一个队列中的请求,timeout=2000,意味着预期等待超过2000ms的请求会被拒绝并抛出异常。

Sentinel的限流和Gateway的限流差别?

Sentinel的限流和Gateway的限流差别?文章来源地址https://www.toymoban.com/news/detail-489550.html

到了这里,关于Sentinel的限流和Gateway的限流差别?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Gateway集成sentinel进行网关限流

    本文使用版本如下:

    2024年02月09日
    浏览(38)
  • SpringCloud之Gateway整合Sentinel服务降级和限流

    1.下载Sentinel.jar可以图形界面配置限流和降级规则 地址:可能需要翻墙 下载jar文件 2.引入maven依赖 3.写个自动注入Resource的过滤器类(可以不写注解直接使用) 4.写配置文件 application.properties 5.cmd命令行启动jar文件访问localhost:18080页面,自己设置QPS java -jar -server.port=18080 sentinel-dash

    2024年02月07日
    浏览(32)
  • 【SpringCloud】11、Spring Cloud Gateway使用Sentinel实现服务限流

    1、关于 Sentinel Sentinel 是阿里巴巴开源的一个流量防卫防护组件,可以为微服务架构提供强大的流量防卫能力,包括流量控制、熔断降级等功能。Spring Cloud Gateway 与 Sentinel 结合,可以实现强大的限流功能。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近

    2024年02月01日
    浏览(43)
  • 只需三步实现Gateway结合Sentinel实现无侵入网关限流,注意避坑!

    前言:本文基于您已有基础的可运行的微服务系统,使用了Sping Cloud Alibaba,Gateway,Nacos等;目标实现网关流控类型的限流。 顾名思义限流用于在高并发场景下限制请求流量的进入,保护系统不被冲垮。阿里巴巴的开源sentinel可以通过设置不同种类规则实现对不同的资源的保护

    2024年02月08日
    浏览(32)
  • 【限流】4 种常见的限流实现方案

    在微服务应用中,考虑到技术栈的组合,团队人员的开发水平,以及易维护性等因素,一个比较通用的做法是,利用 AOP 技术 + 自定义注解实现 对特定的方法或接口进行限流。 下面基于这个思路来分别介绍下几种常用的限流方案的实现: 基于 guava 限流实现(单机版) 基于

    2024年02月15日
    浏览(29)
  • DRF的限流组件(源码分析)

    限流,限制用户访问频率,例如:用户1分钟最多访问100次 或者 短信验证码一天每天可以发送50次, 防止盗刷。 对于匿名用户,使用用户IP作为唯一标识。 对于登录用户,使用用户ID或名称作为唯一标识。 局部配置(views) 全局配置(settings) 本质,每个限流的类中都有一个 all

    2023年04月21日
    浏览(22)
  • 基于 ActionFilters 的限流库DotNetRateLimiter使用

    在构建API项目时,有时出于安全考虑,防止访问用户恶意攻击,希望限制此用户ip地址的请求次数,减轻拒绝服务攻击可能性,也称作限流。接下来,我们就来学习开源库 DotNetRateLimiter 如何轻松实现限流。 安装Nuget包 在新建立的 WebAPI 项目中,通过 Nuget 包管理器安装 DotNetR

    2024年02月08日
    浏览(25)
  • RabbitMQ中的限流、return机制、死信队列

    目录 优点 缺点 1、限流 2、return机制 3、死信队列 高可用性: RabbitMQ支持集群和镜像队列等多种方式实现高可用性,保证系统稳定运行。 可靠性强: RabbitMQ使用AMQP协议作为消息传递的标准,能够确保消息传递的可靠性和有序性。 灵活性强: RabbitMQ支持多种消息模式,包括点

    2024年02月08日
    浏览(29)
  • 【知识点随笔分享 | 第九篇】常见的限流算法

    目录 前言: 1.固定窗口限流:  缺点:  2.滑动窗口限流:  优点: 滴桶限流: 缺点: 令牌桶限流:  优点: 总结:           当今互联网时代,随着网络流量的快速增长和系统负载的不断加重,限流算法作为一种重要的网络管理工具变得愈发重要。限流算法通过控制系

    2024年02月04日
    浏览(34)
  • 分布式限流和本地限流那些事?

    分布式限流和本地限流的目的是一样的,当然我建议技术人在自己的服务中优先考虑本地限流,那样对于自己的API的影响会小一点。 限流这种技术,在没有触发限流的阈值的时候,是不会有什么大的问题的,当时一旦触发阈值,然后在处理限流逻辑的过程中就容易出现问题。

    2024年02月02日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包