【原】高负载和高并发
in 随笔 with 0 comment

【原】高负载和高并发

in 随笔 with 0 comment

克服自己消极的、钻牛角尖的扭曲的思想方式,便能增加效率,提高自尊心。 --伯恩斯

有个日PV500W的web站点,问该如何优化。

这个问题,问过好多人,我也被问过好多次,今天就从比较浅的层次说说。那我们改怎么优化呢?我说不用优化,你信么?你肯定觉得不可思议....但确实不用优化啊,就说我这个博客吧~我只要开个CDN日500W的PV轻轻松松,毫无压力,因为,博客类网站基本是静态的页面,而且一篇发布的文章也不会经常不断的修改,所以,基本不需要PHP做什么处理,我发布文章,然后CDN缓存起来,然后,分发各地,服务器压力直接被CDN分的干干净净!

看到这里,你不禁要问了,如果是新闻,咨询类网站怎么办?这类网站,从性质上来说确实比博客要复杂点,但是他也只有部分板块是需要及时热更新的,而大部分还都是冷更新,我的建议就是分库,将热数据单独用一个数据库,这样基本解决了问题。说到这里,都是比较好的情况,那购物类网站怎么办呢?

日500WPV,分散到每一秒钟也就是说57~58次的PV,对于现在的服务器,每秒做出57~58次响应其实是很轻松的,毕竟HTTP协议是短链接,Client发出请求,Server给出结果就断开了。但是用户会商量好,很平均的来访问么?显然是不现实的,那么我们只要做好高峰时段的优化就好了,这时候就会出现高并发的情况。然而在换成Nginx之后,每秒钟10000的并发变的不在那么难,但是数据库吃不消啊,会直接让服务器宕机。对于这样的情况,我觉得NoSQL是个不错的选择,所以MongoDB便进入到我们的项目中,这样好很多了。

如果在多怎么办呢?借用Redis、Memcache缓存来处理热数据,当然这就要求我们的内存足够大!同时做一个队列让那些历史数据不断的慢慢的进入数据库就可以了,当然分布式架构,也是必不可少的。分库分表等手段基本到位,我虽然没有整套的测试过,但是我认为1000WPV应该是没有问题的!

最后说两句,这些基本都是我浅显的认识,也是我对于高并发的认识,如果有不对的地方还请留言指出。

Comments are closed.