高并发流量控制

juncaoit juncaoit     2022-12-18     246

关键词:

  以前没关注过,这里只学的是单机的处理方式。

1.什么是大流量

  大流量,我们很可能会冒出:TPS(每秒事务量),QPS(每秒请求量),1W+,5W+,10W+,100W+...。

  其实并没有一个绝对的数字,如果这个量造成了系统的压力,影响了系统的性能,那么这个量就可以称之为大流量了。

 

2.应对大流量常用方式

  缓存:说白了,就是让数据尽早进入缓存,离程序近一点,不要大量频繁的访问DB。

  降级:如果不是核心链路,那么就把这个服务降级掉。打个比喻,现在的APP都讲究千人千面,拿到数据后,做个性化排序展示,如果在大流量下,这个排序就可以降级掉!

  限流:想法很直接,就是想在一定时间内把请求限制在一定范围内,保证系统不被冲垮,同时尽可能提升系统的吞吐量。

    注意到,有些时候,缓存和降级是解决不了问题的,比如,电商的双十一,用户的购买,下单等行为,是涉及到大量写操作,而且是核心链路,无法降级的,这个时候,限流就比较重要了。

 

3.限流

  限流的常用处理手段有:计数器、滑动窗口、漏桶、令牌。

 

4.计数器

  计数器是一种比较简单的限流算法,用途比较广泛,在接口层面,很多地方使用这种方式限流。在一段时间内,进行计数,与阀值进行比较,到了时间临界点,将计数器清0。

  这段程序是拷贝的,我感觉这段的意思是,如果在这段时间内超过了一定的值,就开始使用限流的逻辑处理(这个地方应该才是重点,计数器是一个壳子)。

  技术分享图片

 

5.活动窗口

  由于计数器存在临界点缺陷,后来出现了滑动窗口算法来解决。

  滑动窗口的意思是说把固定时间片,进行划分,并且随着时间的流逝,进行移动,这样就巧妙的避开了计数器的临界点问题。也就是说这些固定数量的可以移动的格子,将会进行计数判断阀值,因此格子的数量影响着滑动窗口算法的精度。

  技术分享图片

  我感觉应该像通信中的滑动窗口。

 

6.漏桶

  虽然滑动窗口有效避免了时间临界点的问题,但是依然有时间片的概念,而漏桶算法在这方面比滑动窗口而言,更加先进。

  有一个固定的桶,进水的速率是不确定的,但是出水的速率是恒定的,当水满的时候是会溢出的。

  技术分享图片

 

7.令牌桶

  注意到,漏桶的出水速度是恒定的,那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出)。为了解决这个问题,令牌桶进行了算法改进。

  技术分享图片

  生成令牌的速度是恒定的,而请求去拿令牌是没有速度限制的。这意味,面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,而且拿令牌的过程并不是消耗很大的事情。

  技术分享图片

 

 

 

  

 

架构设计|高并发流量削峰,共享资源加锁机制(代码片段)

本文源码:GitHub·点这里||GitEE·点这里一、高并发简介在互联网的业务架构中,高并发是最难处理的业务之一,常见的使用场景:秒杀,抢购,订票系统;高并发的流程中需要处理的复杂问题非常多,主要涉及下面几个方面:流... 查看详情

限流量控制:高并发系统中我们如何操纵流量?

限流量控制:高并发系统中我们如何操纵流量?究竟什么是限流应该知道的限流算法固定窗口与滑动窗口的算法漏桶算法与令牌筒算法总结如果系统的峰值流量会超过了预估的峰值,对于核心服务也产生了比较大的影... 查看详情

javasemaphore实现高并发场景下的流量控制(附源码)|实用代码架构(代码片段)

...可能存在消耗大量内存的情况,所以需要对任务进行并发控制。如何优雅的实现并发控制呢?下面我会给大家介绍一个类——Semaphore,能很优雅的实现并发控制,继续往下看吧。Semaphore介绍首先我们看一下Semaphore... 查看详情

高并发大流量

...关注参数  首先关注我们的请求量是多少,单台服务器并发量是多少  请求数  响应时间  并发连接数是指系统同时处理的请求数量。2.然后根据我们需要达到多少并发数,采取相应的方案  数据库缓存、负载均衡、... 查看详情

