整理自慕课网360大牛全面解读PHP面试 ,购买链接:https://coding.imooc.com/class/133.html

1.高并发和大流量解决方法

真题回顾

PHP如何解决高并发大流量问题?

考点分析

高并发架构的相关概念概念百度百科并发 ,  我们所说的并发,在互联网时代,并发、高并发通常是指并发访问,也就是在某个时间点有多少个访问同时到来。 通常如果一个系统的pv在千万以上,有可能是一个高并发的系统。 高并发的问题,我们该关心什么 , qps每秒钟请求或者查询的数量,在互联网领域,值每秒的响应的请求数。吞吐量, 单位时间内处理的请求数量(通常由qps 与并发数决定)。响应时间 从发出请求到收到响应花费的时间。pv: 综合浏览量(page view ),即页面浏览量或者点击量,一个访客在24小时内访问的页面数量。同一个人流量一个网站的一个页面算一个pv 。uv: 独立访客(unique visitor),即一定的时间范围内,相同的访客多次访问网站,只计算为1个独立访客。带宽 :计算带宽大小需要关注两个指标,峰值流量和页面的平均大小。日网站带宽 = pv/统计时间(换算到秒)*平均页面大小(单位kb)*8 。 并发连接数 qps 不等于并发连接数,qps是每秒http请求数量,并发连接数是系统同时处理的请求数。 峰值每秒请求数 = (总pv数*80%)/(6小时秒数*20) , 含义80%的访问量集中在20%的时间。6小时是简单的估值 。压力测试 ,测试能承受的最大并发、测试最大承受的qps。 常用的性能测试工具 :ab、wrk、http_load、web bench 、 siege、Apache jmeter。ab工具使用可参考:https://blog.csdn.net/qq_16399991/article/details/56676780 注意事项:测试机与被测试机分开、不要对线上服务做压力测试、观察测试工具ab所在的机器,以及被测试的前端机的cpu,内存,网络等不超过最高限度的75%。

  1. qps达到极限 : qps50 :小型网站,一般的服务器就可以应付;
  2. qps达到100:假设关系型数据库的每次请求在0.01秒内完成,假设单页面只有一个sql查询,那么100qps意味着1秒钟完成100次请求,但是此时我们并不能保证数据库查询能完成100次,所以达到极限,优化方案:数据库缓存层、数据库负载均衡。
  3. qps达到800:假设我们使用的百兆带宽,意味着网站出口的实际带宽是8M左右,假设每个页面只有10k,这个并发条件下,百兆的带宽已经吃完。方案:cdn加速、负载均衡。
  4. qps达到1000, 假设使用memcache 缓存数据库查询,每个页面对memcache的请求远大于对db的请求,memcahe的悲观并发数在2W左右,但有可能在这之前内网带宽已经吃光,表现出不稳定。方案:静态html缓存。
  5. qps达到2000 在这个级别下 文件系统访问锁都成为灾难。方案:做业务分离,分布式存储。

优化方案:

  • web服务器优化 :负载均衡
  •  流量优化:防盗链处理 将恶意请求屏蔽,
  • 前端优化:减少http请求、添加异步请求、启用浏览器缓存和文件压缩、cdn加速、建立独立的图片服务器、
  • 服务端优化:  页面静态化、并发处理、队列处理、
  • 数据库优化: 数据库缓存、分库分表、分区操作 、读写分离、负载均衡

一网打尽

2.web资源防盗链

相关概念:

什么是防盗链:盗链就是在自己的服务器上展示一些不是自己服务器上的内容

防盗链工作原理 : 通过refer 或者签名,网站可以检测到目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示他的网页地址,一旦检测到来源不是本站即进行阻止或者返回指定页面。 通过签名方式  通过计算签名的方式,计算签名是否合法,合法则显示,否则返回错误信息。

实现方法:通过referer方法 使用nginx 模块ngx_http_referer_module 用于阻挡来源非法的域名请求,nginx指令valid_referers,全局变量$invalid_referer.问题 可以伪装referer。 使用加密签名, 使用第三方模块httpAccessModule实现反盗链,

3.减少http请求

相关概念

为什么减少http请求次数: 性能黄金法则:只有10%-20%的最终用户响应时间花在接受请求的http文档上,剩下的80%-90%时间花在html文档引用的所有组件(图片,js,css ,flash等)。如何改善:减少组件数量,从而减少http请求。http连接产生的开销:域名解析-tcp连接-发送请求-等待-下载资源-解析时间

减少http请求的方式:css精灵、合并脚本和样式表适

4.浏览器缓存和压缩优化技术

5.CDN加速

6.建立独立的图片服务器

7.动态语言静态化

8.数据缓存层的优化

9.数据库缓存层的优化

10.mysql数据层的优化

11.web服务器负载均衡

相关概念:

七层负载均衡实现: 基于url等应用层信息的负载均衡;代表 nginx的proxy是他一个很强大的功能,实现了7层负载均衡。功能强大、性能卓越、运行稳定, 配置灵活简单、能自动剔除工作不正常的后端服务器、上传文件使用异步模式、支持多种分配策略。nginx负载均衡策略:内置策略:iphash加权轮询, 扩展策略:fair策略:根据后端服务器的响应时间判断负载情况,从中选出负载最轻的机器进行分流。通用hash:通用hash比较简单,可以以nginx内置变量为key进行hash、一致性hash:采用nginx内置的一致性hash环,支持memcache。

