新闻报价 汽车 商家 技术 软件 驱动专业群组:手机版 房车之家 江苏汽车网 中耳炎
 
首页 新闻 报价库 经销商 驱动 软件 培训
论坛 手机 笔记本 配件 办公与网络 揭幕内参 美色美女
单机游戏 网游 手游 网页游戏开服表
软件开发培训班 软件商店 分类下载 破解注册 驱动下载 软件新闻
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏 编程开发 安全相关
  新闻首页 >> 软件新闻 >> 面试官要是问你如何解决web高并发,你就这样回答

面试官要是问你如何解决web高并发,你就这样回答

珠江路在线   2019年8月14日  【 转载 】今头日条一小马奔腾 编辑:

所谓高并发,便是同一 工夫有众多流量(通常指消费者) 拜访程序的接口、页面及 其余资源,解决高并发便是当流量峰值到来时 保障程序的 巩固性 。

我们普通用QPS(每秒 查问数,又叫每秒 申请数)来 衡量程序的综合性能,数值越高越好,普通需求压测(ab工具)得到数据 。

假如我们的一个 历程(也 能够是线程或者协程) 解决一次 申请 花费了50毫秒(业内达标 规模普通是20毫秒至60毫秒),那么1秒钟就 能够 解决20个 申请,一台服务器是 能够开众多这样的 历程并行去 解决 申请的, 比方开了128个,那么这台机器 实际上的QPS=2560 。

千万不要小瞧这个数字,当你的QPS真有这么高的时候 象征着你的DAU(消费者日活)有2560*200=51.2万,业内普通是放大200倍计算,有这样的日活 注明做得很不错了 。

一台服务器 能够达到的最大QPS受众多因素的影响, 比方机器参数配置、机房地理位置、CPU性能、内存大小、磁盘性能、带 宽容小、程序语言、数据库性能、程序架构等,我们逐个细说 。

1.机器参数配置

这个很好 了解, 比方服务器最大 能够开启128个 历程,你设置了最大只开启100个,这属于服务器调优 。

2.机房地理位置

假如你做海外消费者,服务器机房应该 取舍国外的,反之应该 取舍国内的,由于机房 间隔消费者越近,在传输上的 工夫损耗就越低 。

3.CPU性能

CPU性能越好, 解决速度就越快,核心数越多, 能够并行开启的 历程就越多 。

4.内存大小

内存越大,程序就能把更多的数据直接放到内存,从内存读取数据比从磁盘读取数据的速度快众多 。

5.磁盘性能

这个不用多说吧,普通固态硬盘的性能比机械硬盘的性能好众多,性能越好读写数据的速度就越快 。

6.带 宽容小

服务器的带宽普通指流出带宽,单位为Mb/S, 比方带宽为8Mb/S即1MB/S,假如提供文件下载服务,可能一个消费者的下载行为就把服务器带宽用完了 。

普通把图片、视频、css文件、JavaScript脚本等资源放到第三方的CDN去,按流量计费,这样就不占用服务器带宽了 。

假如消费者规模小, 根本上一台服务器就好了,这个时候普通会选按固定带 宽容小计费 。

假如消费者规模很大了, 根本上会用到负载 均衡器来分流,即把流量依照 定然的 规定 调配到不同的服务器上,负载 均衡器普通会按流量来计费 。

假如 均匀一次 申请返回的数据大小为50KB,为了达到1000QPS这个指标,需求的带宽峰值=1000508/1024=390.625Mb/S 。

我们在设计接口的时候应该尽量削减返回的数据大小, 比方user_id就 能够简化为uid,像图片、视频、css等文件压缩的 目标便是削减数据的大小 。

7.程序语言

编译型语言的性能普通好于解释型语言的性能, 比方go语言性能就好于php语言性能,当语言短期不会替换时, 能够通过堆机器解决高并 发问题 。

8.数据库性能

一台服务器上部署的数据库总是有一个瓶颈的, 比方每秒 查问数、每秒写入数 。

