闲来无事跟朋友折腾了一个山寨百衲本的网站HelloCpp(http://www.hellocpp.net)。界面我们都是外行,反正基本就是活脱脱一个山寨的www.codeproject.com。不过开发过程中还是蛮有一些心得的。现在写出来跟大家分享。有不对的地方请大家多多建议。


网站性能优化之文件服务器分离技术

    在WEB开发中,一个重要的性能问题是IO问题。通常,一个网站里会拥有包括图片、RAR文件等一系列的文件,这些文件一般都比页面要多很多而且大很多, 并且,这些文件也会比页面访问更多次。这意味着,如果能优化这部分IO的性能,则对整个网站的性能都会有所提高。
      在HelloCpp(http://www.hellocpp.net)的开发过程中,我们使用了网站服务器与文件服务器相分离的技术。即除了页面以外的图片、脚本、资源等文件,都是部署在与网站页面所在的服务器不同的服务器上的。而通过网站上传文件的时候,也会由后台程序保存在远程文件服务器上。这里,保存通常有两种做法:
   1.使用FTP服务来远程保存文件
   2.使用WebService来远程保存文件
   HelloCpp 中使用的是第二种方式,因为使用第一种方式的话,文件服务器需要额外开放一个FTP服务,这样就有更多被攻击的危险。编写一个远程保存文件的 WebService相当简单,只要传递文件的数据Stream即可。另外,文件服务器还可以采取一些轻量级的配置方法,尽可能地提高IO性能。也可以配 置一个冗余的文件服务器,来提供集群访问,具体细节请参考其他专业的文档。

-----待续


最后,欢迎支持HelloCpp(http://www.hellocpp.net),中国人自己的CodeProject编程资料库

posted on 2009-06-08 16:15 亨德列克 阅读(1545) 评论(10)  编辑 收藏 引用
Comments
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    陈梓瀚(vczh)
    Posted @ 2009-06-08 22:20
    原来是你干的。  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    亨德列克
    Posted @ 2009-06-09 10:06
    @陈梓瀚(vczh)
    不是我干的,我是好人  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    kuafoo
    Posted @ 2009-06-09 17:13
    我也正打算做个代码知识库的 参考参考  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    亨德列克
    Posted @ 2009-06-09 18:02
    @kuafoo
    呵呵  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    阿福1
    Posted @ 2009-06-09 21:14
    我觉得,做技术,很重要的一点是基于实验,而不是基于猜想。
    你认为,WEB SERVICES就真的比FTP快吗?
    对于二进制数据,WEB SERVICES是将二进制转换成BASE 64后传输的,对于相同的容量,存储的信息量减少了四分之三。也就是说,100MB的文件,转换成BASE 64后容量是100*4/3=133MB
    个人觉得使用LIGHTTPD等轻量级的WEB服务器,然后启用GZIP压缩输出,这样对于贷款和性能才是最好的选择。  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    空明流转
    Posted @ 2009-06-09 23:25
    原来是你干的。  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    亨德列克
    Posted @ 2009-06-10 11:32
    @阿福1
    我从来没有说WebService比FTP要快,我使用WebService而不使用FTP的原因是,FTP需要另外开放一个服务,因此更容易被攻击。不过你说的很对,WebService的数据量是要大很多,然而,如果WebService部署在一个局域网里的话,用千M网络连接,应该还是可以接受的  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    亨德列克
    Posted @ 2009-06-10 11:32
    @空明流转
    不是我!  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    阿福1
    Posted @ 2009-06-10 16:11
    WEB SERVICES是一种工业标准,但是对于性能却不是最好的。
    如果是一个很大的文件,就算带宽不是问题,把二进制数据转换成BAS64本身就要消耗大量的CPU资源。  回复  更多评论   
  • # re: HelloCpp开发日记:网站性能优化之文件服务器分离技术
    亨德列克
    Posted @ 2009-06-10 16:22
    @阿福1
    是的,CPU是个很大的问题。  回复  更多评论   

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理