首页 / 专利库 / 软件 / 中间件 / 数据的读写方法及消息化的分布式文件系统

数据的读写方法及消息化的分布式文件系统

阅读:309发布:2020-05-08

专利汇可以提供数据的读写方法及消息化的分布式文件系统专利检索,专利查询,专利分析的服务。并且本 发明 提供一种数据的读写方法及消息化的分布式文件系统,该方法包括:用户主机接收数据读取 请求 ;用户主机将数据读取请求通过封装的文件 接口 发送给消息 中间件 集群; 消息中间件 集群根据数据读取请求从对应的 节点 主机的内存中读取数据对应的消息;消息中间件集群将消息转化为数据并发送给用户主机。能够通过消息中间件集群将数据转化为消息存储在节点主机的内存中,当需要读取数据时,从节点主机的内存中读取数据,能够加快数据的读取速度,提高数据的读取效率。,下面是数据的读写方法及消息化的分布式文件系统专利的具体信息内容。

1.一种数据的读写方法,其特征在于,包括:
用户主机接收数据读取请求
所述用户主机将所述数据读取请求通过封装的文件接口发送给消息中间件集群;
所述消息中间件集群根据所述数据读取请求从对应的节点主机的内存中读取数据对应的消息;
所述消息中间件集群将所述消息转化为数据并发送给所述用户主机;
所述消息中间件集群将所述消息转化为数据之后,还包括:
所述消息中间件集群将所述消息从所述内存中移除;
所述消息中间件集群更新所述消息对应的消息偏移量;
所述消息中间件集群将更新后的消息偏移量发送给键值对数据库,以使所述键值对数据库存储所述更新后的消息偏移量,以便读取所述数据时根据更新后的消息偏移量读取数据;
所述消息中间件集群根据数据写入请求将所述数据转换为消息并存储到节点主机的内存中之后,还包括:
所述消息中间件集群通过累加的方式为写入的消息定义消息偏移量;
所述消息中间件集群将所述消息偏移量存储到所述键值对数据库中。
2.根据权利要求1所述的方法,其特征在于,所述用户主机接收数据读取请求之后,还包括:
所述用户主机根据所述数据读取请求,链接zookeeper集群;
所述zookeeper集群获取注册列表,为所述数据读取请求进行注册。
3.根据权利要求1或2所述的方法,其特征在于,
所述用户主机接收数据写入请求;
所述用户主机将所述数据写入请求通过所述封装的文件接口发送给所述消息中间件集群;
所述消息中间件集群根据所述数据写入请求将所述数据转换为消息并存储到节点主机的内存中。
4.根据权利要求3所述的方法,其特征在于,所述用户主机接收数据读取请求之后,还包括:
所述用户主机根据所述数据写入请求,链接zookeeper集群;
所述zookeeper集群获取注册列表,为所述数据写入请求进行注册。
5.一种消息化的分布式文件系统,其特征在于,包括:用户主机、与所述用户主机相连的消息中间件集群,所述消息中间件集群包括多台节点主机;所述消息中间件集群通过封装的文件接口与所述用户主机进行通信;
所述用户主机包括:
读取请求接收模,用于接收数据读取请求;
读取请求发送模块,用于将所述数据读取请求通过封装的文件接口发送给消息中间件集群;
所述消息中间件集群包括:
消息读取模块,用于根据所述数据读取请求从对应的节点主机的内存中读取数据对应的消息;
消息转化模块,用于将所述消息转化为数据;
数据发送模块,用于将所述数据发送给用户主机;
消息移除模块,用于将所述消息从所述内存中移除;
消息偏移量更新模块,用于更新所述消息对应的消息偏移量;
消息偏移量发送模块,用于将更新后的消息偏移量发送给键值对数据库以使所述键值对数据库存储所述更新后的消息偏移量,以便读取所述数据时根据更新后的消息偏移量读取数据;
消息偏移量定义模块,用于通过累加的方式为写入的消息定义消息偏移量;
消息偏移量存储模块,用于将所述消息偏移量存储到所述键值对数据库中。
6.根据权利要求5所述的系统,其特征在于,还包括:zookeeper集群,所述zookeeper集群与所述用户主机通信连接;
所述用户主机还包括:
链接模块,用于根据所述数据读取请求,链接zookeeper集群;
所述zookeeper集群包括:
读取请求注册模块,用于获取注册列表,为所述数据读取请求进行注册。
7.根据权利要求6所述的系统,其特征在于,所述用户主机还包括:
写入请求接收模块,用于所述用户主机接收数据写入请求;
写入请求发送模块,用于将所述数据写入请求通过所述封装的文件接口发送给所述消息中间件集群;
所述消息中间件集群还包括:
数据转化模块,用于根据所述数据写入请求将所述数据转换为消息;
消息存储模块,用于将所述消息存储到节点主机的内存中。
8.根据权利要求7所述的系统,其特征在于,
所述链接模块,还用于根据所述数据写入请求,链接zookeeper集群;
zookeeper集群还包括:
写入请求注册模块,用于获取注册列表,为所述数据写入请求进行注册。

