高并发和大流量解决方案

学-无-止-境 学-无-止-境     2022-10-08     232

关键词:

一、高并发架构相关概念

1、并发

  在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任意一个时刻上只有一个程序在处理机上运行。

2、我们说的高并发是什么

  上面的定义明显不是我们通常所言的并发,在互联网时代,所讲的并发、高并发,通常是指并发访问。也就是在某个时间点,有多少个访问同时到来通常如果一个系统的日PV在千万以上,有可能是一个高并发的系统,但是有的公司完全不走技术路线,全靠机器堆,这不在我们的讨论范围。

3、高并发的问题,我们具体该关心什么

  QPS:

    每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求)

  吞吐量:

    单位时间内处理的请求数量(通常由QPS与并发数决定)

  响应时间:

    从请求发出到收到响应花费的时间,例如系统处理一个HTTP请求需要100ms,这个100ms就是系统的响应时间

  PV:    

    综合浏览量(Page View),即页面浏览量或者点击量,一个访客在24小时内访问的页面数量,同一个人浏览你的网站同一页面,只记作一次PV

  UV:  

    独立访问(UniQue Visitor),即一定时间范围内相同访客多次访问网站,只计算为1个独立访

  带宽: 

    计算带宽大小需关注两个指标,峰值流量和页面的平均大小

    日网站带宽=PV/统计时间(换算到秒)*平均页面大小(单位KB)*8

    峰值一般是平均值的倍数,根据实际情况来定

    QPS不等于并发连接数

    QPS是每秒HTTP请求数量,并发连接数是系统同时处理的请求数量

    (总PV数*80%)/(6小时秒数*20%)=峰值每秒请求数(QPS)

    80%的访问量集中在20%的时间!

4、QPS达到极限,各种情况如何处理:

随着QPS的增长,每个阶段需要根据实际情况来进行优化,优化的方案也与硬件条件、网络带宽息息相关。

  QPS达到50:

    可以称之为小型网站,一般的服务器就可以应付

  QPS达到100:

    假设关系型数据库的每次请求在0.01秒完成

    假设单页面只有一个SQL查询,那么100QPS意味这1秒钟完成100次请求,但是此时我们并不能保证数据库查询能完成100次

    方案:数据库缓存层、数据库的负载均衡

  QPS达到800:

    假设我们使用百兆带宽,意味着网站出口的实际带宽是8M左右

    假设每个页面只有10k,在这个并发条件下,百兆带宽已经吃完

    方案:CDN加速、负载均衡

  QPS达到1000:

    假设使用Memcache缓存数据库查询数据,每个页面对Memcache的请求远大于直接对DB的请求

    Memcache的悲观并发数在2W左右,但有可能在之前内网带宽已经吃光,表现出不稳定

    方案:静态HTML缓存

  QPS达到2000:

    这个级别下,文件系统访问锁都成为灾难

    方案:做业务分离,分布式存储

二、三种高并发解决方案

1、数据库缓存层的优化

  什么是数据库缓存:

    MySQL等一些常见的关系型数据库的数据都存储在磁盘中,在高并发场景下,业务应用对MySQL产生的增、删、改、查的操作造成巨大的I/O开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类问题,缓存数据的概念应运而生

  为什么是要使用缓存:

    缓存数据是为了让客户端很少甚至不访问数据库服务器进行数据的查询,高并发下,能最大程度的降低对数据库服务器的访问压力极大地解决数据库服务器的压力

  提高应用数据的响应速度:

    用户请求-->数据查询-->连接数据库服务器并查询数据-->将数据缓存起来(HTML、内存、JSON、序列化数据)-->显示给客户端

    用户再次请求或者新用户访问-->数据查询-->直接从缓存中获取数据-->显示给客户端

2、CDN加速 

  什么是CDN:

    CDN的全称是Content Delivery Network,即内容分发网络,尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定

    在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络

    CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上

  使用CDN的优势:

    本地Cache加速,提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度

    跨运营商的网络加速,保证不同网络的用户都得到良好的访问质量

    远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器

    自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽,分担网络流量,减轻原站点WEB服务器负载等功能

    广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵

