详解php处理大并发大流量大存储
作者:搞向CUIT 发布时间:2023-07-21 13:11:02
一、判断大型网站的标准
1、pv(page views)网页的浏览量
概念 一个网站所有的页面,在24小时内被访问的总的次数。千万级别,百万级别,
2、uv值(unique vistor)独立访客
概念:一个网站,在24小时内,有多少个用户来访问我们的网站。达到10万
3、独立ip,重点内容
概念:一个网站,在24小时内,有多少个ip来访问我们的网站。
uv值约等于独立ip.如果要考虑局域网,uv值略大于独立ip
二、大型网站带来的一些问题
1、大的并发
并发量:在同一时间点(1秒内),有多少个用户同时访问我们的网站。对同一个网址,同时刷新浏览器。达到500,就非常大了。
假如并发量是500,pv值是多少。500*3600*10
2、大流量
网站需要的大的带宽。10G.
3、大的存储
网站中的数据库,表的容量成海量趋势,GT级别,如何快速的查找出想要的数据。
三、大并发的解决方案
1、负载均衡器
硬件:f5-bigip 性能比较好,立竿见影,价格昂贵,一般适合于大型网站公司,网游公司。
软件:
lvs(linux virtual server)linux虚拟服务,加入到linux的内核中。
nginx:可以做web服务器(apache),还可以做负载均衡。
2、负载均衡实现的方式
主要有:
轮询技术:客户端请求服务器轮流转发。
ip哈希:同一ip地址的客户端,始终请求同一台服务器。
最少连接:把请求转发给最空闲的服务器。
3、集群
主要是解决计算机单点故障,在一个集群中的计算机,只有一台计算机工作,其他计算机处于休眠状态,监视正在工作的计算机,当正在工作的计算机出现问题,则休眠的计算机立刻接替工作。
四、大流量解决方案
1、防止我们的网站资源被盗链
可以采用一些非技术手段防止被盗链,在图片上添加水印
2、减少http请求
主要手段就是合并js文件,css文件,背景图片的文件。将浏览器需要的样式文件或者js文件,合并成一个样式文件或js文件。比如通过背景图片举个例子。
3、启用压缩
减少数据传输的数据量,常见的压缩格式是:gzip,deflate.
4、通过浏览器缓存数据内容
在网站中有一些资源,比如js文件,css文件,一些图片文件,更新的频率比较少。通过个设置http的cache-control expires属性来进行设置缓存,可以设置缓存的文件类型,设置缓存的缓存周期,
5、可以把比较占用流量的一些资源,单独组建一个服务器
比如图片服务器,视频服务器等。
五、大存储解决方案
1、缓存技术
通过缓存技术,达到不查询数据库或者少查询数据库的目的。
计算机的访问速度,内存》硬盘文件》数据库
缓存技术主要有:
磁盘缓存(页面静态化),把一个查询数据库的页面变成一个不查询数据库的页面
内存缓存:把经常查询的数据保存到内存里面,下次查询数据时候直接在 内存里面查询。
(memcache/redis/mysql的memory引擎)
2、在设计表的时候,要满足3范式
第一范式是:原子性,字段不能再分割了。只要是关系型数据库就自动满足第一范式:
数据库的分类:
关系型数据库:有行和 列的概念,二维表格。常见的关系型数据库:mysql,sql server,oracle,db2,
非关系型数据库(nosql)面向集合和 文档的,没有行和列的概念常见的有redis/mongodb等。
第二范式:在一个表中不能有完全相同的记录。可以通过设置一个主键。
第三范式:表中的字段不能冗余存储。
3、要给表添加适当的索引
索引非常重要的,可以提高查询速度。
常见索引有:主键索引,唯一索引,普通索引,全文索引,
4、要创建适当的存储过程,函数,触发器等
5、读写分离(主从服务器)
6、分表技术(垂直分割和水平分割)
7、分区技术
把一个表的数据内容,在不同的 区域存储,
8、升级mysql服务器(添加配置:加大内容,64位)
9、要对sql语句进行调优
select * from tablename 该语句不要使用,要按需查询。需要哪个字段的数据,就查询哪个字段的数据。
10、对配置文件进行优化配置
比如配置mysql数据库的并发量:
来源:https://blog.csdn.net/gusgao/article/details/52189288


猜你喜欢
- 数在 Python 中,对数的规定比较简单,基本在小学数学水平即可理解。那么,做为零基础学习这,也就从计算小学数学题目开始吧。因为从这里开始
- 背景Translation插件在mac上idea能够搜索到,但是在windows上却搜索不到解决勾选上成功了。来源:https://blog
- 本文实例讲述了Python操作多维数组输出和矩阵运算。分享给大家供大家参考,具体如下:在许多编程语言中(Java,COBOL,BASIC),
- 页面自动刷新代码大全,基本上所有要求自动刷新页面的代码都有,大家可以自由发挥做出完美的页面。 1)10表示间隔10秒刷 ...页面自动刷新代
- 我们都知道,可以使用高德地图api实现经纬度与地址的转换。那么,当我们有很多个地址与经纬度,需要批量转换的时候,应该怎么办呢?在这里,选用高
- 最近跑实验,遇到了一个问题:由于实验数据集比较多,每次跑完一个数据集就需要手动更改文件路径,再将文件传到服务器,再运行实验,这样的话效率很低
- 大家在打开带有图片的网页时,有时会看到这样的情况:当鼠标指向图片的不同部位时,可以打开不同的超链接,这
- magpierss中就用到了snoopy,这让我有点兴趣去研究下这个咚咚。再SF上,找到了这个源代码。居然就是一个类,但不要笑看哦,功能可是
- Infopath的使用避免了最终用户以完全手写的方式生成XML数据文件,同时也可以统一XML文件的格式,在MOSS系统和网站开发中被广泛使用
- 本文实例讲述了python实现生成Word、docx文件的方法。分享给大家供大家参考,具体如下:http://python-docx.rea
- 本文实例讲述了Python3实现从文件中读取指定行的方法。分享给大家供大家参考。具体实现方法如下:# Python的标准库linecache
- 头疼的挂马事件申请了个免费空间弄了个小站空间还可以二年多了挺稳定的只是从今年年初开始网页老莫名奇妙的被人挂马仔细检查了网站 不存在什么漏洞应
- DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。DATEDIFF() 函数返回两个日期之间的时间差。
- 问题:无法上传较大的文件“Request 对象 错误 'ASP 0104 : 80004005'”或者上传成功后,找不到文件
- Javascript 中的闭包其实很改语言中很难理解的一部分。感谢 Stuart 提供了那么棒的 PPT,它深入浅出的解释了 Javascr
- Software as a service 软件即服务,21世纪开始兴起的一种完全创新的软件应用模式。客户通过互联网向厂商定购所需的应用软件
- 本文实例讲述了Python排序搜索基本算法之归并排序。分享给大家供大家参考,具体如下:归并排序最令人兴奋的特点是:不论输入是什么样的,它对N
- 一、问题背景无人机在拍摄视频时,由于风向等影响因素,不可避免会出现位移和旋转,导致拍摄出的画面存在平移和旋转的帧间变换, 即&ldq
- 前言其实容器类型的转换可以说是数据类型的转换,涉及到三个函数,分别是tuple()、list()、set()。为什么要做容器类型的转换,是因
- 如下所示:import tensorflow as tftfe = tf.contrib.eagertf.enable_eager_exec