说明书全文

数据的读写方法及消息化的分布式文件系统

技术领域

[0001] 本发明实施例涉及计算机技术领域,尤其涉及一种数据的读写方法及消息化的分布式文件系统。

背景技术

[0002] 随着4G网络的快速发展,对数据的存储要求不断提高,导致分布式文件系统得到了广泛的应用。分布式文件系统是指文件系统管理的物理存储资源不是直接放在本地节点上,而是通过计算机网络与节点主机群中的各节点主机连接,将物理存储资源放在各节点主机上。
[0003] 现有的分布式文件系统,都是将数据直接存储到节点主机的磁盘上,通过读写节点主机上的磁盘文件,来获取和写入数据。虽然能够存储海量数据,但是物理磁盘的读取瓶颈还是无法突破,使对数据的读取效率较低。

发明内容

[0004] 本发明实施例提供一种数据的读写方法及消息化的分布式文件系统,解决了现有技术中的分布式文件系统将数据直接存储到节点主机的磁盘上,使对数据的读取效率较低的技术问题。
[0005] 本发明实施例提供一种数据的读写方法,包括:
[0006] 用户主机接收数据读取请求
[0007] 所述用户主机将所述数据读取请求通过封装的文件接口发送给消息中间件集群;
[0008] 所述消息中间件集群根据所述数据读取请求从对应的节点主机的内存中读取数据对应的消息;
[0009] 所述消息中间件集群将所述消息转化为数据并发送给所述用户主机。
[0010] 本发明实施例提供一种消息化的分布式文件系统,包括:用户主机、与所述用户主机相连的消息中间件集群,所述消息中间件集群包括多台节点主机;所述消息中间件集群通过封装的文件接口与所述用户主机进行通信;
[0011] 所述用户主机包括:
[0012] 读取请求接收模,用于接收数据读取请求;
[0013] 读取请求发送模块,用于将所述数据读取请求通过封装的文件接口发送给消息中间件集群;
[0014] 所述消息中间件集群包括:
[0015] 消息读取模块,用于根据所述数据读取请求从对应的节点主机的内存中读取数据对应的消息;
[0016] 消息转化模块,用于将所述消息转化为数据;
[0017] 数据发送模块,用于将所述数据发送给用户主机。
[0018] 本发明实施例提供一种数据的读写方法及消息化的分布式文件系统,通过用户主机接收数据读取请求;用户主机将数据读取请求通过封装的文件接口发送给消息中间件集群;消息中间件集群根据数据读取请求从对应的节点主机的内存中读取数据对应的消息;消息中间件集群将消息转化为数据并发送给用户主机。能够通过消息中间件集群将数据转化为消息存储在节点主机的内存中,当需要读取数据时,从节点主机的内存中读取数据,能够加快数据的读取速度,提高数据的读取效率。
附图说明
[0019] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1为本发明数据的读写方法实施例一的流程图
[0021] 图2为本发明数据的读写方法实施例二的流程图;
[0022] 图3为本发明数据的读写方法实施例三的流程图;
[0023] 图4为本发明消息化的分布式文件系统实施例一的结构示意图;
[0024] 图5为本发明消息化的分布式文件系统实施例二的结构示意图;
[0025] 图6为本发明消息化的分布式文件系统实施例三的结构示意图。

