千家信息网

怎么设计一个支撑高并发大流量的系统

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要讲解了"怎么设计一个支撑高并发大流量的系统",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么设计一个支撑高并发大流量的系统"吧!高并发架构
千家信息网最后更新 2025年11月07日怎么设计一个支撑高并发大流量的系统

这篇文章主要讲解了"怎么设计一个支撑高并发大流量的系统",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么设计一个支撑高并发大流量的系统"吧!

高并发架构相关概念

什么是并发?

并发是指并发的访问,也就是某个时间点,有多少个访问同时到来;

通常如果一个系统的日PV在千万以上,有可能是一个高并发的系统,这里需要注意的是:只是有可能是一个高并发的系统,不一定是一个高并发的系统。

并发数和QPS是不同的概念,一般说QPS会说多少并发用户下QPS,当QPS相同时,并发用户数越大,网站并发处理能力越好。当并发用户数过大时,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能够处理的请求数反而变少,同时用户的请求等待时间也会变大。找到最佳线程数能够让web系统更稳定,效率更高。

并发数 = QPS*平均响应时间

高并发具体关心什么?

QPS: 每秒请求或查询的数量,在互联网领域,指每秒响应请求数;

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

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

PV: 综合浏览量,即页面浏览量或者点击量,一个访客在24小时内访问的页面数量;

UV: 独立访客 ,即一定时间范围内相同访客多次访问网站,只计算为一个独立的访客;

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

日网站带宽可以使用下面的公式来粗略计算:

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

峰值一般是平均值的倍数;

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

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

压力测试: 测试能承受的最大并发,测试最大承受的QPS值。

测试工具(ab):目标是URL,可以创建多个访问线程对同一个URL进行访问(Nginx);

ab的使用: 模拟并发请求100次(100个人),总共请求5000次(每个人请求5000次)

ab -c 100 -n 5000 待测试网站(内存和网络不超过最高限度的75%)

QPS达到50:一般的服务器就可以应付;

QPS达到100: 假设关系型数据库的每次请求在0.01秒完成(理想),假设单页面只有一个SQL查询,那么100QPS意味着1秒中完成100次请求,但此时我们不能保证数据库查询能完成100次;

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

QPS达到800: 假设我们使用 百兆宽带,意味着网站出口的实际带宽是8M左右,假设每个页面是有10k,在这个并发的条件下,百兆带宽已经被吃完;

方案:CDN加速、负载均衡

QPS达到1000: 假设使用Redis缓存数据库查询数据,每个页面对Redis请求远大于直接对DB的请求;

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

方案:静态HTML缓存

QPS达到2000: 文件系统访问锁都成为了灾难;

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

高并发解决方案案例

流量优化: 防盗链处理(把一些恶意的请求拒之门外)

前端优化: 减少HTTP请求、添加异步请求、启用浏览器的缓存和文件压缩、CDN加速、建立独立的图片服务器;

服务端优化: 页面静态化处理、并发处理、队列处理;

数据库优化: 数据库的缓存、分库分表、分区操作、读写分离、负载均衡

Web服务器优化: 负载均衡

高并发下的经验公式

通过QPS和PV计算部署服务器的台数

单台服务器每天PV计算

公式1:每天总PV = QPS * 3600 * 6 公式2:每天总PV = QPS * 3600 * 8

服务器计算

服务器数量 =   ceil( 每天总PV / 单台服务器每天总PV )

峰值QPS和机器计算公式

原理: 每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间

公式: ( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)

机器: 峰值时间每秒QPS / 单台机器的QPS = 需要的机器。

感谢各位的阅读,以上就是"怎么设计一个支撑高并发大流量的系统"的内容了,经过本文的学习后,相信大家对怎么设计一个支撑高并发大流量的系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

时间 系统 处理 服务 数据 服务器 峰值 带宽 数据库 页面 流量 公式 网站 数量 方案 缓存 测试 设计 均衡 机器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 masql数据库哪个最好 存储服务器硬盘数 哈尔滨oa软件开发公司 网络安全和信息化主要建设 iphone软件开发测试机 海南无忌网络技术有限公司客服 互联网科技股票行情 苏州东青树软件开发有限公司 电信数据库岗位职责 赛意信息有网络安全概念吗 33岁还适合学软件开发吗 高清视频压缩服务器最高压缩比 网络连接成功服务器连接 开传奇用什么服务器 税务局网络安全创新 网络安全保护等级 飞机订票管理系统数据库设计 集美大学SQL数据库考试 美国网络技术发展历程 对智能互联网络技术的认知 浪潮 嵌入式软件开发 三大中文数据库的优点和缺点 工业网络安全审计系统价格 网络安全宣传大会完整视频 浦东新区大型网络技术采购信息 navicat连接MySQL数据库 下列关于网络数据库 软件开发容易秃顶吗 智能网络安全应用研究所 网络安全领域风险防范措施
0