一种分布式对象处理的方法及系统技术方案

技术编号:10160225 阅读:144 留言:0更新日期:2014-07-01 15:04
本发明专利技术提供了一种分布式对象处理的方法及系统,方法包括:应用服务器接收客户端的请求信息,该请求信息包括对象的标识信息;应用服务器将请求信息转发给目录服务器;目录服务器根据接收到的请求信息中的对象的标识信息,查找到对象所在的对象存储集群中至少一个对象存储服务器;目录服务器将所述请求信息转发至查找到的至少一个对象存储服务器;对象存储服务器接收到所述请求消息后,与客户端建立连接,并根据请求信息进行操作。通过基于分布式对象存储的架构,能够提供网盘服务器所需要的大规模的非结构化数据存储,于此同时,通过保存对象的多个副本,保证了对象存储的安全性。

【技术实现步骤摘要】
一种分布式对象处理的方法及系统
本专利技术属于通信
,尤其涉及一种分布式对象处理的方法及系统。
技术介绍
伴随着信息技术的不断发展,人们已经不再满足于将越来越多的数据存储于个人计算机上或者移动硬盘等物理存储介质上,而可以提供高扩展性的空间、灵活的传输和共享机制以及可靠方便的访问接口的网盘服务器,成为存放和共享数据的新兴方式。网盘服务器的主要功能是让用户使用多种终端(例如个人电脑、手机等),通过互联网,将文件上传至网盘服务器,并通过互联网访问和操作已上传的文件。就网盘服务器的功能来说,网盘服务器与传统的以数据为主的互联网应用相近,所以现有的网盘服务器架构也大多参照目前较为成熟的互联网应用架构分为三层:表现层,逻辑层和数据层。其中表现层响应HTTP(HTTP-Hypertexttransferprotocol,超文本传送协议)请求并生成相应的页面,逻辑层负责处理业务逻辑,而数据层负责数据的持久化和存储,各层之间还会部署缓存以提高性能。表现层和逻辑层一般由高级网络编程语言如Java,PHP,C#,Python等实现,并且部署在应用服务器上,多个应用服务器同时运行并且进行负载均衡以处理大量用户发送的并发请求。所有应用服务器与数据层连接,数据层负责保存和维护所有的系统数据,由多台数据服务器构成。与其他的互联网应用类似,用户信息、日志以及系统信息等结构化数据存储于关系型数据库中,如MySQL,Oracle,SQLServer等成熟的商业化数据库是大多数网络应用的首选。目前的网盘服务器的架构主要参照的是传统的互联网应用,传统互联网应用以提供结构化数据的展现和管理为主,例如文字、数据、日志等,这类数据结构清晰,相互的关系非常明确,适合以关系型数据库的二维表进行存储和管理,而且通过使用缓存、分布式部署等技术也能够提供较好的性能。然而,现有的网盘服务器的架构有其无法避免的缺点:网盘服务器需要保存用户上传的各种文件,文件的大小及类型都只能由用户自己掌控。随着用户上传的文件的数量的不断增长,网盘服务器中需要处理大量无规律文件,而管理这些文件以及文件相关联的各种信息的工作是传统的关系型数据库难以胜任的。
技术实现思路
本专利技术实施例的目的在于提供一种分布式对象处理的方法及分布式对象处理的系统,旨在解决现有技术中网盘服务器难以对大规模的非结构化数据存储的问题。本专利技术实施例是这样实现的,一种分布式对象处理的方法,方法包括:应用服务器接收客户端的请求信息,请求信息包括对象的标识信息;应用服务器将请求信息转发给目录服务器;目录服务器根据接收到的请求信息中的对象的标识信息,查找到对象所在的对象存储集群中至少一个对象存储服务器;目录服务器将请求信息转发至查找到的至少一个对象存储服务器;对象存储服务器接收到请求消息后,与客户端建立连接,并根据请求信息进行操作。本专利技术实施例还提供了一种分布式对象处理的系统,包括:至少一个应用服务器、至少一个目录服务器和对象存储集群,对象存储集群包括至少一个对象存储服务器,其中应用服务器用于接收客户端的请求信息,并将请求信息转发给目录服务器,请求信息中包括对象的标识信息;目录服务器用于根据接收到的对象的标识信息,查找到对象所在的对象存储集群中至少一个对象存储服务器,以及将请求信息转发给查找到的至少一个对象存储服务器;对象存储服务器接收到请求消息后,与客户端建立连接,并根据请求信息进行操作。本专利技术实施例与现有技术相比,有益效果在于:首先,通过基于分布式对象存储的架构,能够提供网盘服务器所需要的大规模的非结构化数据存储,于此同时,通过保存对象的多个副本,保证了对象存储的安全性。其次,由于使用对象作为底层存储单位,使得作为分布式对象存储的架构中的表现层和逻辑层的高级编程语言可以直接使用存储数据,无需做数据到对象的映射和转换,降低了分布式对象存储的架构实现的复杂度,有效节省了开发成本。最后,在本专利技术的实施例中,可以通过简单的横向扩展来增加分布式对象存储的架构的容量和或者提高分布式对象存储的架构的性能,而不需要对分布式对象存储的架构统进行复杂的修改,有效降低成本。附图说明图1是本专利技术实施例提供的一种分布式对象处理的方法流程图;图2是本专利技术实施例提供的对象处理的示意图;以及图3是本专利技术实施例提供的一种分布式对象处理的系统结构图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例提出的分布式对象处理的方法中采用分布式对象存储的架构,其中目录服务器可根据接收到的请求信息中的对象的标识信息,查找到对象所在对象集群中的至少一个对象存储服务器,然后目录服务器将请求信息转发至查找到的至少一个对象存储服务器;接收到请求消息的至少一个对象存储服务器与客户端建立连接,并根据请求信息对对象存储服务器的本地存储的对象进行操作。下面结合图1具体说明根据本专利技术的一个实施例的、适于解决上述技术问题的一种分布式对象处理的方法的流程图。如图1所示,本专利技术的实施例提供的一种分布式对象处理的方法,该方法包括如下步骤:步骤S102、应用服务器接收客户端的请求信息,请求信息中包括对象的标识信息。在本专利技术的一些实施例中,应用服务器上可部署有中间件,中间件是一种独立的系统软件或服务程序,分布式对象处理架构借助中间件可在不同的服务器之间共享资源。在步骤S102中,客户端可与应用服务器上的中间件进行交互,应用服务器上的中间件根据不同的客户端渲染出相应的用户界面与客户端交互。中间件可由高级网络语言实现,在分布式对象处理的架构中各应用服务器独立运行,避免与其他的应用服务器进行任何交互,以保证数据的一致性。应用服务器中的中间件可通过对后台数据层的访问,获取分布式对象处理的架构中对象存储服务器所存储的对象的相关信息,并将获取的对象的相关信息返回给客户端。在本专利技术实施例中,对象可以二进制文件的形式存储于对象存储服务器中,每个对象的标识信息可以是对象的名称的哈希值,也就是利用哈希算法计算对象的名称的哈希值,将该哈希值作为对象的标识信息。步骤S104、应用服务器将请求信息转发给目录服务器。在本专利技术的一些实施例中,目录服务器是对象存储服务器与应用服务器之间的代理,通过目录服务器的公用接口,应用服务器中的中间件可以通过网络协议对实际存储于对象存储服务器的对象进行操作,该操作包括:对象的读写操作或者对象的删除操作。步骤S106、目录服务器根据接收到的对象的标识信息,查找到对象所在的对象存储集群中至少一个对象存储服务器。在本专利技术的一些实施例中,可将多个对象存储服务器组成对象存储集群,通过定时的UDP(UserDatagramProtocol,用户数据包协议)广播,每个对象存储服务器将本身的地址信息、容量信息、负载信息和性能信息等对象存储服务器的相关在集群内进行广播,但是对象存储服务器不监听其他服务器的广播消息,互相之间没有任何通信,每一个都只负责对象存储服务器本地的对象存储。具体地,目录服务器接收对象存储集群中所有对象存储服务器的广播消息,广播消息包括:对象存储服务器的地址信息、对象存储服务器的容量信息、对象存储服务器的负载信息、对象存储服本文档来自技高网
...

