Webserver (Nginx) :这一层是可以轻疏松布式支配的,结合智能DNS解析可以大略单纯地防止单点故障、实现区域访问加速,结合LVS很随意马虎实现负载均衡。这一层紧张是卖力处理静态要乞降转发PHP要求至第二层的PHP处理节点,至于静态资源地址,可以单独拿出来支配,或者直策应用商用的云存储做事(海内七牛不错,国外有Amazon S3)
PHP处理节点:一个节点实在便是一个监听特定端口的系统进程,webserver的要求通过负载均衡器(我用的AWS的loadbalancer)进行分发,很好实现分布式和负载均衡。我现在用的还是php自带的php-fpm,实在facebook出的hhvm性能非常刁悍,但是还不能100%通过我项目的单元测试,等hhvm成熟过后可以平滑更换。
你如果想成为一个精良的程序员,不止是PHP或是Java或者c,到了后面都是须要学习高并发,架构事理知识,如果你想成为一名精良的PHPer,我为大家准备了一套佳构PHP教程,里面涵盖Nginx,Memcached,高并发等学习教程,如果你已经有做过,想要精通进阶中高等PHP,我这里也有专注于PHP中高等进阶的教程,点击下方标题链接即可获取方法!

全套laravel框架、ThinkPHP框架全套教程分享,PHP程序员福利!
PHP开拓三年只懂增编削查?那是你没有方案好php学习路线
高速缓存:用的memcached,这一层的浸染紧张是减轻数据库IO和加快热数据访问,缓存策略与程序耦合度较高,不赘述,但大略地说有两种办法,一种是在程序的全局层面加一个缓存处理,这种方法代码耦合度低,但是有效命中率不高,有些项目不一定适应,另一种是在详细的数据存取处加缓存处理,这种办法程序耦合度较高,但是缓存命中率非常高,险些没有无效缓存存在,我用的是这种。
数据库 :我现在的项目数据规模不大,暂时只用了单台数据库,但是程序逻辑上已做好了数据库线性扩展的准备。实在数据库层的扩展是旧调重弹了,常用手段是分库分表,这一块须要在前期的代码就打下根本,其余更平滑地手段是利用中间件,比如360的Atlas,阿里巴巴的cobar,淘宝的TDDL,中间件可以在不大范围变更代码的情形下扩展,但是详细的利用场景还是有限的,详细项目还需单独稽核。
其他:根据不同的项目,架构还可以选择性地利用行列步队,我现在用的beantalkd,Redis也是一个很好的选择。行列步队常用的利用环境是邮件发送和站内推送上面,但是在某些场景下也可以作为核心数据库的缓冲,对应对大并发或者突发性流量也是不错的选择。
有不同的想法,或者好的思路都可以在底部留言给我,我汇总后会发一篇新的文章!