3、Web服务器的负载均衡、请求分发

  七层负载均衡的实现:

    基于URL等应用信息的负载均衡

    Nginx的proxy是它一个很强大的功能,实现了7层负载均衡

  Nginx实现的优点:

    功能强大,性能卓越,运行稳定

    配置简单灵活

    能够自动剔除工作不正常的后端服务器

    上传文件使用异步模式

    支持多种分配策略,可以分配权重,分配方式灵活

  Nginx负载均衡:

    内置策略,扩展策略

    内置策略:IP Hash、加权轮询

    扩展策略:fair策略、通用hash、一致性hash

  加权轮询策略:

    首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器

    当所有后端机器都down掉时,Nginx会立即将所有机器的标志位清成初始状态,以避免造成所有的机器都处于timeout的状态

  IP Hash策略:

    Nginx内置的另一个负载均衡的策略,流程和轮询很类似,只是七种的算法和具体的策略有些变化

    IP Hash算法是一种变相的轮询算法

 

参考微信公众号PHP技术大全

高并发大流量解决方案

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

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

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

2023春招面试专题:高并发解决方案

如何理解高并发?高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。我们常见的高并发场景有:淘宝的双11、春运... 查看详情

2023春招面试专题:高并发解决方案

如何理解高并发?高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。我们常见的高并发场景有:淘宝的双11、春运... 查看详情

高并发大流量网站10个解决方法(代码片段)

高并发大流量网站10个解决方法1.硬件升级普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。2.负载... 查看详情

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

1,首先检查硬件配置是否够用,包括cpu,内存,网卡,磁盘,如果不行就只能增加配置;2,可以使用浏览器缓存机制,将一些用户的请求的数据缓存在客户浏览器上,这样可以解决单个用户重复操作所产生的负载;3,可以使用... 查看详情

高并发大流量

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

网站高并发大流量访问解决方法

1.硬件升级普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。2.负载均衡它是根据某种负载策略把... 查看详情

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

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

高并发高流量网站架构

...点比较。然后在局域网层次对第四层交换技术,包括硬件解决方案F5和软件解决方案LVS,进行了简单的讨论。接下来在单服务器层次,本文着重讨论了单台服务器的Socket优化,硬盘级缓存技术,内存级缓存技术,CPU与IO平衡技术... 查看详情

高并发

同一时间内,WEB/API/Client能承受的用户量有多少并发数:对网站或软件同时发起请求数每秒响应时间:常指一次请求到系统正确响应的时间TPS:每秒事务数,每秒可以处理的事务QPS:每秒查询数,TPS事务有读有写,QPS是指读取IP... 查看详情

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

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

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

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

京东高并发秒杀解决方案

秒杀系统经常出现在例如淘宝京东这类购物网站,由于商品的优惠、商品数量有限制,其特点是在特定的时间会有大量用户对服务器发起请求,容易对服务器造成巨大压力。对于一个秒杀系统,需要有特殊的设计才能解决秒杀场... 查看详情

php高并发解决思路解决方案

参考技术Aphp高并发解决思路解决方案,如何应对网站大流量高并发情况。本文为大家总结了常用的处理方式,但不是细节,后续一系列细节教程给出。希望大家喜欢。一高并发的概念在互联网时代,并发,高并发通常是指并发... 查看详情

分布式问题

...大value缓存的全量更新效率低下问题?:缓存维度化拆分解决方案如何将缓存命令率提升到极致?: 双层nginx部署架构,一致性hash流量分发策略如何解决高并发场景下,如何解决数据库与缓存双写时树不一致情况?:数据库+缓... 查看详情

高并发的常见应对方案

一、关于并发我们说的高并发是什么?在互联网时代,高并发,通常是指,在某个时间点,有很多个访问同时到来。 高并发,通常关心的系统指标与业务指标?QPS:每秒钟查询量,广义的,通常指指每秒请求数响应时间:从... 查看详情

阿里面试官:高并发大流量秒杀系统如何正确的解决库存超卖问题?(建议收藏)

大家好,我是冰河~~在【精通高并发系列】的《实践出真知:全网最强秒杀系统架构解密!!》一文中,冰河详细的阐述了高并发秒杀系统的架构设计,也简单提到了如何扣减商品的库存。也许不少小伙伴... 查看详情