【技术保护点】
一种分布式对象处理的方法,其特征在于,所述方法包括:应用服务器接收客户端的请求信息,所述请求信息包括对象的标识信息;所述应用服务器将所述请求信息转发给目录服务器;所述目录服务器根据接收到的请求信息中的对象的标识信息,查找到所述对象所在的对象存储集群中至少一个对象存储服务器;所述目录服务器将所述请求信息转发至查找到的至少一个对象存储服务器;所述对象存储服务器接收到所述请求消息后,与所述客户端建立连接,并根据所述请求信息进行操作。

【技术特征摘要】
1.一种分布式对象处理的方法,其特征在于,所述方法包括:应用服务器接收客户端的请求信息,所述请求信息包括对象的标识信息;所述应用服务器将所述请求信息转发给目录服务器;所述目录服务器根据接收到的请求信息中的对象的标识信息,查找到所述对象所在的对象存储集群中至少一个对象存储服务器;所述目录服务器将所述请求信息转发至查找到的至少一个对象存储服务器;所述对象存储服务器接收到所述请求消息后,与所述客户端建立连接,并根据所述请求信息进行操作;所述方法还包括:所述目录服务器获取对象存储集群中所有对象存储服务器的相关信息;所述目录服务器将所述对象存储集群中所有对象存储服务器划分为至少一个对象存储服务器组,所述对象存储服务器组中包括至少一个对象存储服务器;所述目录服务器将每个对象存储服务器组对应至少一段的哈希值范围,并将其对应关系记录到映射表中;所述方法还包括:所述目录服务器根据哈希值范围,对所述映射表中的对象存储服务器组进行排序;所述方法还包括:所述目录服务器对所述对象存储服务器组中的对象存储服务器进行排序,并将所述对象存储服务器的顺序记录到所述映射表中;其中所述目录服务器根据接收到的请求信息中的对象的标识信息,查找到所述对象所在的对象存储集群中至少一个对象存储服务器,包括:所述目录服务器根据接收到的对象的标识信息,查找对象所在的对象存储服务器;如果查找的对象存储服务器上没有所述对象,则根据映射表中的对象存储服务器的顺序继续查找,以确定对象所在的对象存储服务器;当增加至少一个新的对象存储服务器到对象存储集群中时,所述方法还包括:所述目录服务器分配给所述新的对象存储服务器至少一段哈希值范围;如果在所述映射表中存在与新的对象存储服务器对应的哈希值范围相同的哈希值范围,将对应相同哈希值范围的对象存储服务器中的对象复制到新的对象存储服务器中。2.如权利要求1所述的方法,其特征在于,如果需要在对象存储服务器中写入新的对象时,所述方法还包括:如果所述对象存储服务器本地存储的对象中存在与新的对象相同的旧的对象时,在所述对象存储服务器中所述新的对象将覆盖所述旧的对象。3.如权利要求2所述的方法,其特征在于,所述方法还包括:根据所述映射表中的对象存储服务器的顺序,将所述新的对象同时写入到所述对象存储服务器之后的至少一个对象存储服务器中。4.如权利要求3所述的方法,其特征在于,所述目录服务器根据接收到的所述对象的标识信息,查找所述对象所在的至少一个对象存储服务器的步骤包括:所述目录服务器根据接收到的所述对象的标识信息,查找所述对象可能会在的对象存储服务器;如果查找的所述对象存储服务器上没有所述对象,则根据所述映射表中的对象存储服务器的顺序,在顺序上靠近所述对象存储服务器的其他对象存储服务器上继续查找,以确定所述对象所在的对象存储服务器。5.如权利要求1所述的方法,其特征在于,所述目录服务器获取对象存储集群中所有对象存储服务器的相关信息的步骤包括:所述目录服务器接收对象存储集群中所有对象存储服务器的广播消息,所述广播消息包括:对象存储服务器的地址信息、对象存储服务器的容量信息、对象存储服务器的负载信息、对象存储服务器的性能信息中的任意一个或多个;所述目录服务器根据接收到的广播消息,在本地存储并维护至少一个对象存储服务器的列表,所述对象存储服务器的列表中记录有所有对象存储服务器的相关信息,所述相关信息包括:对象存储服务器的性能信息和/或对象存储服务器的容量信息。6.如权利要求1所述的方法,其特征在于,所述目录服务器根据接收到的所述对象的标识信息,查找所述对象所在的至少一个对象存储服务器的步骤包括:所...

【专利技术属性】
技术研发人员:林栋须成忠李宇飞
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1