对照“BlueDavy的网站架构演变”说说外贸B2C网站实际应用


 

 

先介绍一下BlueDavy在其“大型网站架构演变和知识体系”,很有意义。

文章链接: http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html

要点如下:

架构演变第一步:物理分离webserver和数据库

架构演变第二步:增加页面缓存

架构演变第三步:增加页面片段缓存

架构演变第四步:数据缓存

架构演变第五步: 增加webserver

架构演变第六步:分库

架构演变第七步:分表、DAL和分布式缓存

架构演变第八步:增加更多的webserver

架构演变第九步:数据读写分离和廉价存储方案

架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代

 

外贸B2C网站的访问量,可以参照下面的数据:

上图引用了四家比较大的外贸电商网站的浏量数据,虽然Y轴没有坐标,但根据不是非常精确的估算,流量分别如下:

Dealextreme  50~100万/日

LightintheBox 50~100万/日

ChinaVasion  5~10万/日

DinoDirect  10~15万/日

这样的流量,和淘宝、京东、一号店这样的国内巨头还是相差很远。

但优良的网站架构同样可以对外贸B2C站点起到加快用户访问速度,降低负荷的作用。所以我们需要因地制宜的选择适合的网站架构。

 

大多数外贸B2C网站,访问量相对上面四个网站不会更大,只会更小。我们应该采用哪个级别的网站架构,又有效又省钱呢?BlueDavy在博客中提到了10个层次的架构,从低到高。我觉得“第五步”是适合的。说它适合,是因为不需要做伤筋动骨的改动,不需要占用太多的开发资源。架构示意图如下:

(上述图片来自BlueDavy的文章)

前段代理缓存:可以用基于squid的反向代理加速实现,开源的方案很容易找。也有收费解决方案,可供购买。

页面片段缓存:举个例子,buyonme网站的主题区,会显示超过28幅产品图片和价格、评论数量,涉及很多SQL查询,速度比较慢。这部分内容大约10分钟变动一次。优化思路是通过程序,每10分钟将片段写入某个静态文件中,比如cache_page.htm ,同时在内存中载入。当时加载首页的时候,就自动从内存中读取,加快速度。10分钟后,内存数据失效,就会再从cache_page.htm中读取数据。这部分会涉及一定程序工作量。如果需要做片段缓存的页面数量较多,工作量随之增大。

数据缓存:通过query cache来实现,也会牵涉到一部分工作量。如果是基于zen-cart的系统,有类似插件可以应用。

增加webserver:通过dns轮巡达成负载均衡。通过上述改造,网站符合将有效降低。

 

如过后端性能还上不去,那就需要考虑分数据库,数据库读写分离或是更进一步的改造了。但感觉,对于访问量10万左右的外贸电子商务网站,上述解决方法已经足够。

其实我们在讨论优化系统架构的时候,经常忽略一个更简单的解决方法,那就是购买更猛的服务器。外贸电商网站,访问量再牛也不会上到天上,如果服务器足够强劲的话,什么负载均衡、缓存、分离都是浮云。而现如今CPU升级的速度足以赶上网站用户增加的速度。

 

作者: 谭砚耘@用户体验与可用性设计-科研笔记

版权属于: 谭砚耘 (TOTHETOP至尚国际  )

版权所有。转载时必须以链接形式注明作者和原始出处

如果你希望与作者交流,请发送邮件到 tanyanyun/at/163.com 别忘了修改小老鼠

你可能感兴趣的:(blue,WPO,davy,外贸B2C,后端优化)