电子商务文件存储及读取服务的设计和开发思路

标签: 电子商务 文件 服务 | 发表时间:2015-05-13 00:00 | 作者:cfyme
出处:http://www.iteye.com

商品图片,平均200-500K,说大不大,说小不小,但量大且细碎,通常通过页面上传,全部保存在文件里,管理和索引都很慢,几乎无法备份,读取也很慢。

传统的基于磁盘存储的缺陷:
1、 图片存储和应用程序在一个服务器上,图片的读取占用大量的磁盘IO,在访问量高的时候,图片读取和应用程序相互影响。特别互联网环境下的文件多以几K,几十K的小文件为主,磁盘寻址和读取,缓存命中率都比较低。
2、 当规模大到一定程度,应用服务器将扩展到多服务器集群环境中,传统的磁盘存储在集群环境下面临集中存储的挑战。
3、 基于磁盘的存储,在面临未来扩容的情况下,也显的能力不足,通过增加磁盘的容量很快将达到极限,最好的方法还是多服务器集群的存储。所以在存储和读取上的难度将陡然增加。

所以鉴于此,放弃简单的磁盘存储,而且各大互联网公司都有自己的文件系统,google的GFS,淘宝的TFS,其他中小型的网站,会采用类似于mogileFS这样开源的文件系统。所以利用开源的文件系统来搭建我们自己的文件系统、文件服务器以及文件的存取服务。

在众多开源的文件系统中,我们选用MongoDB的GridFS作为文件存储服务。

MongoDB特性 MongoDB是一个可扩展、高性能的下一代数据库,由C++语言编写,旨在为web应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用,存储数据非常方便,主要特性有:
1. 模式自由,支持动态查询、完全索引,可轻易查询文档中内嵌的对象及数组。
2. 面向集合存储,易存储对象类型的数据, 包括文档内嵌对象及数组 。
3. 高效的数据存储,支持二进制数据及大型对象(如照片和视频) 。
4. 支持复制和故障恢复;提供了主-从、主-主模式的数据复制及服务器之间的数据复制。
5. 自动分片以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器 。

