2 Web网络结构设计
对于结构化SOAP只能通过Hash码查找资源,不支持模糊查询,每次查找联动多个Node,查询效率不如非结构SOAP高。网络波动对结构SOAP的影响比较大,Node的加入和退出对覆盖网路结构有改变,不能保证数据的安全。退出的Node有可能带走部分数据,加入Node可能需要移动数据。还有这2种SOAP体系不太适合存储大尺寸数据文件,也没有统一的存储空间分配调度和管理。结构化SOAP没有负载分担。
虽然SOAP有其局限性,但相对于传统C/S模式,SOAP思想的出现为软件的开发带来新的思路,SOAP最初主要用来在Internet上构建数据分享平台,我们也可以利用其基本的构建分享平台思想,构建新的存储平台。本文就是在某种意义上充分借鉴了非结构化SOAP的思想的基础上,构建的一个数据接口交换文件系统。
不同组的存储服务器之间不会相互通信,同组内的存储服务器之间会相互连接进行文件同步。存储服务器采用binlog文件记录文件上传、删除等更新操作。binlog中只记录文件名,不记录文件内容。
文件同步只在同组内的存储服务器之间进行,采用push方式,即源头服务器同步给目标服务器。只有源头数据才需要同步,备份数据并不需要再次同步,否则就构成环路了。有个例外,就是新增加一台存储服务器时,由已有的一台存储服务器将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
存储服务器中由专门的线程根据binlog进行文件同步。为了最大程度地避免相互影响以及出于系统简洁性考虑,存储服务器对组内除自己以外的每台服务器都会启动一个线程来进行文件同步。
3 可扩展标识语言select设计
select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。
select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一。select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,不过可以通过修改宏定义甚至重新编译内核的方式提升这一限制。
另外,select()所维护的存储大量文件描述符的数据结构,随着文件描述符数量的增大,其复制的开销也线性增长。同时,由于网络响应时间的延迟使得大量TCP连接处于非活跃状态,但调用select()会对所有socket进行一次线性扫描,所以这也浪费了一定的开销。
3.1 信息服务文件访问模型设计优化
一个系统的设计存在着很多的约束条件,系统运行的环境便是其中重要的约束条件之一。本系统主要是为广大中、小型的电商网站考虑而设计,因此并不是运行在商用的、高性能的服务器上,而是运行于普通机器所组成的集群上以便于节省成本以及便于扩展。又因为本系统被设计为主要用作诸如图片服务器等场合,因此虽然对大文件存储同样支持的非常好,但更加主要的还是用于存储数量巨大的小型文件,并对此做出了特别的优化。本系统主要应用的是“一次写入多次取出”的文件访问模型。一个文件一旦经上传、写入后,就不需要改变了。
另外,众所周知大多数网站都需要存储用户上传的文件,如图片、视频、电子文档等。出于降低带宽和存储成本的考虑,网站通常都会限制用户上传的文件大小,例如图片文件不能超过5兆字节、视频文件不能超过100兆字节等。本系统不对文件进行分块存储,与支持文件分块存储的其它数据接口交换文件系统相比,更加简洁高效,并且完全能满足绝大多数互联网应用的实际需要。
3.2 系统的技术方案
数据接口交换系统设计中有一个重要的目标,是以这样的方式构建系统:它可以从部分失效中自动恢复,而且不会严重的影响整体性能。特别是,当故障发生时,数据接口交换系统应该在进行恢复的同时继续以可接受的方式进行操作,也就是说,它应该能容忍错误,在发生错误时某种程度上可以继续操作。
由于本数据接口交换文件系统运行在由多台普通的机器所组成的集群上[15],而普通机器一般相对商用高性能服务器来说更容易发生故障一些,比如操作系统存在的缺陷,人为的非法操作造成的错误或者磁盘、内存、网络、意外断电造成的问题等等。正因为如此,某些机器在某些时间可能是无法工作的,而一些机器发生故障后则可能不能恢复。因此,系统的设计必须满足可用性、可靠性、安全性以及可维护性。 |
核心期刊网(www.hexinqk.com)秉承“诚以为基,信以为本”的宗旨,为广大学者老师提供投稿辅导、写作指导、核心期刊推荐等服务。 核心期刊网专业期刊发表机构,为学术研究工作者解决北大核心、CSSCI核心、统计源核心、EI核心等投稿辅导咨询与写作指导的问题。 投稿辅导咨询电话:18915033935 投稿辅导客服QQ: 投稿辅导投稿邮箱:1003158336@qq.com |