海量图片的分布式存储设计与实现.docx
《海量图片的分布式存储设计与实现.docx》由会员分享,可在线阅读,更多相关《海量图片的分布式存储设计与实现.docx(12页珍藏版)》请在第一文库网上搜索。
1、海量图片的分布式存储设计与实现一、研究背景:性能与资金,二者可兼得?1.1那么问题来了?随着互联网的发展,许多大中型的网站都保存了大量的图片资源,用户在访问这些图片资源异常丰富的网站(如淘宝、京东等电子商务网站)时,网页中的图片信息占据了页面数据流量的很大部分,那么问题也来了:(1)由于受客户端浏览器限制,无法从一台服务器上同时下载页面中所有图片信息;PS :当一个网页被浏览时,Web服务器与浏览器建立连接,每个连接表示一个并发。当页面包含多个图片时,Web服务器与浏览器会产生多个连接,同时发送文字和图片以提高浏览速度。因此,页面中图片越多Web服务器受到的压力也就越大。同时由于受到浏览器本身
2、的并发连接数限制(2个6个并发),意味着页面上有多于并发连接数限制的图片时,也不能并行地把所有图片同时下载和显示O(2)由于图片保存在物理服务器上,访问图片需要频繁进行I/O操作:因此当并发用户数越来越多时,I/O操作就会成为整个系统的性能瓶颈;(3)由于受操作系统的限制,一个目录中能存放的图片文件数量也是有限的:随着图片资源不断增加,如何有效管理和维护图片也是一个难题;1.2如何解决问题?(1)对于少数大型网站系统,由于自身具有雄厚的资金和人力资源,可采用NFS、CDN、Lighttpd、反向代理、负载均衡等技术提高用户访问速度;但是,这些技术需要庞大的资金来支持。(2)对于多数中小型网站系
3、统,有没有一种方案适用于中等规模商务网站的海量图片数据分布式动态存储及负载均衡的解决方案?该方案可否只需增加很少的硬件成本,即可提升网站的访问速度,并且可以根据需要动态调整图片服务器的数量及图片的存储目录,确保系统具有可扩展性和伸缩性。二、架构设计:构建图片服务器集群对于小型网站,由于数据规模小,可以把网站所有页面和图片统一存放在一个主目录下,这样的网站对系统架构、性能要求都很简单。但大中型网站都保存有海量级的图片文件,所采用的技术更是涉及广泛,从硬件到软件、编程语言、数据库、Web服务器、防火墙等各个领域都有较高要求。因此,有必要设立单独的图片服务器来专门存放图片,把图片数据的流量从Web服
4、务器上分离开,这样的架构可以有效缓解Web服务器的I/O性能瓶颈,提升用户的访问速度。2.1系统设计目标基于以上的考虑,我们希望的设计目标是:(1)图片能进行分布式存储;(2)图片服务器能实现负载均衡;(3)能根据用户访问量及网站图片数据量的增加能动态添加图片服务器节占./ ,(4)图片服务器节点的动态调整对网站用户而言是透明的,并且不会中断系统的正常运行;其中,(1)和(2)是针对系统的高可用和伸缩性,而(3)和(4)则是针对系统的高可用和可扩展而言的。系统整体架构如上图所示:包括客户端、Web服务器、数据库服务器、图片服务器集群4个部分。(1) Web服务器部署网站的Web页面,用于响应客
5、户端用户的请求。当用户浏览网页时,Web服务器响应请求并访问数据库服务器,获得网页中所有图片的URL路径,然后生成页面并返回给客户端;(2)客户端接收该页面并根据页面中的图片URL路径自动从不同的图片服务器下载并显示相应图片。(3)数据库服务器用于记录所有图片的编号以及图片的存放位置等信息,同时需要记录所有图片服务器的配置及当前状态信息。(4)图片服务器集群用于存放网站的所有图片信息,该集群的服务器数量可以根据需要动态增加或删减。三、系统实现:一种简单且价廉可用的方案3.1 数据库设计与实现:两张简单的表Web服务器需要及时掌握所有图片服务器的状态和信息才能动态决定把图片保存到哪一台图片服务器
6、。因此,需要把所有的图片服务器的状态信息全部纪录到数据库服务器中,记录图片服务器信息和状态的表格式如下图所示:可以清楚地看出,图片服务器信息表中记录了图片服务器的ID、名称、URL、最大存储数量、当前已存数量以及服务器的状态(True:可用,False:不可用),每个图片服务器下会有多个图片信息记录,因此它们是一对多的关系。久 ImageServerlnfo ;公% Imagelnfo 会Y? ServerldA ServerNameA ServerllrlA PicRootPathA MaxPicAmountA CurPicAmount FlgUsable口导航属性用 Imageinfo日f
7、ty? Id ImageNameA ImageServerld百丽嬴归 ImageServerlnfo图片记录信息表图片服务器状态信息表(1)图片服务器状态信息表建表语句:(2)图片记录信息表建表语句:3.2 文件上传与浏览系统实现:一个ASP.Net MVC应用程序这里我们使用一个ASP.NET MVC应用程序部署在Web服务器上,这个应用程序作为Web网站向客户提供上传和浏览的服务。因此,它最重要的功能就是:一、接收用户上传的文件,并转交给图片服务器的相关处理程序进行处理和保存;(结束)二、取得所有图片服务器中保存的有效图片路径,返回给客户端浏览器,再由客户端浏览簟里与路径向图片服务器集群
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 海量 图片 分布式 存储 设计 实现