在OECP社区(http://www.oecp.cn)中,我们也初步使用了mongodb,实践证明mongodb从效率和稳定性上都是有保障的。
GridFS和传统的MogileFS不同, gridfs可以和其它的meta数据部署在同一个 db中,默认的会为gridfs的collection分别创建fs.files和fs.chunks. 当存储一个文件时,可以附加存入任意的附加信息,因为这些信息实际上也是一个普通的collection. GridFS的一个优点是可以存储上百万的文件而无需担心扩容性. 通过同步复制,可以解决分布式文件的备份问题. 目前,mongo支持主-从和Replica Pairs以及受限的Master-Master Replication. 比较实用的还是前2种.

选择了存储的方案后,我们需要对电子商务网站的图片的存储和读取进行整体的架构设计,设计思路:
• 决不允许重复图片存在,利用MD5进行判断
• 文件只有原始的需要保留,其他各尺寸和效果都可以由原图生成
• 图片URL总是固定的,不管它出现在哪里 • 缩略图生成规则也简单的体现在URL里
• 第一次请求,由图片处理程序生成静态文件,以后请求即直接定位到静态文件

下图为图片存取流程图:

所用到的技术组件:
1、    MongDB,第一阶段采用单服务器,后期演变到M-S架构
2、    Nginx: 解析URL并定位到静态文件,如果未生成则转向程序去生成图片
3、    JMagick:用于生成高清的缩略图
4、    spring-data:用于对MongoDB的操作


下一步的工作主要是:
1、    对MongoDB的封装
2、    对文件系统的存储实现和应用程序的读取
3、    将文件系统作为OECP平台的系统组件进行包装

延伸:基于MongoDB的日志服务和用户行为分析的架构设计及实现策略的考察和尝试

案例: 视觉中国的NoSQL之路:从MySQL到MongoDB :  http://blog.nosqlfan.com/html/1155.html 视觉中国MongoDB开发应用实践 :  http://www.infoq.com/cn/presentations/pf-mongodb-develop

 

转载地址: http://www.oecp.cn/hi/yongtree/blog/2575

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [电子商务 文件 服务] 推荐:

电子商务文件存储及读取服务的设计和开发思路

- - 互联网 - ITeye博客
商品图片,平均200-500K,说大不大,说小不小,但量大且细碎,通常通过页面上传,全部保存在文件里,管理和索引都很慢,几乎无法备份,读取也很慢. 传统的基于磁盘存储的缺陷:. 1、 图片存储和应用程序在一个服务器上,图片的读取占用大量的磁盘IO,在访问量高的时候,图片读取和应用程序相互影响. 特别互联网环境下的文件多以几K,几十K的小文件为主,磁盘寻址和读取,缓存命中率都比较低.

解析团购网站和生活服务电子商务的巨大不同

- - 科幻星系
国内有一种习俗,凡是一群人搭伙扎堆购买的谈价格,店铺就会给比单买更便宜的价格. 这就像是你去去哪儿网上,无法通过上面的一个电话订到一间打了3折的套房一样. 虽然互联网廉价的将商家信息方便的传递在你面前,但单一的一份订单并没有对商家造成多大的诱惑. 这事一直到金融危机爆发一年后,才得到解决. 金融危机差点把老美民众逼疯了,也正在是这样的缺钱刺激下,团购网诞生了.

谷歌1.51亿美元收购餐厅点评服务提供商Zagat,大踏步进军本地电子商务市场

- yonghai - 36氪
今天9月份,我们曾报道过谷歌收购顶尖餐厅点评服务提供商Zagat,但当时双方并没有透露交易额. 谷歌周三提交的SEC资料显示,这次交易额达到1.51亿美元,这也成为谷歌今年最大规模的收购案之一. 32年来,总部位于纽约的Zagat一直为餐厅、酒吧、酒店等商家提供来自消费者的点评信息,目前服务覆盖13大类,100多个城市.

HTML5@电子商务.com

- never-online - 随网之舞
在这么短的时间内国内组织了这多次和HTML5相关的大规模顶级会议,几乎涉及到国内所有最领先的互联网企业,从中可以看出HTML5的热度. HTML5引起业界如此重视这是好事,但短时间内过热反而说明了业界对于HTML5的理解程度不够,这点和2005年言必称标准和ajax非常类似,等大家真正对标准和ajax深刻理解并应用到生产实践的时候反而在谈论的是利用标准和ajax成就了某项产品而不仅仅是技术本身,HTML5也正经历这样一个过程.

电子商务的艰难

- alswl - 千鳥志
上午去了趟仓库,第一次看到我们设计的操作线在仓库完整运作,离6月16日去凡客和乐淘仓库学习只有129天. 南五环与北四环之间来回的路上,各种不容易历历在目.

电子商务下一座金矿:O2O

- 的鸟 - 互联网的那点事
B2C、C2C这些概念相信大家已经不陌生了,从1999年到现在我们已经看到,电子商务已经改变了大众的生活方式. 说到大众的生活,作为C端,更多的是在网上购买商品,然后B端或者店主把商品塞到箱子里,通过物流公司送到消费者面前. 这种电子商务的模式经历了12年的变迁使得市场不断的细分:从综合型商城(淘宝为代表)到百货商店(当当、卓越)再到垂直领域(红孩子、七彩谷)接着进入轻型品牌店(PPG、凡客),用户的选择越来越趋于个性化,不再是一家独大的局面.

移动化电子商务分类

- Horgan - 互联网的那点事...
网友 scarlett 投稿 原文. 7月19日,商务部电子商务和信息化司副司长张佩东在《第28次中国互联网络发展状况统计报告》发布会上表示,今年网络购物销售规模预计将占到全社会消费品零售总额的4.5%到5%. 2011年我国网购市场交易规模将达到7634.1亿元. 艾瑞数据,第二季度中国移动互联网市场规模达77.9亿元,其中手机电子商务占27.9%,仅次于移动增值业务.

Tinypay.me:电子商务平台里的Twitter?

- 可可 - 互联网的那点事
突然有一件想要出手的闲置品,可面对繁复的操作实在提不起兴趣去把东西挂到传统C2C平台上. 电子商务平台Tinypay.me的出现,给了这些人一个新的选择. Tinypay.me就像是电子商务平台里的twitter,短小精悍富有实时性. 不同于传统C2C平台,试图建立一个网络杂货市场. Tinypay.me更像是为网友们的偶然性小买卖提供的交易渠道(比如出二手闲置).

替电子商务算一卦

- ItTalks - 谢文
眼下中国网络业涌动着一股电子商务热潮. 此起彼伏,目不暇接,一团混战,煞是热闹. 新卷入大战的主要是没什么商品生产和销售经验的网络业人士,或是没什么互联网常识和网络业从业经验的传统产业老板们. 虽然背后有五花八门的风险投资撑腰捧场,我仍然觉得这事风险甚大,有话要说. 一方面,游戏增长减缓,门户老态毕露,搜索门槛太高,WEB2.0门都没找到;另一方面,当当苦熬上市,京东天量融资,淘宝一枝独秀,支付牌照成真.

小企鹅再战电子商务

- tossking - 南都周刊
6年后再出手电子商务,腾讯的优势还是那几亿用户的行为数据. 2011年8月,深圳南山区高新技术产业园内,陆陆续续传出一些消息,说腾讯已投资了民营快递公司顺丰,并获得了后者的仓储及快递服务支持. 自去年以来,腾讯已连续投资了多家公司,顺丰是最新传言中的一个. 当众人都在猜测腾讯的收购意图时,腾讯却一直不言语,它在不动声色地下着一步暗棋.