具体实施方式

[0026] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027] 应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0028] 取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
[0029] 图1为本发明数据的读写方法实施例一的流程图,如图1所示,本实施例的执行主体为消息化的分布式文件系统,该消息化的分布式文件系统包括:用户主机、与用户主机相连的消息中间件集群,消息中间件集群包括多台节点主机;消息中间件集群通过封装的文件接口与用户主机进行通信。则本实施例提供的数据的读写方法包括以下几个步骤。
[0030] 步骤101,用户主机接收数据读取请求。
[0031] 具体地,本实施例中,用户通过键盘鼠标或触屏与用户主机进行交互,用户主机接收用户发送的数据读取请求。
[0032] 其中,数据读取请求中携带数据信息,该数据信息可以为数据的名称信息、标识信息等。
[0033] 步骤102,用户主机将数据读取请求通过封装的文件接口发送给消息中间件集群。
[0034] 具体地,本实施例中,消息中间件集群将原有的消费消息接口和生产消息接口进行封装,形成了统一的文件形式的接口,称为文件接口,消息中间件集群通过该文件接口与用户主机进行通信,接收用户主机发送的数据读取请求。
[0035] 其中,消息中间件集群可采用Kafka进行搭建。Kafka是一种分布式的消息流平台。
[0036] 步骤103,消息中间件集群根据数据读取请求从对应的节点主机的内存中读取数据对应的消息。
[0037] 具体地,本实施例中,消息中间件根据数据读取请求,对存储在内存中的消息进行索引,找到存储该数据对应消息的节点主机,从节点主机的内存中读取该数据对应的消息。
[0038] 步骤104,消息中间件集群将消息转化为数据并发送给用户主机。
[0039] 具体地,本实施例中,将消息中间件集群将消息转化为数据,并通过文件接口发送给用户主机,用户主机将数据进行显示,以使用户查看或获取数据。
[0040] 本实施例中,对消息转化为数据的方式不做限定。
[0041] 本实施例提供的数据的读写方法,通过用户主机接收数据读取请求;用户主机将数据读取请求通过封装的文件接口发送给消息中间件集群;消息中间件集群根据数据读取请求从对应的节点主机的内存中读取数据对应的消息;消息中间件集群将消息转化为数据并发送给用户主机。能够通过消息中间件集群将数据转化为消息存储在节点主机的内存中,当需要读取数据时,从节点主机的内存中读取数据,能够加快数据的读取速度,提高数据的读取效率。
[0042] 图2为本发明数据的读写方法实施例二的流程图,如图2所示,本实施例提供的数据的读写方法,是在本发明数据的读写方法实施例一的基础上,还包括了对数据进行注册管理的步骤,以及通过对消息偏移量的管理对读取数据进行控制的步骤,则本实施例提供的数据的读写方法包括以下步骤。
[0043] 步骤201,用户主机接收数据读取请求。
[0044] 本实施例中,步骤201的实现方式与本发明数据的读写方法实施例一中的步骤101的实现方式相同,在此不再一一赘述。
[0045] 步骤202,用户主机根据数据读取请求,链接zookeeper集群,zookeeper集群获取注册列表,为数据读取请求进行注册。
[0046] 进一步地,本实施例中,消息化的分布式系统中还包括:zookeeper集群,该zookeeper集群与用户主机通信连接,该zookeeper集群用于冲突管理、消费管理及注册管理。
[0047] 具体地,本实施例中,用户主机根据数据读取请求,链接zookeeper集群,zookeeper集群获取注册列表,在注册列表中包括每个数据的处理信息,将该数据读取请求进行注册,以防止其他用户在该数据读取期间对该数据的处理,有效解决了数据冲突问题。
[0048] 步骤203,用户主机将数据读取请求通过封装的文件接口发送给消息中间件集群。
[0049] 步骤204,消息中间件集群根据数据读取请求从对应的节点主机的内存中读取数据对应的消息。
[0050] 步骤205,消息中间件集群将消息转化为数据。
[0051] 本实施例中,步骤203-步骤205的实现方式与本发明数据的读写方法实施例一中的步骤102-步骤104对应部分的实现方式相同,在此不再一一赘述。
[0052] 步骤206,消息中间件集群将消息从内存中移除,更新消息对应的消息偏移量,将更新后的消息偏移量发送给键值对数据库,以使键值对数据库存储更新后的消息偏移量,以便读取数据时根据更新后的消息偏移量读取数据。
[0053] 进一步地,本实施例中,采用消息偏移量对读取数据进行控制。将每个消息对应的消息偏移量存储在键值对数据库中,该键值对数据库可以为Redis数据库。
[0054] 具体地,本实施例中,将消息从内存中移除后,更新消息对应的消息偏移量,并更新与该消息关联的下一消息对应的消息偏移量,将更新后的消息偏移量存储到键值对数据库中,以便读取数据时根据更新后的消息偏移量读取数据,能够避免再次去读取该数据时仍然从数据的初始位置读取数据,而是从上一次读取的数据后的终止位置继续读取数据。
[0055] 步骤207,消息中间件集群将数据发送给用户主机。
[0056] 本实施例提供的数据的读写方法,在用户主机接收数据读取请求之后,用户主机根据数据读取请求,链接zookeeper集群,zookeeper集群获取注册列表,为数据读取请求进行注册,能够防止其他用户在该数据读取期间对该数据的处理,有效解决了数据冲突问题。在消息中间件集群将消息转化为数据之后,还包括:消息中间件集群将消息从内存中移除;
更新消息对应的消息偏移量,将更新后的消息偏移量发送给键值对数据库,键值对数据库存储更新后的消息偏移量,以便读取数据时根据更新后的消息偏移量读取数据,能够避免再次去读取该数据时仍然从数据的初始位置读取数据,而是从上一次读取的数据后的终止位置继续读取数据,进一步地加快了数据的读取速度,并提高了用户查看获取数据的用户体验。
[0057] 图3为本发明数据的读写方法实施例三的流程图,本实施例提供的数据的读写方法的执行主体为消息化的分布式系统,则本实施例提供的数据的读写方法包括以下步骤。
[0058] 步骤301,用户主机接收数据写入请求。
[0059] 具体地,本实施例中,用户通过键盘或鼠标或触屏与用户主机进行交互,用户主机接收用户发送的数据写入请求。
[0060] 其中,数据写入请求中携带数据信息,该数据信息可以为数据的名称信息、标识信息等。
[0061] 步骤302,用户主机根据数据写入请求,链接zookeeper集群,zookeeper集群获取注册列表,为数据写入请求进行注册。
[0062] 具体地,本实施例中,用户主机根据数据写入请求,链接zookeeper集群,zookeeper集群获取注册列表,在注册列表中包括每个数据的处理信息,将该数据写入请求进行注册,以防止其他用户在该数据写入期间对该数据的处理,能有效解决了数据冲突问题。
[0063] 步骤303,用户主机将数据写入请求通过封装的文件接口发送给消息中间件集群。
[0064] 具体地,本实施例中,消息中间件集群将原有的消费消息接口和生产消息接口进行封装,形成了统一的文件形式的接口,称为文件接口,消息中间件集群通过该文件接口与用户主机进行通信,接收用户主机发送的数据写入请求。
[0065] 步骤304,消息中间件集群根据数据写入请求将数据转换为消息并存储到节点主机的内存中。
[0066] 具体地,本实施例中,消息中间件根据数据写入请求,可按照写入策略将数据转化为消息并写入到分配的节点主机的内存中。其中,写入策略可以为:为数据设置指定分区,保证数据被可靠的处理,不会产生数据丢失或重复处理的情况。
[0067] 进一步地,本实施例中,将消息写入内存中时,采用打包压缩的方式,保证每个消息包的大小都近似相等,避免系统频繁的处理和确认。
[0068] 步骤305,消息中间件集群通过累加的方式为写入的消息定义消息偏移量,并将消息偏移量存储到键值对数据库中。
[0069] 具体地,本实施例中,根据写入消息的长度通过累加的方式为写入的消息定义偏移量,并将消息偏移量存储到键值对数据库中,以便读取该数据时,快速对该数据进行定位
[0070] 本实施例提供的数据读写方法,通过用户主机接收数据写入请求,用户主机根据数据写入请求,链接zookeeper集群,zookeeper集群获取注册列表,为数据写入请求进行注册,用户主机将数据写入请求通过封装的文件接口发送给消息中间件集群,消息中间件集群根据数据写入请求将数据转换为消息并存储到节点主机的内存中,通过累加的方式为写入的消息定义消息偏移量,并将消息偏移量存储到键值对数据库中,能够加快数据的写入速度,提高数据的写入效率。
[0071] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0072] 图4为本发明消息化的分布式文件系统实施例一的结构示意图,如图4所示,本实施例提供的消息化的分布式文件系统包括:用户主机41、与用户主机41相连的消息中间件集群42,消息中间件集群42包括多台节点主机;消息中间件集群42通过封装的文件接口与用户主机进行通信。
[0073] 其中,用户主机41包括:读取请求接收模块411及读取请求发送模块412。消息中间件集群42包括:消息读取模块421,消息转化模块422及数据发送模块423。
[0074] 其中,读取请求接收模块411,用于接收数据读取请求。读取请求发送模块412,用于将数据读取请求通过封装的文件接口发送给消息中间件集群。消息读取模块421,用于根据数据读取请求从对应的节点主机的内存中读取数据对应的消息。消息转化模块422,用于将消息转化为数据。数据发送模块423,用于将数据发送给用户主机。
[0075] 本实施例提供的消息化的分布式文件系统可以执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0076] 图5为本发明消息化的分布式文件系统实施例二的结构示意图,如图5所示,本实施例提供的消息化的分布式文件系统在本发明消息化的分布式文件系统实施例一的基础上,进一步地,还包括:zookeeper集群43。
[0077] 其中,zookeeper集群43与用户主机41通信连接。
[0078] 进一步地,用户主机41还包括:链接模块413。zookeeper集群43包括:读取请求注册模块431。
[0079] 其中,链接模块413,用于根据数据读取请求,链接zookeeper集群。读取请求注册模块431,用于获取注册列表,为数据读取请求进行注册。
[0080] 进一步地,消息中间件集群42还包括:消息移除模块424,消息偏移量更新模块425,消息偏移量发送模块426。
[0081] 其中,消息移除模块424,用于将消息从内存中移除。消息偏移量更新模块425,用于更新消息对应的消息偏移量。消息偏移量发送模块426,用于将更新后的消息偏移量发送给键值对数据库以使键值对数据库存储更新后的消息偏移量,以便读取数据时根据更新后的消息偏移量读取数据。
[0082] 本实施例提供的消息化的分布式文件系统可以执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0083] 图6为本发明消息化的分布式文件系统实施例三的结构示意图,如图6所示,本实施例提供的消息化的分布式文件系统在本发明消息化的分布式文件系统实施例一的基础上,进一步地,用户主机41还包括:写入请求接收模块414,写入请求发送模块415。消息中间件集群42还包括:数据转化模块427,消息存储模块428。
[0084] 其中,写入请求接收模块414,用于用户主机接收数据写入请求。写入请求发送模块415,用于将数据写入请求通过封装的文件接口发送给消息中间件集群。数据转化模块427,用于根据数据写入请求将数据转换为消息。消息存储模块428,用于将消息存储到节点主机的内存中。
[0085] 进一步地,链接模块413,还用于根据数据写入请求,链接zookeeper集群。zookeeper集群43还包括:写入请求注册模块432。
[0086] 其中,写入请求注册模块432,用于获取注册列表,为数据写入请求进行注册。
[0087] 进一步地,消息中间件集群42还包括:消息偏移量定义模块429,消息偏移量存储模块4210。
[0088] 其中,消息偏移量定义模块429,用于通过累加的方式为写入的消息定义消息偏移量。消息偏移量存储模块4210,用于将消息偏移量存储到键值对数据库中。
[0089] 本实施例提供的消息化的分布式文件系统可以执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0090] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