# **|** 一步一步构建高并发分布式网站架构 # **前言** *author: Dizy* # >[danger] ### 本书还在撰写中,请勿购买 > 如果对本书感兴趣的话,建议先关注本书。待撰写完成后,试读满意再购买 :) > 若已购买的同学,对本书有什么想法可以联系我(下方)。Your thoughts matter! > (价格只做参考,全书完成后再定) # ## 本书适合对象 >[success] 我用LA(N)MP ✔ > 我用ThinkPHP5 ✔ > 我为小但逐渐发展网站工作 ✔ > 我开发/管理的PHP网站遇到了瓶颈 ✔ > 我会基本操作 ✔ 本书会带你了解一般的适合PHP网站的分布式系统的构建,对一个PHP程序员来说,应该易于理解、实现,希望能实际解决你的网站的性能瓶颈。 本书的结构也是:概念+实际操作,希望本书对你即有思想提升也有实用价值。 # ## 你怎么想的? 首先,我们得在一点上达成一致:PHP是最好的...啊不...我的意思是,PHP是中小企业构建网站使用最多的语言。即便是BAT,他们也毫不疑问的在使用PHP,或多或少,只是具体应用场景的问题。 OK,在这一点上,唯一的问题是,很多中小企业网站用户会增长,会有一百、一千、甚至一万人同时访问。运气好,会有**网站负载过重而宕机**的时候。 # #### 我开始也是这么想的 解决问题的一种方案是:对比发现传统PHP运行方式是并发性差的“病原”,于是采用Swoole、Workerman异步高并发Socket网络库,或者甚至选用并发性更好的Node.Js、Erlang重构网站。这些方法产生新问题在于,**当原有系统已经足够复杂时,采用新技术重构并不那么经济** —— PHP同学你得学习Swoole咯!多进程、异步数据库池、任务池都是要学习掌握的!或者学习Node.Js咯!用Javascript这门不同的语言,使用不同的框架,比如 Express.Js 来重新构架!听起来很带劲!但实际上,换用新语言重构要么意味着高昂的学习成本,要么就意味着新的雇佣关系。 而另一种解决方案可能老板更容易接受:“堆”机器 —— 因为**比起人力成本,机器实在是太实惠了**。况且在相同配置下,即使换用所谓的高并发的技术或者语言,可能并不能带来臆想之中的好效果。而提高机器性能则是100%显著有效的,只需要更换或添置硬件就好。弹性云服务器更好办了,加CPU、内存、硬盘,几分钟就能搞定。 可是一段时间后,生意太好了,网站总是门庭若市,老问题又来了。而单台服务器配置几乎已经到顶额,没法再加了。问题貌似不能以同样简单的形式解决了,咱们又回到了最开始追根溯源的状态。 # #### 到底什么导致了网站的瓶颈? 是大量静态文件访问?是复杂的业务逻辑?是I/O?是数据库读写?还是其他? 不同类型网站有不同的瓶颈。而就同模块化系统的思想一样,对于不同的瓶颈,我们解决问题的思想是“**分而治之**”—— 于是我们采用分布式系统,把负载分担到各个子系统上从而解决瓶颈问题。 这就是本书讨论和解决的核心,下面的章节都是围绕这几个瓶颈而展开的。在实际应用中,应该根据网站的具体情况,选用具体的内容并且配置具体的量(比如主从数据库个数等)。 # ## 资源索引 1.ThinkPHP 2.F 3.# ## 作者 Dizy 全栈开发 / EDM制作 / 平面设计 / 后期特效 mailto: derzart@gmail.com