大并发解决方案:
对网站服务器重新架构,采用分层,负载均衡。
1.负载均衡器:
硬件:f5-bigip 可立竿见影但价格昂贵
软件:lvs(linux virtual server)linux虚拟服务
nginx 可以做web服务器,也可以做负载均衡
2.负载均衡实现方式:
轮询:客户端请求服务器轮流转发
ip哈希:同一ip地址的客户端,始终请求同一台服务器
最少连接:把请求转发给最空闲的服务器
3.集群:
主要是解决计算机单点故障,在一个集群中的计算机,只有一台计算机工作,其他计算机处于休眠状态,监视正在工作的计算机,当正在工作的计算机出现问题,则休眠的计算机立刻接替工作。
大流量解决方案:
1.防止网站资源盗链
2.减少http请求
主要手段:合并js,css文件,背景图片文件。
3.启用压缩
减少数据传输数据量,常见压缩格式:gzip,deflate
4.通过浏览器缓存数据内容
通过个设置http的cache-control expires属性来进行设置缓存,可以设置缓存的文件类型,设置缓存的缓存周期,来缓存更新频率较少的资源文件。
5.考虑把比较占用流量的一些资源,单独组建一个服务器
要注意资源服务器的配置:
存储资源的服务器:主要要求是硬盘的容量,读写速度。 可以组建磁盘阵列。
raid0
raid1
磁盘阵列的存储技术:
分布存储:至少是两块硬盘
复制存储:至少是两块硬盘
6.买带宽
大存储解决方案:
1.缓存技术
通过缓存技术,达到不查询数据库或者少查询数据库的目的。
计算机的访问速度,内存》硬盘文件》数据库
缓存技术主要有:
磁盘缓存(页面静态化),把一个查询数据库的页面变成一个不查询数据库的页面
内存缓存:把经常查询的数据保存到内存里面,下次查询数据时候直接在 内存里面查询。
(memcache/redis/mysql的memory引擎)
2.设计表的时候,要满足3范式
第一范式是:原子性,字段不能再分割了。只要是关系型数据库就自动满足第一范式:
数据库的分类:
关系型数据库:有行和 列的概念,二维表格。常见的关系型数据库:mysql,sql server,oracle,db2,
非关系型数据库(nosql)面向集合和 文档的,没有行和列的概念常见的有redis/mongodb等。
第二范式:在一个表中不能有完全相同的记录。可以通过设置一个主键。
第三范式:表中的字段不能冗余存储。
3.要给表添加适当的索引:索引非常重要的,可以提高查询速度。
4.创建适当的存储过程,函数,触发器等。
5.读写分离(主从服务器)
6.分表技术(垂直分割和水平分割)
7.分区技术
8.升级mysql服务器
9.对sql语句进行调优
10.对配置文件进行优化配置
对网站服务器重新架构,采用分层,负载均衡。
1.负载均衡器:
硬件:f5-bigip 可立竿见影但价格昂贵
软件:lvs(linux virtual server)linux虚拟服务
nginx 可以做web服务器,也可以做负载均衡
2.负载均衡实现方式:
轮询:客户端请求服务器轮流转发
ip哈希:同一ip地址的客户端,始终请求同一台服务器
最少连接:把请求转发给最空闲的服务器
3.集群:
主要是解决计算机单点故障,在一个集群中的计算机,只有一台计算机工作,其他计算机处于休眠状态,监视正在工作的计算机,当正在工作的计算机出现问题,则休眠的计算机立刻接替工作。
大流量解决方案:
1.防止网站资源盗链
2.减少http请求
主要手段:合并js,css文件,背景图片文件。
3.启用压缩
减少数据传输数据量,常见压缩格式:gzip,deflate
4.通过浏览器缓存数据内容
通过个设置http的cache-control expires属性来进行设置缓存,可以设置缓存的文件类型,设置缓存的缓存周期,来缓存更新频率较少的资源文件。
5.考虑把比较占用流量的一些资源,单独组建一个服务器
要注意资源服务器的配置:
存储资源的服务器:主要要求是硬盘的容量,读写速度。 可以组建磁盘阵列。
raid0
raid1
磁盘阵列的存储技术:
分布存储:至少是两块硬盘
复制存储:至少是两块硬盘
6.买带宽
大存储解决方案:
1.缓存技术
通过缓存技术,达到不查询数据库或者少查询数据库的目的。
计算机的访问速度,内存》硬盘文件》数据库
缓存技术主要有:
磁盘缓存(页面静态化),把一个查询数据库的页面变成一个不查询数据库的页面
内存缓存:把经常查询的数据保存到内存里面,下次查询数据时候直接在 内存里面查询。
(memcache/redis/mysql的memory引擎)
2.设计表的时候,要满足3范式
第一范式是:原子性,字段不能再分割了。只要是关系型数据库就自动满足第一范式:
数据库的分类:
关系型数据库:有行和 列的概念,二维表格。常见的关系型数据库:mysql,sql server,oracle,db2,
非关系型数据库(nosql)面向集合和 文档的,没有行和列的概念常见的有redis/mongodb等。
第二范式:在一个表中不能有完全相同的记录。可以通过设置一个主键。
第三范式:表中的字段不能冗余存储。
3.要给表添加适当的索引:索引非常重要的,可以提高查询速度。
4.创建适当的存储过程,函数,触发器等。
5.读写分离(主从服务器)
6.分表技术(垂直分割和水平分割)
7.分区技术
8.升级mysql服务器
9.对sql语句进行调优
10.对配置文件进行优化配置
版权声明:本文为博主原创文章,未经博主允许不得转载。