一种基于xmpp协议的分布式存储系统的制作方法

文档序号:9730142阅读:403来源:国知局
一种基于xmpp协议的分布式存储系统的制作方法
【技术领域】
[0001]本发明涉及计算机应用技术领域,尤其涉及一种基于XMPP协议的分布式存储系统。
【背景技术】
[0002]Google、Amazon、Alibaba等互联网公司的成功催生了云计算和大数据两个热门领域。无论是云计算、大数据还是互联网公司的各种应用,其后台基础设施的主要目标都是构建低成本、高性能、可扩展、易用的分布式存储系统。
[0003]虽然分布式系统研究了很多年,但是,直到近年来,互联网大数据应用的兴起才使得它大规模的应用到工程实践中。相比传统的分布式系统,互联网公司的分布式系统具有两个特点:一个特点是规模大,另一个特点是成本低。不同的需求造就了不同的设计方案,可以这么说,Google等互联网公司重新定义了大规模分布式系统。目前,大型的互联网公司或互联网组织几乎都实现一套自己的分布式存储方案。
[0004]Google最早发布了三篇论文讲述其分布式存储系统的设计思路和原理,但是没有现成的产品。Apache基金会通过Google的论文,最终实现了一整套解决方案,命名为Hadoop,其中包括HDFS,HBase等子项目。HDFS被设计为针对大文件。HBase是一个开源的非关系型分布式数据库,运行于HDFS文件系统上。
[0005]在Google之后,Amazon公布了自己的Dynamo分布式存储系统解决方案。
[0006]随后,Facebook基于Google和Amazon的解决方案实现了自己的Cassandra分布式存储系统解决方案。不久,Facebook将其开源,并交于Apache基金会维护。
[0007]在以上几个典型的技术方案中,Google的论文与Apache的Hadoop方案体系庞大,而且其底层文件系统针对大文件优化,处理小文件时没有优势。Amazon和Facebook的技术方案使用一致性哈希处理节点的分布和定位,但是其算法实现较复杂。

【发明内容】

[0008]本发明提供了一种基于XMPP协议的分布式存储系统,该发明所述的技术方案以XMPP协议为基础搭建分布式存储系统,管理节点和数据节点之间的信息传递使用XML文件格式,所有数据节点之间通过直连方法进行数据文件的传递。本发明所述的分布式存储系统充分利用已经成熟的XMPP协议的优势搭建分布式系统,有非常好的适应性和扩展性。
[0009]首先,对XMPP协议做一个简单的介绍:
XMPPCExtensible Messaging and Presence Protocol,前称 Jabber)是一种以 XML 为基础的开放式实时通信协议,是经由互联网工程工作小组(IETF)通过的互联网标准。XMPP因为被Google Talk应用而被广大网民所接触。XMPP的关键特色是,分散式的实时通信系统,以及使用XML流。XMPP原本是为即时通讯而量身定制,但由于XML Stanza本身是XML元素,在基于XML灵活发展的特性下,使得XMPP也可以适用其他方面。
[0010]互联网工程工作小组(IETF)已经将Jabber的核心XML流协议以XMPP之名,正式列为认可的实时通信及Presence技术。而XMPP的技术规格已被定义在RFC 3920。XMPP网络的架构和电子邮件十分相像;XMPP核心协议通信方式是先创建一个stream,XMPP以TCP传递XML数据流,没有中央主服务器。任何人都可以运行自己的XMPP服务器,使个人及组织能够掌控他们的实时传讯体验。任何XMPP协议的服务器可以独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已内置于核心XMPP技术规格中。本发明将XMPP协议转用到分布式存储系统中,从而解决现有技术中存在的问题。
[0011]本发明采用如下系统来实现:一种基于XMPP协议的分布式存储系统,包括管理节点和数据节点:
所述管理节点用于存储其他管理节点和数据节点的节点信息,并向数据节点发送控制信息并接收请求信息;
所述数据节点用于存储数据文件,并接收管理节点的控制信息,所述数据节点之间通过直连的方式传递数据文件;
任意一个数据节点只属于一个管理节点,所述控制信息和请求信息遵循XMPP协议,为XML文件格式。
[0012]进一步地,若向分布式存储系统中添加新的数据节点,则包括:
在管理节点中建立待添加数据节点的节点信息;
搭建待添加数据节点并启动;
待添加数据节点向管理节点发送请求信息,所述请求信息中包含待添加数据节点的节点信息;
管理节点接收到请求信息后,对获取的节点信息进行验证,若验证成功,管理节点向待添加数据节点发送控制信息,表明登录成功。
[0013]进一步地,若用户请求向分布式存储系统中上传数据文件,则包括:
用户连接管理节点,并发送请求信息,请求上传数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的数据节点;
选出一个合适的数据节点,并将数据节点的URL返回给用户。
[0014]进一步地,所述管理节点接收到请求信息后,生成数据迀移的控制信息,并发送给所有相关数据节点;所有相关数据节点之间通过直连的方式同步新上传的数据文件。
[0015]进一步地,若用户请求从分布式存储系统中下载数据文件,则包括:
用户连接管理节点,并发送请求信息,请求下载数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的相关数据节点;
选出合适的数据节点,并将数据节点URL返回给用户。
[0016]进一步地,所述将数据节点URL返回给用户包括:
若用户使用的是专用客户端程序,则将数据节点URL生成列表,并将列表返回给用户; 若用户使用的是通用工具,则将一个数据节点的URL重定向返回给用户。
[0017]进一步地,所述管理节点周期性地同步数据节点间的数据文件,包括:管理节点将同步的控制信息发送至所有相关数据节点;所有相关数据节点之间通过直连的方式同步数据文件。
[0018]综上所述,本发明提供了一种基于XMPP协议的分布式存储系统,引入了原本用于通信的XMPP协议,并以XMPP协议为基础,建立分布式存储系统,包括管理节点和数据节点,所述分布式存储系统中除了数据文件之外的信息遵循XMPP协议,数据文件的传递通过数据节点之间直连方式进行。
[0019]本发明的有益效果为:由于使用了已经发展较成熟的XMPP协议,大大降低技术实现复杂度,本发明所述的分布式存储系统可以灵活扩展,方便添加新的数据节点,实时跟踪各数据节点的状态,并可以获取每个数据节点的历史操作记录。
【附图说明】
[0020]为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为本发明提供的一种基于XMPP协议的分布式存储系统示意图。
【具体实施方式】
[0022]本发明给出了一种基于XMPP协议的分布式存储系统,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
参见图1所示,本发明首先提供了一种基于XMPP协议的分布式存储系统,包括管理节点和数据节点:
所述管理节点用于存储其他管理节点和数据节点的节点信息,并向数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1