经验总结[系统方面]

 把钱花在内存上是值得的
 建立良好的profile工具,并利用之
 memcache并不廉价,仔细控件cache的对象大小和访问方式
 避免数据库的join操作?
 在产品上做出限制以避免过慢的查询。
 仔细拆分前后台运算
校内网CTO黄晶讲述网站架构变迁
每个网站的发展都会按照一个大致相同的路线去完成,当然这里说的是每个相对成功的网站。
第一阶段:

这一阶段没有太大的访问量,甚至只有一台服务器就搞定了所有的访问。DB和前端的代码全都在一起,压力不高。忆者注:我觉得在alexa没进五万的时候,只要不是特殊的应用,基本都在此列吧。

第二阶段:

网站初具规模,DB压力大增,单独的一台DB已经满足不了现在的访问量,开始考虑读写分离的Master-slave库,使用三个及以上的服务器。忆者注:这时网站的alexa基本上会在1-3万的位置,每天的ip在5-10w的样子,当然,DB我们都认为是MySql。

第三阶段:

访问量继续增加,增加到了DB的压力在Master的机器上非常的明显了,Master开始出现吃不消的情况,出现写耗尽。主从也已经不能满足要求,需要进一步解决负载问题,此时要引入Mysql Proxy程序,进行中间层代理,实现负载均衡,易于扩展。忆者注:这时网站已经不可限量了,先恭喜下你的网站能用到这段。

第四阶段:

网站继续发展,进而出现了数据量的成倍增长,原来的N台DB都出现了一个问题,数据量巨大,无法完成正常速度的读写。此时,需要对网站按功能进行垂直划分,比如用户注册登录是一部分、UGC又是另一部分。与此同时,对数据本身进行水平划分,也就是Hash散表或者是散库。

第五阶段:

真的没了。再往下玩就灭了。


作者:水木    
 
原文地址:https://www.cnblogs.com/hsapphire/p/1634790.html