高并发和大流量解决方案

一、高并发架构相关概念1、并发  在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任意一个时刻上只有一个程序在处理机上运行。2、我们说的高... 查看详情

高并发大流量解决方案

一、高并发架构相关概念1、并发:是指并发的访问,也就是某个时间点,有多少个访问同时到来;通常如果一个系统的日PV在千万以上,有可能是一个高并发的系统;2、具体关心什么?QPS:每秒请求或查询的数量,在互联网领... 查看详情

高并发和大流量解决方案

...一个时刻点上只有一个程序在处理机运行。我们所说的高并发时什么?上面的定义明显不是我们通常所言的并发,在互联网时代,所讲的并发,高并发,通常是指并发访问。也就是在某个事件点,有多少访问同时到来。通常如果... 查看详情

处理高流量站点缓存时的并发问题

】处理高流量站点缓存时的并发问题【英文标题】:Dealingwithconcurrencyissueswhencachingforhigh-trafficsites【发布时间】:2014-06-1118:41:09【问题描述】:我在一次采访中被问到这个问题:对于高流量网站,有一种方法(比如getItems())会被... 查看详情

扛住阿里双十一高并发流量,sentinel是怎么做到的?(代码片段)

Sentinel承接了阿里巴巴近10年的双十一大促流量的核心场景本文介绍阿里开源限流熔断方案Sentinel功能、原理、架构、快速入门以及相关框架比较基本介绍1名词解释服务限流:当系统资源不够,不足以应对大量请求,对系统按照... 查看详情

机器学习模型高性能高并发部署实践探索

文章大纲高并发服务简介高并发实践方案纵向扩展横向扩展三高架构关键点使用pythonweb框架部署机器学习模型后端常见高并发框架评测模型部署与推理简介模型管理阿里云模型管理参考高并发模型推理服务的优化方向K8s弹性伸缩... 查看详情

高并发大流量站点架构简单思路

*******************************前端*******************************1.添加必要的硬件和带宽,同一时候额外储备一部分,以备不时之需2.特别监控网络数据流量是否正常。如是否有大规模的爬虫、DDOS等浑水摸鱼,能够针对iP和Cookie的限流3.使用C... 查看详情

机器学习模型高性能高并发部署实践探索

文章大纲高并发服务简介后端常见高并发框架评测模型部署与推理简介模型管理阿里云模型管理参考高并发模型推理服务的优化方向K8s弹性伸缩原理基于模型管理的一站式机器学习建模平台参考参考文献高并发服务简介高并发意... 查看详情

弹性负载均衡服务助力企业应对高并发流量冲击

...随着互联网规模和消费者规模的不断扩大,企业面对着高并发请求场景下的流量冲击,尤其是每逢618或双11,会有数以亿计的用户同时访问互联网进行购物,网站访问用户的激增,会导致单服务器超负荷运行,导致网站访问卡顿... 查看详情

大流量高并发系统之限流特技

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂... 查看详情

高流量大并发linuxtcp性能调优

...务器负载能力LinuxTuning本文所面对的情况为:   高并发数   高延迟高丢包(典型的美国服务器)值得注意的是,因为openvz的VPS权限比较低,能够修改的地方比较少,所以使用openvz的VPS作VPN服务器是非常... 查看详情

大流量高并发量网站的之解决方案

...3、CPU周期优化方法:扩充内存4、内存带宽二、大流量高并发量网站的解决方案1、确认服务器硬件是否足够支持当前的流量。2、使用memcache缓存技术,将动态数据缓存到内存中,动态网页直接调用这些文件,而不必在访问数据库... 查看详情

服务的高可用——智能流控设计

...上游模块拿到倒排、召回后的广告投放计划后,会以并发的方式请求各家dsp获取各自广告的出价、尺寸,等广告信息。在并发请求时&#x 查看详情

服务的高可用——智能流控设计

...上游模块拿到倒排、召回后的广告投放计划后,会以并发的方式请求各家dsp获取各自广告的出价、尺寸,等广告信息。在并发请求时&#x 查看详情