CN105490999A - 一种基于xmpp协议的分布式存储系统 - Google Patents
一种基于xmpp协议的分布式存储系统 Download PDFInfo
- Publication number
- CN105490999A CN105490999A CN201410807762.2A CN201410807762A CN105490999A CN 105490999 A CN105490999 A CN 105490999A CN 201410807762 A CN201410807762 A CN 201410807762A CN 105490999 A CN105490999 A CN 105490999A
- Authority
- CN
- China
- Prior art keywords
- back end
- management node
- memory system
- user
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明公开了一种基于XMPP协议的分布式存储系统,包括管理节点和数据节点:所述管理节点用于存储其他管理节点和数据节点的节点信息,并向数据节点发送控制信息并接收请求信息;所述数据节点用于存储数据文件,并接收管理节点的控制信息,所述数据节点之间通过直连的方式传递数据文件;任意一个数据节点只属于一个管理节点,所述控制信息和请求信息遵循XMPP协议,为XML文件格式。本发明提供的分布式存储系统,利用了XMPP协议的标准,从而使得对于数据节点的管理和操作更加简单。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种基于XMPP协议的分布式存储系统。
背景技术
Google、Amazon、Alibaba等互联网公司的成功催生了云计算和大数据两个热门领域。无论是云计算、大数据还是互联网公司的各种应用,其后台基础设施的主要目标都是构建低成本、高性能、可扩展、易用的分布式存储系统。
虽然分布式系统研究了很多年,但是,直到近年来,互联网大数据应用的兴起才使得它大规模的应用到工程实践中。相比传统的分布式系统,互联网公司的分布式系统具有两个特点:一个特点是规模大,另一个特点是成本低。不同的需求造就了不同的设计方案,可以这么说,Google等互联网公司重新定义了大规模分布式系统。目前,大型的互联网公司或互联网组织几乎都实现一套自己的分布式存储方案。
Google最早发布了三篇论文讲述其分布式存储系统的设计思路和原理,但是没有现成的产品。Apache基金会通过Google的论文,最终实现了一整套解决方案,命名为Hadoop,其中包括HDFS,HBase等子项目。HDFS被设计为针对大文件。HBase是一个开源的非关系型分布式数据库,运行于HDFS文件系统上。
在Google之后,Amazon公布了自己的Dynamo分布式存储系统解决方案。
随后,Facebook基于Google和Amazon的解决方案实现了自己的Cassandra分布式存储系统解决方案。不久,Facebook将其开源,并交于Apache基金会维护。
在以上几个典型的技术方案中,Google的论文与Apache的Hadoop方案体系庞大,而且其底层文件系统针对大文件优化,处理小文件时没有优势。Amazon和Facebook的技术方案使用一致性哈希处理节点的分布和定位,但是其算法实现较复杂。
发明内容
本发明提供了一种基于XMPP协议的分布式存储系统,该发明所述的技术方案以XMPP协议为基础搭建分布式存储系统,管理节点和数据节点之间的信息传递使用XML文件格式,所有数据节点之间通过直连方法进行数据文件的传递。本发明所述的分布式存储系统充分利用已经成熟的XMPP协议的优势搭建分布式系统,有非常好的适应性和扩展性。
首先,对XMPP协议做一个简单的介绍:
XMPP(ExtensibleMessagingandPresenceProtocol,前称Jabber)是一种以XML为基础的开放式实时通信协议,是经由互联网工程工作小组(IETF)通过的互联网标准。XMPP因为被GoogleTalk应用而被广大网民所接触。XMPP的关键特色是,分散式的实时通信系统,以及使用XML流。XMPP原本是为即时通讯而量身定制,但由于XMLStanza本身是XML元素,在基于XML灵活发展的特性下,使得XMPP也可以适用其他方面。
互联网工程工作小组(IETF)已经将Jabber的核心XML流协议以XMPP之名,正式列为认可的实时通信及Presence技术。而XMPP的技术规格已被定义在RFC3920。XMPP网络的架构和电子邮件十分相像;XMPP核心协议通信方式是先创建一个stream,XMPP以TCP传递XML数据流,没有中央主服务器。任何人都可以运行自己的XMPP服务器,使个人及组织能够掌控他们的实时传讯体验。任何XMPP协议的服务器可以独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已内置于核心XMPP技术规格中。本发明将XMPP协议转用到分布式存储系统中,从而解决现有技术中存在的问题。
本发明采用如下系统来实现:一种基于XMPP协议的分布式存储系统,包括管理节点和数据节点:
所述管理节点用于存储其他管理节点和数据节点的节点信息,并向数据节点发送控制信息并接收请求信息;
所述数据节点用于存储数据文件,并接收管理节点的控制信息,所述数据节点之间通过直连的方式传递数据文件;
任意一个数据节点只属于一个管理节点,所述控制信息和请求信息遵循XMPP协议,为XML文件格式。
进一步地,若向分布式存储系统中添加新的数据节点,则包括:
在管理节点中建立待添加数据节点的节点信息;
搭建待添加数据节点并启动;
待添加数据节点向管理节点发送请求信息,所述请求信息中包含待添加数据节点的节点信息;
管理节点接收到请求信息后,对获取的节点信息进行验证,若验证成功,管理节点向待添加数据节点发送控制信息,表明登录成功。
进一步地,若用户请求向分布式存储系统中上传数据文件,则包括:
用户连接管理节点,并发送请求信息,请求上传数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的数据节点;
选出一个合适的数据节点,并将数据节点的URL返回给用户。
进一步地,所述管理节点接收到请求信息后,生成数据迁移的控制信息,并发送给所有相关数据节点;所有相关数据节点之间通过直连的方式同步新上传的数据文件。
进一步地,若用户请求从分布式存储系统中下载数据文件,则包括:
用户连接管理节点,并发送请求信息,请求下载数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的相关数据节点;
选出合适的数据节点,并将数据节点URL返回给用户。
进一步地,所述将数据节点URL返回给用户包括:
若用户使用的是专用客户端程序,则将数据节点URL生成列表,并将列表返回给用户;
若用户使用的是通用工具,则将一个数据节点的URL重定向返回给用户。
进一步地,所述管理节点周期性地同步数据节点间的数据文件,包括:管理节点将同步的控制信息发送至所有相关数据节点;所有相关数据节点之间通过直连的方式同步数据文件。
综上所述,本发明提供了一种基于XMPP协议的分布式存储系统,引入了原本用于通信的XMPP协议,并以XMPP协议为基础,建立分布式存储系统,包括管理节点和数据节点,所述分布式存储系统中除了数据文件之外的信息遵循XMPP协议,数据文件的传递通过数据节点之间直连方式进行。
本发明的有益效果为:由于使用了已经发展较成熟的XMPP协议,大大降低技术实现复杂度,本发明所述的分布式存储系统可以灵活扩展,方便添加新的数据节点,实时跟踪各数据节点的状态,并可以获取每个数据节点的历史操作记录。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于XMPP协议的分布式存储系统示意图。
具体实施方式
本发明给出了一种基于XMPP协议的分布式存储系统,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
参见图1所示,本发明首先提供了一种基于XMPP协议的分布式存储系统,包括管理节点和数据节点:
所述管理节点用于存储其他管理节点和数据节点的节点信息,并向数据节点发送控制信息并接收请求信息;
所述数据节点用于存储数据文件,并接收管理节点的控制信息,所述数据节点之间通过直连的方式传递数据文件;
任意一个数据节点只属于一个管理节点,所述控制信息和请求信息遵循XMPP协议,为XML文件格式。
其中,所述管理节点可以为一个或者多个,每个管理节点控制多个数据节点;不同管理节点之间的数据节点之间能够通过直连的方式传递数据文件。
优选地,若向分布式存储系统中添加新的数据节点,则包括:
在管理节点中建立待添加数据节点的节点信息;
搭建待添加数据节点并启动;
待添加数据节点向管理节点发送请求信息,所述请求信息中包含待添加数据节点的节点信息;
管理节点接收到请求信息后,对获取的节点信息进行验证,若验证成功,管理节点向待添加数据节点发送控制信息,表明登录成功。
其中,所述数据节点登录成功后,等待管理节点的控制信息或者其他数据节点的直连通信。
优选地,若用户请求向分布式存储系统中上传数据文件,则包括:
用户连接管理节点,并发送请求信息,请求上传数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的数据节点;
选出一个合适的数据节点,并将数据节点的URL返回给用户。
其中,所述URL就是数据文件的存储位置,为第一个存储位置。
优选地,所述管理节点接收到请求信息后,生成数据迁移的控制信息,并发送给所有相关数据节点;所有相关数据节点之间通过直连的方式同步新上传的数据文件。
其中,管理节点接收到上传数据文件的请求信息后,根据配置和算法动态决定本次上传的数据文件需要复制几份,要保存到哪些数据节点上,而所有这些数据节点即为相关数据节点。
其中,所有相关数据节点之间通过直连的方式同步新上传的数据文件,并将同步结果反馈给管理节点,所述同步结果包括但不限于:正常完成、同步失败、超时未完成。
优选地,若用户请求从分布式存储系统中下载数据文件,则包括:
用户连接管理节点,并发送请求信息,请求下载数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的相关数据节点;
选出合适的数据节点,并将数据节点URL返回给用户。
优选地,所述将数据节点URL返回给用户包括:
若用户使用的是专用客户端程序,则将数据节点URL生成列表,并将列表返回给用户;其中,所述专用客户端程序为支持存储协议的客户端;因为同一个数据文件可能存储在多个数据节点中,因此对应着多个URL,可能有失败的情况,因此,将多个URL形成列表返回给用户;
若用户使用的是通用工具,则将一个数据节点的URL重定向返回给用户。所述通用工具包括:浏览器或者wget工具软件等。
优选地,所述管理节点周期性地同步数据节点间的数据文件,包括:管理节点将同步的控制信息发送至所有相关数据节点;所有相关数据节点之间通过直连的方式同步数据文件。
其中,所述管理节点周期性地同步数据节点间的数据文件,根据数据节点的在线状态、可用空间和负载情况生成同步任务。
所述同步任务包括:一是,有新上传的数据文件的时候,数据节点间要同步。二是,分布式存储系统周期性“体检”,验证自身文件是否一致,是否有数据节点失去连接等。如果发现有问题,需要报警或转移数据文件。三是,在有分布式计算的情况下,需要将一个数据节点上的数据文件复制到计算资源充沛的机器上。这里说的是第二种,算是“体检”。
如上所述,本发明给出了一种基于XMPP协议的分布式存储系统实施例,包括管理节点和数据节点,所述管理节点采用一对多的模式管理数据节点,所述管理节点与数据节点之间采用XMPP协议进行通信,所述管理节点之间也可以通过XML格式文件进行通信,数据节点之间可以根据管理节点的控制信息,进行数据文件的直传和同步等操作。本发明所述的分布式存储系统由于是在XMPP协议的基础上进行搭建的,利用了已经成熟的协议,不仅降低了技术复杂度,而且方便扩展和监控操作。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种基于XMPP协议的分布式存储系统,其特征在于,包括管理节点和数据节点:
所述管理节点用于存储其他管理节点和数据节点的节点信息,并向数据节点发送控制信息并接收请求信息;
所述数据节点用于存储数据文件,并接收管理节点的控制信息,所述数据节点之间通过直连的方式传递数据文件;
任意一个数据节点只属于一个管理节点,所述控制信息和请求信息遵循XMPP协议,为XML文件格式。
2.如权利要求1所述的分布式存储系统,其特征在于,若向分布式存储系统中添加新的数据节点,则包括:
在管理节点中建立待添加数据节点的节点信息;
搭建待添加数据节点并启动;
待添加数据节点向管理节点发送请求信息,所述请求信息中包含待添加数据节点的节点信息;
管理节点接收到请求信息后,对获取的节点信息进行验证,若验证成功,管理节点向待添加数据节点发送控制信息,表明登录成功。
3.如权利要求1所述的分布式存储系统,其特征在于,若用户请求向分布式存储系统中上传数据文件,则包括:
用户连接管理节点,并发送请求信息,请求上传数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的数据节点;
选出一个合适的数据节点,并将数据节点的URL返回给用户。
4.如权利要求3所述的分布式存储系统,其特征在于,所述管理节点接收到请求信息后,生成数据迁移的控制信息,并发送给所有相关数据节点;所有相关数据节点之间通过直连的方式同步新上传的数据文件。
5.如权利要求1所述的分布式存储系统,其特征在于,若用户请求从分布式存储系统中下载数据文件,则包括:
用户连接管理节点,并发送请求信息,请求下载数据文件;
管理节点将请求信息转发至其他管理节点;
综合对比所有登录状态的相关数据节点;
选出合适的数据节点,并将数据节点URL返回给用户。
6.如权利要求5所述的分布式存储系统,其特征在于,所述将数据节点URL返回给用户包括:
若用户使用的是专用客户端程序,则将数据节点URL生成列表,并将列表返回给用户;
若用户使用的是通用工具,则将一个数据节点的URL重定向返回给用户。
7.如权利要求1所述的分布式存储系统,其特征在于,所述管理节点周期性地同步数据节点间的数据文件,包括:管理节点将同步的控制信息发送至所有相关数据节点;所有相关数据节点之间通过直连的方式同步数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410807762.2A CN105490999A (zh) | 2014-12-23 | 2014-12-23 | 一种基于xmpp协议的分布式存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410807762.2A CN105490999A (zh) | 2014-12-23 | 2014-12-23 | 一种基于xmpp协议的分布式存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105490999A true CN105490999A (zh) | 2016-04-13 |
Family
ID=55677719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410807762.2A Pending CN105490999A (zh) | 2014-12-23 | 2014-12-23 | 一种基于xmpp协议的分布式存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105490999A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885424A (zh) * | 2019-01-16 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种数据备份方法、装置及计算机设备 |
CN113315845A (zh) * | 2021-07-28 | 2021-08-27 | 阿里云计算有限公司 | 数据传输方法、装置及分布式存储系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514371A (zh) * | 2002-12-31 | 2004-07-21 | 北京因特时代信息技术有限公司 | 一种分布式统一目录管理方法 |
CN101184104A (zh) * | 2007-12-21 | 2008-05-21 | 腾讯科技(深圳)有限公司 | 一种分布式存储系统及方法 |
CN101626563A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | 一种通信网络中的数据存储系统及信息处理方法 |
JP2010278617A (ja) * | 2009-05-27 | 2010-12-09 | Brother Ind Ltd | 分散保存システム、データファイル分散保存方法及びプログラム |
WO2011037672A2 (en) * | 2009-07-15 | 2011-03-31 | Organic, Inc. | Apparatuses, methods and systems for a media marketing planning and optimization tool |
CN102546823A (zh) * | 2012-02-18 | 2012-07-04 | 南京云创存储科技有限公司 | 一种云存储系统的文件存储管理系统 |
CN102546780A (zh) * | 2011-12-28 | 2012-07-04 | 山东大学 | 一种基于瘦客户端的文件分布式存储的运行方法 |
CN102713904A (zh) * | 2009-12-22 | 2012-10-03 | 诺基亚公司 | 利用可缩放的数据结构的方法和装置 |
-
2014
- 2014-12-23 CN CN201410807762.2A patent/CN105490999A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514371A (zh) * | 2002-12-31 | 2004-07-21 | 北京因特时代信息技术有限公司 | 一种分布式统一目录管理方法 |
CN101184104A (zh) * | 2007-12-21 | 2008-05-21 | 腾讯科技(深圳)有限公司 | 一种分布式存储系统及方法 |
CN101626563A (zh) * | 2008-07-08 | 2010-01-13 | 中国移动通信集团公司 | 一种通信网络中的数据存储系统及信息处理方法 |
JP2010278617A (ja) * | 2009-05-27 | 2010-12-09 | Brother Ind Ltd | 分散保存システム、データファイル分散保存方法及びプログラム |
WO2011037672A2 (en) * | 2009-07-15 | 2011-03-31 | Organic, Inc. | Apparatuses, methods and systems for a media marketing planning and optimization tool |
CN102713904A (zh) * | 2009-12-22 | 2012-10-03 | 诺基亚公司 | 利用可缩放的数据结构的方法和装置 |
CN102546780A (zh) * | 2011-12-28 | 2012-07-04 | 山东大学 | 一种基于瘦客户端的文件分布式存储的运行方法 |
CN102546823A (zh) * | 2012-02-18 | 2012-07-04 | 南京云创存储科技有限公司 | 一种云存储系统的文件存储管理系统 |
Non-Patent Citations (1)
Title |
---|
姚胄: "分布式图像管理系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑(2012年)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885424A (zh) * | 2019-01-16 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种数据备份方法、装置及计算机设备 |
CN113315845A (zh) * | 2021-07-28 | 2021-08-27 | 阿里云计算有限公司 | 数据传输方法、装置及分布式存储系统 |
CN113315845B (zh) * | 2021-07-28 | 2022-01-04 | 阿里云计算有限公司 | 数据传输方法、装置及分布式存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109246194B (zh) | 基于多领导节点的实用拜占庭容错区块链共识方法及系统 | |
CN107172187B (zh) | 一种负载均衡系统和方法 | |
CN105099761B (zh) | 一种集中管理客户端的配置信息的方法和系统 | |
CN106713391B (zh) | 一种session信息的共享方法和共享系统 | |
CN104391868B (zh) | 动态页面静态化的装置和方法 | |
JP2011222049A5 (zh) | ||
CN106572054B (zh) | 分布式系统中分布式锁服务实现方法以及装置 | |
US11595474B2 (en) | Accelerating data replication using multicast and non-volatile memory enabled nodes | |
CN103986786A (zh) | 一种远程云桌面操作系统 | |
CN105868251A (zh) | 一种缓存数据更新方法及装置 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN103986789A (zh) | 一种实现基于nfs的hadoop ha集群中nfs节点双机冗余的方法 | |
CN103491156A (zh) | 一种基于融合通信实现圈子与群组同步的方法及系统 | |
CN108234607B (zh) | 一种基于微服务架构模式下的文件分发方法与系统 | |
CN103229480A (zh) | 分布式存储系统中的数据处理方法及设备、客户端 | |
CN105959363A (zh) | 一种自适应硬件配置的大数据集群部署方法 | |
US11748801B2 (en) | Processing documents | |
CN105490999A (zh) | 一种基于xmpp协议的分布式存储系统 | |
US10965608B2 (en) | Mobile supercloud computing system and method | |
CN105607606A (zh) | 一种基于双主板架构的数据采集装置及方法 | |
CN114610504A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
WO2017041523A1 (zh) | 关系链处理方法、系统和存储介质 | |
CN106657360A (zh) | 一种Linux系统下NIS服务器的同步方法和系统 | |
JP2014026480A (ja) | 複数の情報システムおける出力比較方法 | |
JP6364727B2 (ja) | 情報処理システム、分散処理方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160413 |
|
WD01 | Invention patent application deemed withdrawn after publication |