php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)
php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)
一、总结
从外到内解决网站大流量高并发问题---从提交一个url开始(从用户按下搜索栏回车键开始)
url最开始会到dns域名服务器,dns可以根据域名所连的多个ip来按一定的方案分配ip,所以就可以有dns负载均衡
1、dns负载均衡
然后就到了具体的服务器,比如Linux服务器,linux服务器最常用的均衡技术就是lvs(Linux Virtural Server)
2、负载均衡器(例如lvs)
为了防止某一台服务器出故障而部分用户体验差的问题,就可以用到集群技术
3、集群服务器
然后就到了服务器上面的web服务器层面(Maven,apache,nginx),如果并发量实在高可以用nginx
4、web服务器采用nginx(并发量2W+)
然后就到了框架层面,我们可以用静态缓存技术将动态页面变成静态页面,比如thinkphp
5、静态缓存(tp,smarty)

静态缓存只是实现了动态编程代码编程静态编程代码,数据还得到数据库中去取,那么我们可以缓存数据数据,这里有两种方案,a将数据库中的常用数据缓存到文件中,b将数据库的常用数据缓存的内存中
6、文件数据缓存(tp)--以文件的方式缓存数据库中的数据

电脑从文件中读取数据显然没有直接从内存中读取的要快,所以下面可以用内存缓存数据库中的数据
7、内存数据缓存(memcache,redis)--以内存的方式访问数据库中的数据
然后就到了数据库,那最常用的优化技术就是index索引技术
8、给数据库添加索引
数据库的下面就是硬盘了,我们可以用硬盘阵列技术
9、磁盘阵列技术
二、php面试题二--解决网站大流量高并发方案
10,描述一下大流量高并发量网站的解决方案
1)lvs 或 nginx 负载均衡器
2)squid 缓存或 nginx web cache 缓存
3)web 服务器选型(nginx 代替 apache)
4)php 代码静态化(smarty 或框架)
5)sphinx
6)memcache
7)sql 语句一定要注意索引使用
8)主从分流
9)分库分表或分区
10)磁盘分布(raid0+raid1)
Mysql 数据库优化:
1.sql 语句(索引优化,语句定位:1.慢查询 2. desc 或 explain 去解析 sql 语句,分析索引使用
情况以及扫描行数)
2.表优化(表引擎使用:myisam 或 innodb)
3.数据库优化(分库分表或分区)
4.服务器优化(四种字符集,主从 mysql)
7.解决大访问量
web服务器:
至少两台以上服务器来提交对客户的请求,web服务器负载均衡,apache并发人数3000左右,nginx并发人数20000左右
mysql服务器:
多台mysql服务器对外提供sql响应,数据库服务器负载均衡
软件:
1)静态缓存
2)数据缓存
数据库:
1)字段加索引
2)分表
8.mysql优化
1)服务器优化
1)服务器负载均衡
2)数据库优化
1)myisam表引擎
3)表优化
1)分表
2)字段索引
4)sql语句优化
1)写sql语句时,where后面的字段尽量使用加索引的字段,而且要小心有的sql语句会让索引失效.
什么网站的高并发大
比如qq(通讯类),视频网站(同一时间看同一个视频的),游戏网站
大流量有一定几率带来高并发
php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)的更多相关文章
- PHP解决网站大流量与高并发
1:硬件方面 普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬 ...
- PHP如何解决网站大流量与高并发的问题(一)
高并发的相关概念 在某个时间点,有多少个访问量 如果一个系统的日PV在千万以上,有可能是一个高并发的系统 QPS: 每秒钟请求或者查询的数量,在互联网领域,指每秒相应请求数(指HTTP请求) 吞吐量: ...
- 转:基础篇|PHP如何解决网站大流量和高并发
基础篇 高并发架构基础概念和优化思路 高并发架构相关概念 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程 ...
- PHP如何解决网站大流量与高并发的问题(二)
转载:https://zhyunfe.github.io/2017/10/02/php-interview-prepare-hc-2/ 数据库缓存 相关概念 什么是数据库缓存? 为什么使用缓存 使用M ...
- PHP如何解决网站大流量与高并发的问题
首先,确认服务器硬件是否足够支持当前的流量. 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻 ...
- PHP如何解决网站大流量与高并发的…
首先,确认服务器硬件是否足够支持当前的流量. 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻 ...
- PHP如何解决网站大流量与高并发的问题(四)
动态语言的并发处理 相关概念 什么是进程.线程.协程 什么是多进程.多线程 同步阻塞模型 异步非阻塞模型 php并发编程实践 什么是进程.线程.协程 进程 进程是一个执行中的程序 进程的三态模型:多道 ...
- PHP如何解决网站大流量与高并发的问题(三)
七层负载均衡的实现 基于URL等应用层信息的负载均衡 Nginx的proxy是一个很强大的功能,实现了7层负载均衡 功能强大.性能卓越,运行稳定 配置简单灵活 能自动提出工作不正常的后端服务器 上传文 ...
- PHP解决网站大数据大流量与高并发
1:硬件方面 普通的一个p4的服务器每天最多能支持10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬盘读写 ...
随机推荐
- spring boot 热启动
spring boot热启动有两种方式 1. 以Maven插件的形式去加载,所以启动时使用通过Maven命令mvn spring-boot:run启动,而通过Application.run方式启动的会 ...
- 洛谷 P1358 扑克牌
P1358 扑克牌 题目描述 组合数学是数学的重要组成部分,是一门研究离散对象的科学,它主要研究满足一定条件的组态(也称组合模型)的存在.计数以及构造等方面的问题.组合数学的主要内容有组合计数.组合设 ...
- [RxJS] Marbles Testings
Install: npm install — save-dev jasmine-marbles Basic example: import {cold, getTestScheduler} from ...
- bind()和trigger()额外数据
$(function(){ $('input').click(function(e,data1,data2,data3,data4){ alert(data1 + '|' + data2 + '|' ...
- 微信小程序简单常见首页demo
wxml <view class='index-contier'> <view class="index-left"> <view>电池剩余&l ...
- solr索引创建流程
solr索引创建流程: 分词组件Tokenizer 分词组件(Tokenizer)会做以下几件事情(这个过程称为:Tokenize),处理得到的结果是词汇单元(Token). 1.将文档分成一个一个单 ...
- CentOS6.X安装10G需要额外安装的软件包
yum -y install libXp yum -y install libXp.i686 yum -y install libXtst.i686
- 第二遍回顾--①前端flex布局
1.flex: 弯曲,收缩 2.概念 2条主轴,main axis,cross axis; 每个单元为flex item,主轴空间main size,交叉轴空间cross size; 3.容器 .co ...
- JS实现拖拽小案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 原生js大总结五
041.在js中如何用方法将10进制的字符转换成16进制和8进制 数字.toString(16) 数字.toString(8) 042.如何创建时间对象 new Date() 04 ...