一般来说,处理WEB高并发的有用手腕都是采纳可线性扩大的多层分布式架构,我生产项目的架构是如许的,就在这里举一反三一下。
Webserver (Nginx) : (引荐进修:PHP视频教程)
这一层是能够轻松分布式布置的,连系智能DNS剖析能够简易地防备单点故障、完成地区接见加速,连系LVS很轻易完成负载平衡。
这一层主如果负责处置惩罚静态要乞降转发PHP要求至第二层的PHP处置惩罚节点,至于静态资本地点(http://misc.xxxx.com)能够零丁拿出来布置,或许直接运用商用的云存储效劳(国内七牛不错,外洋有Amazon S3)
PHP处置惩罚节点:
一个节点实在就是一个监听特定端口的体系历程,webserver的要求经由过程负载平衡器(我用的AWS的loadbalancer)举行分发,很好完成分布式和负载平衡。
我如今用的照样php自带的php-fpm,实在facebook出的hhvm机能异常刁悍,然则还不能100%经由过程我项目的单元测试,等hhvm成熟事后能够腻滑替代
高速缓存:
用的memcached,这一层的作用主如果减轻数据库IO和加速热数据接见,缓存战略与顺序耦合度较高,不赘述,但简朴地说有两种体式格局,一种是在顺序的全局层面加一个缓存处置惩罚,这类要领代码耦合度低,然则有用命中率不高,有些项目不一定顺应,另一种是在细致的数据存取处加缓存处置惩罚,这类方法顺序耦合度较高,然则缓存命中率异常高,几乎没有无效缓存存在,我用的是这类。
数据库 :
我如今的项目数据局限不大,临时只用了单台数据库,然则顺序逻辑上已做好了数据库线性扩大的预备。
实在数据库层的扩大是陈词滥调了,经常使用手腕是分库分表,这一块须要在前期的代码就打下基本,别的更腻滑地手腕是运用中间件,比方360的Atlas,阿里巴巴的cobar,淘宝的TDDL,中间件能够在不大局限变动代码的情况下扩大,然则细致的运用场景照样有限的,细致项目还需零丁考核。
其他:
依据差别的项目,架构还能够挑选性地运用行列,我如今用的beantalkd,Redis也是一个很好的挑选。行列经常使用的运用环境是邮件发送和站内音讯推送上面,然则在某些场景下也能够作为中心数据库的缓冲,对应对大并发或许突发性流量也是不错的挑选
以上就是php高并发网站是什么意义的细致内容,更多请关注ki4网别的相干文章!