nginx配置

四层负载均衡实现: 通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。lvs实现服务器负载均衡有三种方式NAT、DR、和TUN。

360大牛解读PHP面试-高并发解决方案类考察点相关推荐

  1. 解读PHP面试-高并发解决方案类考察点

    解读PHP面试-高并发解决方案类考察点 参考文章: (1)解读PHP面试-高并发解决方案类考察点 (2)https://www.cnblogs.com/jokmangood/p/11735126.ht ...

  2. 高并发解决方案类考察点

    安装ab 查看ab 并发测试

  3. 360大牛解读PHP面试-算法、逻辑思维考察点

    整理自慕课网360大牛全面解读PHP面试 ,购买链接:https://coding.imooc.com/class/133.html 推荐 牛客网 剑指Offer 刷题连接 https://www.n ...

  4. 《Java并发编程入门与高并发面试》or 《Java并发编程与高并发解决方案》笔记

    <Java并发编程入门与高并发面试>or <Java并发编程与高并发解决方案>笔记 参考文章: (1)<Java并发编程入门与高并发面试>or <Java并发 ...

  5. 面试经典情景题:高并发解决方案

    面试经典情景题:高并发解决方案 情景模拟:在很多个用户同时访问网站的时候,例如:抢购或者双十一的时候.如何避免服务器宕机或者数据库挂掉的问题,请你提供几种解决方案. 1.静态资源与后台服务进行分离 静 ...

  6. Java面试中常见的高并发解决方案

    Java面试中常见的高并发解决方案 一般来讲,提高系统应对高并发能力的解决方案可以从以下几个方面入手: (1)高性能服务器 (2)高性能数据库 (3)高效编程语言 (4)高性能web容器 提高数据库性 ...

  7. 关于SQL SERVER高并发解决方案

    现在大家都比较关心的问题就是在多用户高并发的情况下,如何开发系统,这对我们程序员来说,确实是值得研究,最近找工作面试时也经常被问到,其实我早有去关心和了解这类问题,但一直没有总结一下,导致面试时无法很 ...

  8. 高并发编程(四)高并发解决方案从前端到数据库

    1. 高并发和大流量解决方案 高并发架构相关概念 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理 ...

  9. JavaWeb 并发编程 与 高并发解决方案

    在这里写写我学习到和自己所理解的 Java高并发编程和高并发解决方案.现在在各大互联网公司中,随着日益增长的互联网服务需求,高并发处理已经是一个非常常见的问题,在这篇文章里面我们重点讨论两个方面的问题 ...

  10. 大型网站高并发解决方案——集群

    文章目录 大型网站高并发解决方案--集群 前言 一.集群 1.集群的分类 2.负载均衡集群(LB) (1)负载均衡集群结构 (2)负载均衡设备分类 3.高可用集群(HA) 4.高性能运算集群(HPC) ...

最新文章

  1. JS 全局对象 全局变量 作用域 (改自TOM大叔博文)
  2. 柳青:2017,滴滴实现规模增长和修炼内功的一年
  3. JAVA垃圾回收的几点知识
  4. 为了上班摸鱼,我用Python开发“BOSS来了”!
  5. 三元表达式 列表递推 生成器表达式
  6. delphi 函数内创建对象 释放_JavaScript 的函数底层运行机制
  7. html引用单文件组件,vue之单文件组件 纯网页方式引入
  8. Axure RP Pro 6.5.0.3050破解版下载(本帖链接与官方版本同步更新)
  9. 数据库设计原则、表字段命名规则、索引调优建立规则
  10. 总结的iOS、mac开源项目及库,持续更新。。。。 github排名 https://github.com/trending,github搜索:https://github.com/search
  11. kafka数据保存时间问题与kafka的性能测试
  12. python打开xlsm_关于python:如何使用openpyxl使用Macro保存XLSM文件
  13. 存储过程——身份证校验
  14. GsonFormat的安装及使用
  15. Oracle 使用序列插入表自增字段(主键)
  16. k-means聚类、以及二维、三维可视化
  17. 湖北师范大学计算机考研资料汇总
  18. Oracle 11g下载安装教程
  19. 动感相册源码--类似QQ动感影集.rar
  20. 实验七、555时基电路及设计

热门文章

  1. 创建计算机桌面快捷方式图标异常,桌面快捷方式图标显示异常,win7无法正常显示桌面图标怎么办?...
  2. Word:三线表,最底边变细,一直调不过来
  3. 传感器采取船舶的_电容式传感器工作原理与电容式传感器行业应用
  4. 图片标注工具LabelImg
  5. Esri官网购买个人版ArcGIS Pro激活方法
  6. 标准Io编程学习笔记
  7. gliffy下载地址
  8. 剑指Offer系列刷题笔记汇总
  9. 9000个网站、APP、社交网站真实用户头像打包
  10. JAVA小项目--商品管理系统