开发可缓存加速的动态页面

  可缓存加速的动态页面–指页面内容可以被静态化,可供多个访客读取的。而传统的动态网页并不能直接实现静态化缓存处理,因为当中可能包括了一个用户信息,或与个别用户关联的信息。这些是无法进行公开缓存加速的,本文主要是提供一个开发可公开缓存页面的解决方案  :)

为什么需要缓存加速?

  目前有很多网站是基于PHP、Java或ASP甚至C等语言开发而成, 但无论使用哪种语言进行开发,都必须跟数据库连接、读取和处理数据然后生成页面内容并输出。而数据库正好就是动态页面的速度瓶颈,对于一个百万级访问量的网站,如果没有缓存加速的设计,无法想象网站数据库的压力是如何之大。每秒上千个数据库连接和处理,该需要什么样的数据库系统才能支撑起来?

  只有使用缓存加速的技术,才能有效降低数据库的压力并提高页面处理的效率,从而加快页面打开速度。 Continue reading

Yo2 两周岁

  不知不觉Yo2已经为大家服务了两年时间。刚起步的时候网站出现了很多问题,稳定性也欠佳。但我们有很多网友的支持,慢慢的走到今天。非常感谢大家 :D

  回顾2008,我们做了很多事情。

1月博客系统从 2.05升级到 2.3.3 版本

3月 Yo2 审核过滤系统开发完成

5月 Yo2 CDN 系统开发完成

6月 Yo2 CDN 系统成功上线运营

  今年的重点项目是 CDN 系统的建设,能更好的缓解因拔线而造成无法访问的影响,并且博客访问速度得到很大的提高。

  目前 Yo2  正在使用的 WordPress 版本还是 2.3.3,虽然有点老,但我们认为这个版本是非常稳定的,经过我们1年时间的不断优化与修正,博客数据的处理效率非常高,博客系统的BUG也很少。

  而新版的 WordPress 在数据库上与 2.3.3 相差很少,但功能并没有增加多少,主要是后台的操作界面加强与美化,所以我们还未有升级到新版的想法。为了保证稳定的服务,希望广大用户可以体谅。当然我们也在密切关注新版 WordPress 的发展,会认真考虑在一个适当的时间升级到新版程序。

   希望大家能一如既往的支持 Yo2,一起走过更长的道路 :D 谢谢!

中国IDC质量问题与Yo2的解决方案

  嘿嘿,很有标题党的意识。大家见笑了~笑笑罢了 :D

  刚在 Yo2Mass 看到《从豆瓣宕机看IDC单点问题》 一文,自己是深有感触的。刚好今天我们电信的服务器也出了故障,断网4个多小时。从Yo2开张到现在,我们都不知道换多少个IDC。就是没能找到一个很稳定的(当然太贵的我们是租不起)。

  豆瓣所在的机房是北京实力比较厚的IDC之一,我们也有台服务器在他们的天津机房。一直用着,感觉还可以。虽然偶尔会出现某些地区访问速度慢的问题,但因它在教育网的访问速度挺好的,所以一直在用。万没想到,我一直说算稳定的IDC也会出现如此长时间的断网故障《2008.10.31 豆瓣访问故障》。刚查了下豆瓣的服务器信息,发现他们已经把服务器出口切换到其他机房。他们的数据估计都在原来的机房,新的出口应该是直接 Proxy 代理,访问速度并不理想。

  做网站的技术都知道什么是单点故障和它所造成的影响。传统的解决方案是使用LVS把访问请求分发到多个服务器,如果某台服务器故障,它可自动分发到另外的服务器,能很好的解决单点故障问题。但你再看远一点,在前端的LVS不是一个非常大的单点吗?万一它出现故障,那么它后面的N台服务器都无用武之地!大家都在努力解决单点故障的问题,却未意识到自己在制造一个更大的单点故障风险。

  Yo2也有单点故障的情况发生,但它的影响不至于扩散到全局,因为我们使用了CDN技术。我们目前在几个网络、分几个机房,架设了访问加速节点。CDN利用域名智能解析技术把用户的访问指向到不同的服务器,部分用户间是相对独立的,如网通用户与电信用户,甚至可以精确到某个省份和地区。比如今天电信服务器出现故障,就不会影响到网通和教育网用户的访问,并且我们及时在CDN上把电信的访问切换到其他的机房,能快速恢复服务(当然域名解析耗时比较长,大概1个小时左右)

  但CDN也不是灵丹妙药,不是什么网站应用都能使用CDN。比如一些动态页面就无法使用CDN系统的缓存功能,只能直接Proxy。如果网站应用是以动态内容为主,那么建立CDN系统也就等于把成本扩大1倍。因为它只能直接Proxy到后台服务器,CDN跑多高的带宽,后台的服务器都会跑这么高;后台服务器需要处理的数据量跟没使用CDN是一样的,并不会减少。除非把内容缓存在CDN的加速节点上,这样不仅能节约服务器的成本,并且访问速度会快很多。但目前商业运营的服务商,还未能提供这个完美的解决方案。

  Yo2是在成长过程中就意识到单点故障问题的严重性,我们必须把影响降低到最低。因没找到能提供解决方案的服务商和需要考虑运营成本,所以我们选择了自主根据Yo2作针对性的开发。目前我们是拥有一个算完美的解决方案。当然目前的加速节点还很少,单点故障的影响还是比较大。只是从以前的影响100%降低到40%左右,随着Yo2的成长,我们会继续增加更多的访问节点,单点故障的影响将会降到更低 :)