zoukankan      html  css  js  c++  java
  • MongoDB 搭建文件存储的方案

    用云的话,节省你开发成本,快速上线,数据比较安全。缺点是一旦用了他们的,形成习惯以后,数据想迁移就会比较麻烦,你会越来越依赖,而且规模上去以后价格并不低。
    早年自己做的话,你需要实现分布式文件系统,这个会比较费时间,一些开源的框架又不太靠谱,或者太庞大。不果现在好了,MongoDB 3.0出来了。

    用户读请求(HTTP GET) -> CDN -> Varnish -> PHP -> MongoDB Cluster
    用户写请求(HTTP PUT) -> Varnish -> PHP -> MongoDB Cluster

    机房布局:中心IDC(双线/BGP) PHP + MongoDB Cluster
    边缘节点:Varnish散布在电信、联通,移动。一般可以租 VPS来架设 varnish。

    缓存超时:注意在 HTTP头部控制好 Max-Age等超时时间,比如404超时,缓存20秒即可。

    你自己做的话,可以考虑下 MongoDB 3.0 WiredTiger引擎 + PHP来做数据存储,数据按照 crc32的 hash存到32个不同的 collection里面,然后按照文件名来做 shard key,几百行就搞定了,前端加个CDN。把 MongoDB做后端存储,负责分布式和冗余。你前端接个 PHP+ varnish做缓存,性能和 openstack swift差不多,如果外面再加上 CDN的话,你不用当心访问量了。

    -----------------
    上面是完备的方案,你如果只弄个什么校内比赛,你直接php存磁盘上就行了嘛,然后返回个 HTTP URL就得了,注意下 HTTP超时和续传。
     
     
    作者:韦易笑
    链接:https://www.zhihu.com/question/30060755/answer/46618166
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    团队冲刺第八天
    团队冲刺第七天
    团队冲刺第六天
    团队冲刺第五天
    找水王
    团队冲刺第四天
    团队冲刺第三天
    团队冲刺第二天
    团队冲刺第一天
    spring冲刺计划
  • 原文地址:https://www.cnblogs.com/lilunjia/p/8134678.html
Copyright © 2011-2022 走看看