美文网首页
限流的认识

限流的认识

作者: 剑道_7ffc | 来源:发表于2020-06-30 07:34 被阅读0次

基本认识

场景分析

当流量超过阈值时,回导致cpu和内存的报表,部分服务开始不可用,从而导致整个系统的崩溃。

引入限流

通过设置最大的流量限制,当超过时就拒绝访问,好处是可以保护系统,坏处是被限流的用户体验不好,所以,限流是有损的解决方案。

限流的作用

1 保护不因为瞬间流量而崩溃 2 防止恶意请求流量,恶意攻击。

常见的限流算法

滑动窗口

发送方窗口大小由接收方决定,目的是为了控制发送速度,以免接收方缓存不够大,导致内存溢出。

image.png
演示地址:
https://media.pearsoncmg.com/aw/ecs_kurose_compnetwork_7/cw/content/interactiveanimations/selective-repeat-protocol/index.html

漏桶(控制传输速率Leaky bucket)

基本原理

1,以恒定速率往下漏水
2 加水的速率可快可慢

桶满的处理方式

1 不允许继续往桶里加水,等桶里一部分水放走后,在允许加水
2 溢出的水直接抛弃掉。


image.png

令牌桶(能够解决突发流量)

组成元素

1 令牌桶:以恒定速度往桶里加令牌,若桶满后则丢弃令牌
2 令牌流:存放令牌的速度
3 数据流:取令牌的速度

情境分析
image.png

数据流的速率 等于 令牌流的速率,数据流的速率 小于 令牌流的速率, 数据流的速率 大于 令牌流的速率

实现方式

恒定速率

guava包中有RateLimiter类,可以用来实现恒定速率,进而可以实现漏桶算法和令牌桶算法

最大并发个数

可以通过Semaphore来实现,可以实现滑动窗口的算法。

相关文章

  • 限流的认识

    基本认识 场景分析 当流量超过阈值时,回导致cpu和内存的报表,部分服务开始不可用,从而导致整个系统的崩溃。 引入...

  • Semaphore CountDownLatch CyclicB

    限流可分为并发限流和速率限流。 Semaphore就属于并发限流的实现。 插句话:速率限流一般限的是QPS,即一秒...

  • 高并发环境下的限流策略

    本文将从以下几个方面分析限流策略: 什么是限流限流算法限流算法的应用 什么是限流 在开发高并发系统时,有很多手段来...

  • 限流框架系列之常见限流算法

    四种常见的限流算法 固定时间窗口限流算法 滑动时间窗口限流算法 令牌桶限流算法 漏桶限流算法 算法比较 算法确定参...

  • 图解+代码|常见限流算法以及限流在单机分布式场景下的思考

    大家好,我是 yes。 今天来说说限流的相关内容,包括常见的限流算法、单机限流场景、分布式限流场景以及一些常见限流...

  • 限流降级方案

    限流算法 并发数限流 计数器并发数限流:使用共享变量实现 信号量:使用java中的Semaphore QPS限流 ...

  • 聊聊高并发系统限流特技-2

    转载来自开涛的聊聊高并发系统限流特技-2 上一篇《聊聊高并发系统限流特技-1》讲了限流算法、应用级限流、分布式限流...

  • 聊聊高并发系统之限流特技-2

    摘要:上一篇《聊聊高并发系统限流特技-1》讲了限流算法、应用级限流、分布式限流;本篇将介绍接入层限流实现。 接入层...

  • 限流算法

    前言 保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。限流包括Nginx层面的限流以及业务代码逻辑上的限流。...

  • (9)弹力设计篇之“限流设计”

    1、限流的策略 2、限流的算法:计数器、队列、漏斗和令牌桶。 3、如何基于响应时间来限流。 4、限流设计的要点 限...

网友评论

      本文标题:限流的认识

      本文链接:https://www.haomeiwen.com/subject/urhtqktx.html