开发者社区> 问答> 正文

OSS另类应用页面级缓存解决之道


看到大多数的分享,都是关于OSS进行图片、大文件等存储的应用,其实OSS本身并不会给自身定位,只要OSS提供了相应的功能,我们就能应用起来,解决一些原来看似非常烦恼的问题,我在这里分享一个利用OSS解决网页html缓存的方案。


我们知道,缓存对于一个网站来说非常重要,几乎是解决性能问题的牛皮糖,缓存会有很多种,常见的有内存的缓存,文件级别的缓存。内存的缓存不太适合太多的内容,缓存的一般是比较关键和热点的内容。文件级别的缓存,涉及到磁盘IO,速度比内存慢了很多,但是相对复杂的数据库查询和业务逻辑处理,磁盘文件缓存也是可以大大提高页面载入速度的。


我们的业务场景是,每天会产生几百个G的html页面文件缓存,把这些文件直接放在硬盘中,会有哪些问题?
1. 硬盘磁盘空间会不足。虽然现在磁盘空间比较廉价,但是随着业务的增长,无法准确预测一个合适的值,把这些文件分布到几块磁盘也是可以的,但是管理比较麻烦
2. html文件缓存是存在过期的,过期就要删除,以便释放磁盘空间,几百个G的小文件删除,极大地占用了主机的IO和负载,已经严重影响到了正常的WEB服务


所以我们尝试利用OSS来存放这些html页面小文件,有几个优势:
1. 过期文件的删除,不再担心影响主机的web业务,每天定时跑脚本,删除OSS上的过期文件,释放空间
2. OSS和ECS通过内网联通,不产生任何外网流量,网络延迟极低,虽然有网络交互,但是整体的时间完全可以控制在100ms之内
3. OSS的响应头可以作为缓存控制的有效手段


总结,我们使用了OSS来缓存HTML文件,再也不用担心磁盘告警,不用担心因为删除过期缓存文件导致服务器的高负载,世界顿时清净了,而我们付出的成本,大概每天5块钱不到,值!


抛砖引玉,希望对大家有所帮助,具体的操作就不发了:)

展开
收起
simonz 2015-04-22 13:00:58 12945 0
2 条回答
写回答
取消 提交回答
  • 阿里云对象存储(OSS)开发工程师
    回楼主simonz的帖子
    另外,oss提供lifecycle功能,可以不用自己跑脚本去删除了,只需要配置好lifecycle规则,oss会自动删除掉符合规则的文件
    2015-04-23 12:02:14
    赞同 展开评论 打赏
  • 小赞一下吧,对读取性能要求不高的可以这样用。否则缓存还是放在内存比较好,高效,但就是贵
    2015-04-23 10:26:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载