我们 能够通过添加众多从库解决 查问(select语句)的瓶颈,称之为多从库模型,需求 留神的是主从同步数据可能有延迟,当 批改数据后即将需求 查问时需求设置强制从主库读取 。

我们 能够将业务拆分,让某些表存储在一个数据库实例上,另一些表存储在 其余数据库实例上, 固然一个数据库实例有自己的瓶颈,然而众多的数据库实例 沉积起来性能就会大大改善,多个数据库实例的 方案称之为多主库模型,重要是为了解决写入瓶颈(insert语句、update语句、delete语句) 。

假如你有多个主库又有多个从库,你就实现了多主多从模型 。

假如一个表存储的数据量很大,这个时候就要考量分表了(普通用之间件实现), 比方按 工夫分表或者按消费者分表,当把一个表的全 部分表都放在一个数据库实例上都满足不了要求的时候,你应该把某些分表存储在新的数据库实例上,这个时候一个表的数据 分布到了不同的数据库实例上,这便是所谓的 分布式数据库 方案了,你需求 解决的 事件就很复杂了, 比方 解决 分布式事务 。

数据库的并发衔接数也是有 制约的,我们 能够用衔接池技术来 应答,便是 维持 定然数量的和数据库的衔接不停开的长衔接,需求衔接数据库的时候就从池子里 取舍一个衔接,用完放回去就好了,这个普通也是用之间件来实现 。

好的索引也能 遍及数据库的性能,有时候比堆多个从库的 方案还要好 。

假如 能够削减数据库的读写,也算 直接 遍及了数据库的性能, 比方我们用redis来做缓存,用 信息队列异步落库等 。

有时候某些数据用数据库来计算需求很长期, 能够取到元数据(最小粒度的数据)用程序来计算,这称之为用内存换 工夫 。

9.程序架构

比方实现同样的 性能,初级程序员写的程序需求循环100次,而高级程序员写的程序 只有求循环10次, 动机 确定不一样 。

总结

普通大型 名目 根本是前后端 拆散的,从性能方面说便是为了将页面渲染的 解决在客户端运行,减低服务器的压力 。

从带宽层面考量,css、图片、视频、JavaScript等文件资源能用CDN的就用CDN,能压缩的就尽量压缩,接口能减小返回数据的大小就尽量减小 。

为了解决编程语言的缺乏或者单台服务器的瓶颈, 能够先堆机器 应答 。

索引、多主多从、 分布式数据库、缓存、衔接池、 信息队列等是从数据库容易考量如何优化性能 。

有时候程序的耦合性低比程序的性能高更重要,不要一味地 谋求高性能 。

面试官要是问你如何解决web高并发,你就这样
答复


 按类别看新闻
电脑
数码
办公
网络

 江苏IT新闻联盟

 网游推荐
传奇搜服 搜服魔域 天龙八部搜服 传奇世界搜服发布网 魔域搜服网 新开传奇网站 45woool找传世 传奇世界吧 天龙搜服网 诛仙3手游官网

工具:
成语大全 菜谱大全 邮编区号 全国地图 公交查询 火车时刻表 汉字换拼音 繁体字转换 二维码 | 站长工具:收录/反向链接 ALEXA排名 关键词排名 WHOIS
教程:
Flash Dreamweaver Photoshop | ASP PHP | ASP.NET Java | SQL MySQL 热门搜索:内参 游戏 美食 美女 魔域 天龙八部 DNF 传奇 传奇世界
论坛:

手机 笔记本 配件 办公与网络 | 户外摄影 美食天地 美色美女 揭幕内参 | 游戏热点 王者荣耀 传奇 天龙八部

驱动下载:显卡 声卡 网卡 主板 打印扫描
加入官方微信号
渠道报价/招聘
任你发任你查
Copyright 2019 www.zhujiangroad.com All Rights Reserved.
南京网爵数码科技有限责任公司版权所有 版权所有 苏ICP备05016148号
关于我们 | 手机版 |  收藏夹 |  南京地图 | 站长工具 | 中耳炎.中国