安卓

注册

 

发新话题 回复该主题

我与七牛三周年豌豆荚坚信11大于2 [复制链接]

1#
辽宁白癜风医院 http://www.bdfyy999.com/bdf/

三年的时光,说短不短,说长不长。我们很庆幸,在这三年的时光里,有近15万家客户陪同七牛一起度过。现在,已经有越来越多的创业者开始意识到将非核心业务外包给第三方是一个正确的决定。值此三周年之际,我们特别推出“我与七牛三周年”栏目,旨在分享那些曾经在技术选型道路上徘徊的创业者的思考与选择。

今天,小编要介绍的是豌豆荚。

豌豆荚的产品自不用多讲,地球人都知道。大多数人对豌豆荚的印象还停留在手机应用商店,而豌豆荚则更希望成为整个移动互联网领域的Google。未来,豌豆荚将发力“移动内容搜索”,将原来的视频搜索拓展至游戏、电子书、音乐、壁纸、主题等多个娱乐内容类别的搜索,也就是说在豌豆荚你不仅可以搜索应用了,还可以搜索其他的互联网内容。

那么,在技术层面,豌豆荚是如何利用云服务来支撑自己的迅速发展的呢?

豌豆荚整个系统的设计为:服务端将元数据存储与文件存储分开,客户端通过同步协议与后端同步。这个架构下,最大的挑战便是文件存储。在系统调研后他们发现文件存储并非他们擅长,于是做出了一个重要决定:启用第三方存储服务,坚信1+12。

在这个决定下,第一版基于第三方服务的架构上线,当时还未选择七牛作为第三方存储。基本架构是,照片从用户手机上传到豌豆荚的服务器,meta信息存在mysql中,图片暂存本地磁盘,异步转存到某第三方存储。同步协议是后续完善的,走的是自定义的同步协议,支持更多更丰富的数据,支持同步、镜像、增量,等各种同步模式。取自于Chrome的同步协议,工作流与Git类似。大文件存储不变,其他数据存储放到mysql。服务上线后碰到一些问题,这种架构的问题在于造成带宽压力大,并且转存到第三方存储服务这个过程常常会成为瓶颈,同时当时使用的第三方存储服务并不是真正的分布式存储。

因此第二阶段,他们把架构改为客户端把数据直传到AWS的S3上,获得文件标识,然后元数据以及文件标识上传到同步服务上,并入库。此时的架构变得易于扩容了,但是当时选择的是AWS的S3,在国内的可访问性不好,并且图片的处理服务依然要自己实现。

第三阶段,也就是现在,经过各种比较,存储服务选择了七牛,架构变成了全新的依赖第三方存储的同步服务架构。首先,为了保护用户的资源,七牛云存储要求对每个上传请求、文件管理请求,以及私有资源的下载和云处理请求,都需要进行验证,确保访问都是合法授权的。因此架构的第一步,客户端需将文件签名上传,进行校验服务,获取对应的存储服务信息。然后客户端可按照下发的存储服务信息直传数据到七牛,并且获取文件标识。此后,文件标识同步,并入库。并且七牛提供的云端图片处理服务替换原来自己实现的图片处理,节省时间以及资源消耗。

关于豌豆荚为什么选择七牛,豌豆荚的技术们给出了几点原因:可访问性好,成功率高;有很酷的技术框架;等等。当然,最重要的还是三观合。

这次,豌豆荚首席架构师周爱民也为七牛三周年录制了一段视频。(建议wifi下观看)

预览时标签不可点收录于话题#个上一篇下一篇
分享 转发
TOP
发新话题 回复该主题