会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 建站经验 > 图片存储架构学习:自力的图片办事器,给爱一个自力的空间

图片存储架构学习:自力的图片办事器,给爱一个自力的空间

时间:2012-02-18 18:56:05   作者:   来源:   点击:

前言

去年我凭着对网站架构的浓厚兴趣陆陆续续给年夜家分享了很多年夜型网站架构的经典案例,可是年夜部分都只是介绍了年夜概,并没有深入地研究,有兴趣的朋友可以去我博客的网站架构分类下学习讨论。本年我筹算继续学习网站架构方面的知识,并对此作加倍深入地阐发与实践,当然学习功能会实时和年夜家分享和交换,希望本年自己的能力可以更上一层楼吧。

这几天我一直在存眷年夜型网站中图片存储方面的相关问题,通过体会和实践,体会颇深,我想我可以针对图片存储这个话题写一个系列文章,以便对这次学习的总结。

第一篇,让我们从自力求片办事器起头说起,真爱,不是须要让自己加倍自力的么?come on!

正文

一、摆设自力求片办事器的需要性

我们知道,无论对Apache仍是IIS,图片始终是最消耗系统资源的,如果将图片办事和应用办事放在同一个办事器的话,应用办事器很容易会因为图片的高I/O负载而解体,因此对有些年夜型网站项目,我们有需要将图片办事器和应用办事器分手。摆设自力的图片办事器(甚至是办事器集群)是年夜型网站图片存储解决方案中最根本的,因为有了自力的图片办事器后,我们才能对图片办事器做更有针对性的性能优化,比如从硬件角度说,图片办事器可以配置高真个硬盘,7200转的换成15000转的,而CPU却只要一般便可以了;从软件角度说,可以为图片办事器配置特殊的文件系统来满足对图片的I/O请求,如淘宝的TFS,就很好地解决了年夜范围小图片文件带来的I/O恶梦,同时,我们也可以采取nginx、squid来代办署理图片请求等等。

2、采取自力域名

注意,这里是指自力域名,不是子域哦,比如yahoo图片办事器用了yimg的域名,而不是用二级域名img.yahoo,这是为什么呢?小我感觉原因主要有以下几点:

1、同一域名下阅读器的并发毗连数有限制,一般在2 - 6之间,下图枚举了各个阅读器的并发毗连数(来自网络,未经我亲自考据,供参考)

这样,我们如果给图片办事器配置自力的域名,那么在一个页面中加载图片时,便可以突破阅读器毗连数的限制,理论上,增加一个自力域名,并发毗连数加倍。

2、由于cookie的原因,对缓存晦气

比如有一张图片http://upload.chinaz//,那么当我们向它倡议请求的时候,会带上test域名下的cookie,由于年夜部分web cache都只缓存不带cookie的请求,这样就致使每次的图片请求都不克不及命中cache,而仍旧要去原始办事器获得图片,致使图片缓存意义不年夜。所以,仍是给伶仃弄一个图片自力域名吧,当然,不只是图片,css和js文件也可以参照这个思路来弄。

3、便利CDN同步

这个我不太清楚是怎么回事,我小我猜想和第二点cookie有点关系,还望资深人士留言分享,谢谢。

三、图片办事器分手后,如何进行图片上传和图片同步

当然任何事物都具有两面性,图片办事器分手当然提升了图片拜候的效率,年夜年夜减缓了办事器因图片造成的I/O瓶颈,可是分手以后图片的上传和同步就成了一个年夜问题了。下面就我小我的想法谈谈几种解决方案。

1、NFS同享体例

如果你不想在每台图片办事器同步所有图片,那NFS同享是最简单也最实用的体例。NFS是个散布式的客户机/办事器文件系统,NFS的实质在于用户间计较机的同享,用户可以联系到同享计较机并象拜候本地硬盘一样拜候同享计较机上的文件。

具体实现思路是:web办事器通过nfs挂载多台图片办事器export出来的目录,用户先将图片上传到web办事器,然后将上传的图片通过法度拷贝到这个mount目录中去,这样那几台图片办事器就也能拜候到刚上传的图片了(注意,只是同享了,并没有真正拷贝到图片办事器)。再给那几台图片办事器绑定自力域名,于是阅读器端便可以用伶仃的域名来拜候图片了。这种体例根基不会有因同步造成的延时,但需要依赖nfs,nfs挂失落会影响web办事器。为了更直不雅的表达,我仍是上一幅图吧,画得比较粗糙,年夜家迁就着看看。

分享到:

网友评论

热门建站经验