1.本公开涉及计算机领域,尤其涉及数据的处理方法和装置、电子设备及存储介质。
背景技术:2.目前的相关技术中,随着业务发展,存储在中间容器(如zookeeper)的数据越来越多,但是容器具有最大容量限制,且大量数据会影响中间容器的性能。如在zookeeper中,节点默认容量是1m,但是不建议存储太大的数据,数据太大,会影响zookeeper的整体性能,对于存储大容量数据的情况,通过在节点存储实际数据所在的链接,实际数据存储在nfs(网络文件系统,network file system)或者hdfs(分布式文件系统,hadoop distributed file system)文件系统中。
3.但是,zookeeper节点存储的数据具有强一致性,使用第三方存储结构,需要额外保证zookeeper与第三方存储结构之间的一致性,以及需要要求第三方存储具备与zookeeper一样的读写访问能力。
4.因此,相关技术中存在单个节点存储容量有限,难以满足大量数据存储的技术问题。
5.公开内容
6.本公开提供一种数据的处理方法和装置、电子设备及存储介质,以至少解决相关技术中存在单个节点存储容量有限,难以满足大量数据存储的技术问题的技术问题。本公开的技术方案如下:
7.根据本公开实施例的第一方面,提供一种数据的处理方法,包括:获取目标请求消息,其中,所述目标请求消息用于请求处理目标业务数据;响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,其中,所述目标节点集合中每个节点均存储部分所述目标业务数据,所述目标业务数据占用的存储空间大于所述目标节点集合中任一个节点的存储空间。
8.在示例性的实施例中,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:响应于所述目标请求消息,获取节点配置信息,其中,所述节点配置信息用于确定存储所述目标业务数据的节点集合;根据所述节点配置信息确定所述目标节点集合,并将所述目标节点集合中各个节点存储的数据拼装为所述目标业务数据。
9.在示例性的实施例中,所述响应于所述目标请求消息,根据所述节点配置信息确定所述目标节点集合,包括:在所述目标请求消息表示请求读取所述目标业务数据的情况下,根据所述节点配置信息获取第一节点集合,其中,所述第一节点集合包括当前时刻处于工作状态的节点;在获取到所述第一节点集合的情况下,将所述第一节点集合确定为所述目标节点集合;在未获取到所述第一节点集合的情况下,将第二节点集合确定为所述目标节点集合,其中,所述第二节点集合包括所述节点配置信息指示的在所述当前时刻之前预先确定的节点。
10.在示例性的实施例中,所述在获取到所述第一节点集合之后,所述方法还包括:比对所述第一节点集合的第一版本号与所述节点配置信息中的第二版本号是否一致;在所述第一版本号和所述第二版本号一致的情况下,将所述第一节点集合确定为所述目标节点集合;在所述第一版本号和所述第二版本号不一致的情况下,将所述第二节点集合确定为所述目标节点集合。
11.在示例性的实施例中,所述方法还包括:获取节点更新指示信息,其中,所述节点更新指示信息用于修改所述节点配置信息中目标节点集合的节点数量;根据所述节点更新指示信息,确定所述目标节点集合中节点的数量。
12.在示例性的实施例中,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第三节点集合,其中,所述第三节点集合是当前时刻与第一节点集合对应的镜像节点集合,所述第一节点集合包括当前时刻处于工作状态的节点;将待更新的业务数据写入所述第三节点集合;在所述待更新的业务数据已被写入所述第三节点集合的情况下,将所述第三节点集合更新为所述第一节点集合,并根据更新后的所述第一节点集合重新配置所述第三节点集合;将更新后的所述第一节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
13.在示例性的实施例中,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第四节点集合,其中,所述第四节点集合是当前时刻与第五节点集合对应的镜像节点集合,所述第五节点集合包括当前时刻处于工作状态的节点,所述第五节点集合中的节点是在所述当前时刻之前预先确定的节点;将待更新的业务数据写入所述第四节点集合;在所述待更新的业务数据已被写入所述第四节点集合的情况下,将所述第四节点集合更新为所述第五节点集合,并根据更新后的所述第五节点集合重新配置所述第四节点集合;将更新后的所述第五节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
14.在示例性的实施例中,所述在获取所述目标请求消息之后,所述方法还包括:在确定所述目标请求消息携带分布式锁的情况下,响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据;在将目标节点集合中各个节点存储的数据拼装为所述目标业务数据之后,释放所述目标请求消息携带的分布式锁。
15.根据本公开实施例的第二方面,提供一种数据的处理装置,包括:获取模块,用于获取目标请求消息,其中,所述目标请求消息用于请求处理目标业务数据;拼装模块,用于响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,其中,所述目标节点集合中每个节点均存储部分所述目标业务数据,所述目标业务数据占用的存储空间大于所述目标节点集合中任一个节点的存储空间。
16.在示例性的实施例中,所述拼装模块包括:第一获取单元,用于响应于所述目标请求消息,获取节点配置信息,其中,所述节点配置信息用于确定存储所述目标业务数据的节点集合;第一拼装单元,用于根据所述节点配置信息确定所述目标节点集合,并将所述目标节点集合中各个节点存储的数据拼装为所述目标业务数据。
17.在示例性的实施例中,所述第一拼装单元包括:第一获取子单元,用于在所述目标
请求消息表示请求读取所述目标业务数据的情况下,根据所述节点配置信息获取第一节点集合,其中,所述第一节点集合包括当前时刻处于工作状态的节点;第一确定子单元,用于在获取到所述第一节点集合的情况下,将所述第一节点集合确定为所述目标节点集合;第二确定子单元,用于在未获取到所述第一节点集合的情况下,将第二节点集合确定为所述目标节点集合,其中,所述第二节点集合包括所述节点配置信息指示的在所述当前时刻之前预先确定的节点。
18.在示例性的实施例中,所述第一拼装单元还包括:比对子单元,用于在获取到所述第一节点集合之后,比对所述第一节点集合的第一版本号与所述节点配置信息中的第二版本号是否一致;第三确定子单元,用于在所述第一版本号和所述第二版本号一致的情况下,将所述第一节点集合确定为所述目标节点集合;第四确定子单元,用于在所述第一版本号和所述第二版本号不一致的情况下,将所述第二节点集合确定为所述目标节点集合。
19.在示例性的实施例中,所述第一拼装单元还包括:第二获取子单元,用于获取节点更新指示信息,其中,所述节点更新指示信息用于修改所述节点配置信息中目标节点集合的节点数量;调整子单元,用于根据所述节点更新指示信息,调整所述目标节点集合中节点的数量。
20.在示例性的实施例中,所述拼装模块包括:第二获取单元,用于在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第三节点集合,其中,所述第三节点集合是当前时刻与第一节点集合对应的镜像节点集合,所述第一节点集合包括当前时刻处于工作状态的节点;第一写入单元,用于将待更新的业务数据写入所述第三节点集合;第一更新单元,用于在所述待更新的业务数据已被写入所述第三节点集合的情况下,将所述第三节点集合更新为所述第一节点集合,并根据更新后的所述第一节点集合重新配置所述第三节点集合;第二拼装单元,用于将更新后的所述第一节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
21.在示例性的实施例中,所述拼装模块包括:第三获取单元,用于在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第四节点集合,其中,所述第四节点集合是当前时刻与第五节点集合对应的镜像节点集合,所述第五节点集合包括当前时刻处于工作状态的节点,所述第五节点集合中的节点是在所述当前时刻之前预先确定的节点;第二写入单元,用于将待更新的业务数据写入所述第四节点集合;第二更新单元,用于在所述待更新的业务数据已被写入所述第四节点集合的情况下,将所述第四节点集合更新为所述第五节点集合,并根据更新后的所述第五节点集合重新配置所述第四节点集合;第三拼装单元,用于将更新后的所述第五节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
22.在示例性的实施例中,所述装置还包括:处理模块,用于在获取所述目标请求消息之后,在确定所述目标请求消息携带分布式锁的情况下,响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据;释放模块,用于在将目标节点集合中各个节点存储的数据拼装为所述目标业务数据之后,释放所述目标请求消息携带的分布式锁。
23.根据本公开实施例的又一方面,提供一种数据的处理电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现
如上述的数据的处理方法。
24.根据本公开实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据的处理方法。
25.根据本公开实施例的又一方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上数据的处理方法。
26.本公开的实施例提供的技术方案至少带来以下有益效果:通过获取目标请求消息,其中,目标请求消息用于请求处理目标业务数据;响应于目标请求消息,将目标节点集合中各个节点存储的数据拼装为目标业务数据,其中,目标节点集合中每个节点均存储部分目标业务数据,目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间,利用目标请求消息,确定出目标节点集合,并将各个节点存储的数据拼装为目标业务数据,使得目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间,提高了节点存储空间的利用率,解决了相关技术中存在单个节点存储容量有限,难以满足大量数据存储的技术问题。
27.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
28.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
29.图1是根据一示例性实施例示出的一种数据的处理方法的应用环境示意图;
30.图2是根据一示例性实施例示出的一种数据的处理方法的流程图;
31.图3是根据一示例性实施例示出的一种数据的处理方法的应用场景示意图;
32.图4是根据一示例性实施例示出的一种数据的处理方法的节点配置信息示意图;
33.图5是根据一示例性实施例示出的一种数据的处理方法的流程图;
34.图6是根据一示例性实施例示出的另一种数据的处理方法的流程图;
35.图7是根据一示例性实施例示出的又一种数据的处理方法的流程图;
36.图8是根据一示例性实施例示出的一种数据的处理方法的示意图;
37.图9是根据一示例性实施例示出的一种数据的处理装置的结构图;
38.图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
39.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
40.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
41.首先,在对本技术实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
42.zookeeper(分布式应用程序协调服务软件),是一个分布式的,开放源码的分布式应用程序协调服务,是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等,zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
43.下面结合实施例对本发明进行说明:
44.根据本发明实施例的一个方面,提供了一种数据的处理方法,可选地,在本实施例中,上述数据的处理方法可以应用于如图1所示的由服务器101和终端设备103所构成的硬件环境中。如图1所示,服务器101通过网络与终端103进行连接,可用于为终端设备或终端设备上安装的客户端提供服务,客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端、游戏客户端等。可在服务器上或独立于服务器设置数据库105,用于为服务器101提供数据存储服务,例如,图像数据存储服务器,上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络,终端设备103可以是配置有应用程序的终端,可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobile internet devices,移动互联网设备)、pad、台式电脑、智能电视等计算机设备,上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器,使用上述数据的处理方法的应用程序107通过终端设备103或服务器101上安装的客户端进行显示。
45.结合图1所示,上述数据的处理方法可以在终端设备103通过如下步骤实现:
46.s1,在终端设备103上获取目标请求消息,其中,目标请求消息用于请求处理目标业务数据;
47.s2,响应于目标请求消息,在终端设备103上将目标节点集合中各个节点存储的数据拼装为目标业务数据,其中,目标节点集合中每个节点均存储部分目标业务数据,目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间。
48.可选地,在本实施例中,上述数据的处理方法还可以在服务器101上通过类似方式实现,也可以通过服务器101和终端设备103进行异步实现。
49.上述仅是一种示例,本实施例不做具体的限定。
50.可选地,作为一种可选的实施方式,如图2所示,上述数据的处理方法包括:
51.s202,获取目标请求消息,其中,目标请求消息用于请求处理目标业务数据;
52.s204,响应于目标请求消息,将目标节点集合中各个节点存储的数据拼装为目标业务数据,其中,目标节点集合中每个节点均存储部分目标业务数据,目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间。
53.可选的,在本实施例中,上述目标请求消息可以包括但不限于zookeeper中所使用的读信号(read signal),该请求消息用于请求处理根据当前业务需求确定的目标业务数
据。
54.可选的,在本实施例中,上述数据的处理方法可以应用于包括但不限于云计算领域,具体而言,可以包括但不限于云存储领域。
55.其中,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
56.作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
57.按照逻辑功能划分,在iaas(infrastructure as a service,基础设施即服务)层上可以部署paas(platform as a service,平台即服务)层,paas层之上再部署saas(software as aservice,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
58.云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
59.目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,id entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
60.存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(raid,redundant array of independent disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
61.可选的,在本实施例中,上述目标节点集合中的节点可以包括但不限于znode节点(也即,zookeeper中的数据节点),上述目标节点集合中每个节点均存储部分目标业务数据可理解为,通过在节点集合中每个节点分别存储部分目标业务数据,再通过拼接的方式将各个部分的目标业务数据组装为完整的目标业务数据,供后续使用,其中,上述目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间可以理解为,上述目标业务数据占用的存储空间无法在目标节点集合中任一个单节点进行存储,需要采用至少两个节点进行存储,并搭配后续的数据拼接以实现目标业务数据的使用。
62.示例性的,图3是根据一示例性实施例示出的一种数据的处理方法的应用场景示意图,如图3所示,包括多个znode节点,其中,znode节点可以为临时节点或持久节点,上述多个znode节点即为上述目标节点集合中的节点,每个znode节点用于存储部分目标业务数据,当获取到目标请求消息时,将多个znode节点中存储的部分业务数据进行拼接,得到上述目标业务数据,在zookeeper中,将节点称之znode,znode节点分为两种类型:1、持久节点,2、临时节点。
63.需要说明的是,图3所示的“/java、/java/zk、/java/mq”均为上述znode节点的获取路径,也即,通过上述路径,可以向对应的节点中存储上述部分目标业务数据。
64.上述仅是一种示例,本技术实施例不做任何具体的限定。
65.通过本实施例,采用获取目标请求消息,其中,目标请求消息用于请求处理目标业务数据;响应于目标请求消息,将目标节点集合中各个节点存储的数据拼装为目标业务数据,其中,目标节点集合中每个节点均存储部分目标业务数据,目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间,利用目标请求消息,确定出目标节点集合,并将各个节点存储的数据拼装为目标业务数据,使得目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间,提高了节点存储空间的利用率,解决了相关技术中存在单个节点存储容量有限,难以满足大量数据存储的技术问题。
66.在示例性实施例中,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:
67.响应于所述目标请求消息,获取节点配置信息,其中,所述节点配置信息用于确定存储所述目标业务数据的节点集合;
68.根据所述节点配置信息确定所述目标节点集合,并将所述目标节点集合中各个节点存储的数据拼装为所述目标业务数据。
69.可选的,在本实施例中,上述节点配置信息可以包括但不限于用于指示业务数据的数量级的信息、用于指示当前正在工作的节点的信息,候选节点的信息、兜底节点的信息以及兜底候选节点的信息等。
70.示例性的,图4是根据一示例性实施例示出的一种数据的处理方法的节点配置信息示意图,如图4所示,包括“+size”、“+wordzknodelist”、“+candidatezknodelist”、“+backupworkzknodelist”等信息,以指示上述业务数据的数量级的信息、用于指示当前正在工作的节点的信息,候选节点的信息、兜底节点的信息以及兜底候选节点的信息等。
71.上述仅是一种示例,本技术实施例不做任何具体的限定。
72.通过本实施例,根据目标请求消息确定节点配置信息,进而,能够根据节点配置信息确定需要使用的节点集合,提高了节点存储空间的利用率,解决了相关技术中存在单个节点存储容量有限,难以满足大量数据存储的技术问题。
73.在示例性实施例中,所述响应于所述目标请求消息,根据所述节点配置信息确定所述目标节点集合,包括:
74.在所述目标请求消息表示请求读取所述目标业务数据的情况下,根据所述节点配置信息获取第一节点集合,其中,所述第一节点集合包括当前时刻处于工作状态的节点;
75.在获取到所述第一节点集合的情况下,将所述第一节点集合确定为所述目标节点集合;
76.在未获取到所述第一节点集合的情况下,将第二节点集合确定为所述目标节点集合,其中,所述第二节点集合包括所述节点配置信息指示的在所述当前时刻之前预先确定的节点。
77.可选的,在本实施例中,上述目标请求消息表示请求读取所述目标业务数据可以理解为上述目标请求消息是一种读信号,该读信号用于读取目标业务数据,在接收到该读信号之后,可以先读取节点配置信息,从节点配置信息中先获取当前时刻处于工作状态的第一节点集合,当获取第一节点集合成功时,从第一节点集合分别读取上述部分目标业务数据,最终,将读取到的业务数据拼装成完整的目标业务数据,供下游使用。
78.可选的,在本实施例中,在上述从节点配置信息中先获取当前时刻处于工作状态的第一节点集合时,当获取第一节点集合失败时,再获取第二节点集合,其中,第二节点集合是节点配置信息指示的兜底节点集合,该节点集合是当前时刻之前预先确定的节点集合,第二节点集合所存储的业务数据与目前正在工作的第一节点集合所存储的业务数据相同,此时,从第二节点集合分别读取上述部分目标业务数据,最终,将读取到的业务数据拼装成完整的目标业务数据,供下游使用。
79.例如,图5是根据一示例性实施例示出的一种数据的处理方法的示意图,如图5所示,可以包括但不限于如下步骤:
80.s1,获取读信号(read signal,对应于前述的目标请求消息);
81.s2,zk配置信息读取(对应于前述的节点配置信息);
82.s3,获取正在工作的zk节点集(对应于前述的第一节点集合);
83.s4,在获取成功的情况下,读取节点集里面的数据,并拼装成完整数据;
84.s5,在获取失败的情况下,获取兜底zk节点集(对应于前述的第二节点集合),读取兜底zk节点集里面的数据,并拼装成完整数据。
85.上述仅是一种示例,本实施例不做任何具体的限定。
86.在示例性实施例中,所述在获取到所述第一节点集合之后,所述方法还包括:
87.比对所述第一节点集合的第一版本号与所述节点配置信息中的第二版本号是否一致;
88.在所述第一版本号和所述第二版本号一致的情况下,将所述第一节点集合确定为所述目标节点集合;
89.在所述第一版本号和所述第二版本号不一致的情况下,将所述第二节点集合确定为所述目标节点集合。
90.可选的,在本实施例中,可以包括但不限于根据获取到的正在工作的第一节点集合,比对该节点集合的版本号是否与节点配置信息中记录的版本号一致:
91.1)如果一致,将每个节点里面的数据读取出来,最后拼装成完整的数据供业务使用;
92.2)如果不一致,获取兜底zk节点,拼装成完整的数据供业务使用。
93.在示例性实施例中,所述方法还包括:
94.获取节点更新指示信息,其中,所述节点更新指示信息用于修改所述节点配置信息中目标节点集合的节点数量;
95.根据所述节点更新指示信息,调整所述目标节点集合中节点的数量。
96.可选的,在本实施例中,上述节点更新指示信息可以包括但不限于指示修改节点配置信息中目标节点集合的节点数量,其中,预先配置预设数量的扩展节点,在当前时刻的目标节点集合负载满足预设条件的情况下,获取上述节点更新指示信息,以指示监听节点的客户端修改节点配置信息,调整目前正在工作的节点数量。
97.通过本实施例,采用预先配置的扩展节点,利用zookeeper多个节点实现的架构,能够支持节点数量的水平扩展和动态扩容,后续只需要修改节点配置信息中配置的目标节点集合的节点数量,就能实现上述水平扩展,解决单节点存储容量限制。
98.在示例性实施例中,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:
99.在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第三节点集合,其中,所述第三节点集合是当前时刻与第一节点集合对应的镜像节点集合,所述第一节点集合包括当前时刻处于工作状态的节点;
100.将待更新的业务数据写入所述第三节点集合;
101.在所述待更新的业务数据已被写入所述第三节点集合的情况下,将所述第三节点集合更新为所述第一节点集合,并根据更新后的所述第一节点集合重新配置所述第三节点集合;
102.将更新后的所述第一节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
103.可选的,在本实施例中,上述目标请求消息可以包括但不限于并发的更新信号,上述第三节点集合可以理解为预先配置的候选节点集合,上述节点配置信息中记录有上述候选节点集合,上述候选节点集合是上述第一节点集合的镜像节点集合,利用copyonwrite(写时复制)方式,保证在新的节点集合没有整体替代正在工作的第一节点集合时,读取到的配置都是同一个版本的数据,避免了出现读数据不可用和数据版本不一致的情况。这里的copyonwrite思想实现是,通过冗余一份候选节点集合(对应于前述的第三节点集合),在写数据操作的时候,写到候选节点集合上,都写成功了再写节点配置信息,这样就可以在写候选节点集合的数据时,不影响正常工作数据的读写,并且保证每个数据节点集组成的数据是一个完整数据的快照。
104.例如,图6是根据一示例性实施例示出的另一种数据的处理方法的示意图,如图6所示,可以包括但不限于如下步骤:
105.s1,获取更新信号(update signal,对应于前述的目标请求消息);
106.s2,通过redis分布式锁模块获取redis锁的信号;
107.s3,zk配置信息读取(对应于前述的节点配置信息);
108.s4,获取候选zk节点集(对应于前述的第三节点集合);
109.s5,在获取候选zk节点集成功的情况下,将候选zk节点填充满需要填充的数据;
110.s6,更新节点配置信息,将候选zk节点集变为工作zk节点集,并将工作zk节点集变为候选zk节点集;
111.s7,在获取候选zk节点集失败或已完成节点配置信息的更新的情况下,释放redis锁。
112.上述仅是一种示例,本实施例不做任何具体的限定。
113.在示例性实施例中,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:
114.在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第四节点集合,其中,所述第四节点集合是当前时刻与第五节点集合对应的镜像节点集合,所述第五节点集合包括当前时刻处于工作状态的节点,所述第五节点集合中的节点是在所述当前时刻之前预先确定的节点;
115.将待更新的业务数据写入所述第四节点集合;
116.在所述待更新的业务数据已被写入所述第四节点集合的情况下,将所述第四节点集合更新为所述第五节点集合,并根据更新后的所述第五节点集合重新配置所述第四节点集合;
117.将更新后的所述第五节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
118.可选的,在本实施例中,上述第五节点集合是当前时刻之前预先确定的节点集合,可以理解为兜底节点集合,也即,会在预设时间节点,存储正在当前所使用的目标业务数据,以在第一节点集合无法使用的情况下,维持正常数据的存储。
119.可选的,在本实施例中,上述第四节点集合是第五节点集合的镜像集合,也即,当第五节点集合进行业务处理之后,会冗余一份备份,作为上述第五节点集合的候选节点集合。
120.例如,图7是根据一示例性实施例示出的又一种数据的处理方法的示意图,如图7所示,可以包括但不限于如下步骤:
121.s1,获取兜底任务信号(兜底任务,对应于前述的目标请求消息);
122.s2,通过redis分布式锁模块获取redis锁的信号;
123.s3,zk配置信息读取(对应于前述的节点配置信息);
124.s4,获取候选兜底zk节点集(对应于前述的第四节点集合);
125.s5,在获取候选兜底zk节点集成功的情况下,将候选兜底zk节点填充满需要填充的数据;
126.s6,更新节点配置信息,将候选兜底zk节点集变为工作兜底zk节点集,并将工作兜底zk节点集变为候选兜底zk节点集;
127.s7,在获取候选兜底zk节点集失败或已完成节点配置信息的更新的情况下,释放redis锁。
128.在示例性实施例中,所述在获取所述目标请求消息之后,所述方法还包括:
129.在确定所述目标请求消息携带分布式锁的情况下,响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据;
130.在将目标节点集合中各个节点存储的数据拼装为所述目标业务数据之后,释放所述目标请求消息携带的分布式锁。
131.图8是根据一示例性实施例示出的一种数据的处理方法的示意图,如图8所示,redis分布式锁包括:
132.采用超时时间的setnx语法。setnx(set if not exit)是当redis的键不存在时,才设置值,可以在多线程同时设置一个值的时候,只有一个可以设置成功,保证锁的唯一
性。同时设置了超时时间,可以在超时未释放的异常倩况下,释放redis锁,优化redis锁的鲁棒性。
133.图9是根据一示例性实施例示出的一种数据的处理装置框图。参照图8,该装置包括获取模块902,以及拼装模块904。
134.该获取模块902,被配置为获取目标请求消息,其中,所述目标请求消息用于请求处理目标业务数据;
135.该拼装模块904,被配置为响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,其中,所述目标节点集合中每个节点均存储部分所述目标业务数据,所述目标业务数据占用的存储空间大于所述目标节点集合中任一个节点的存储空间。
136.在示例性的实施例中,所述拼装模块包括:
137.第一获取单元,用于响应于所述目标请求消息,获取节点配置信息,其中,所述节点配置信息用于确定存储所述目标业务数据的节点集合;
138.第一拼装单元,用于根据所述节点配置信息确定所述目标节点集合,并将所述目标节点集合中各个节点存储的数据拼装为所述目标业务数据。
139.在示例性的实施例中,所述第一拼装单元包括:
140.第一获取子单元,用于在所述目标请求消息表示请求读取所述目标业务数据的情况下,根据所述节点配置信息获取第一节点集合,其中,所述第一节点集合包括当前时刻处于工作状态的节点;
141.第一确定子单元,用于在获取到所述第一节点集合的情况下,将所述第一节点集合确定为所述目标节点集合;
142.第二确定子单元,用于在未获取到所述第一节点集合的情况下,将第二节点集合确定为所述目标节点集合,其中,所述第二节点集合包括所述节点配置信息指示的在所述当前时刻之前预先确定的节点。
143.在示例性的实施例中,所述第一拼装单元还包括:
144.比对子单元,用于在获取到所述第一节点集合之后,比对所述第一节点集合的第一版本号与所述节点配置信息中的第二版本号是否一致;
145.第三确定子单元,用于在所述第一版本号和所述第二版本号一致的情况下,将所述第一节点集合确定为所述目标节点集合;
146.第四确定子单元,用于在所述第一版本号和所述第二版本号不一致的情况下,将所述第二节点集合确定为所述目标节点集合。
147.在示例性的实施例中,所述第一拼装单元还包括:
148.第二获取子单元,用于获取节点更新指示信息,其中,所述节点更新指示信息用于修改所述节点配置信息中目标节点集合的节点数量;
149.调整子单元,用于根据所述节点更新指示信息,调整所述目标节点集合中节点的数量。
150.在示例性的实施例中,所述拼装模块包括:
151.第二获取单元,用于在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第三节点集合,其中,所述第三节点集合是当前时刻与第一
节点集合对应的镜像节点集合,所述第一节点集合包括当前时刻处于工作状态的节点;
152.第一写入单元,用于将待更新的业务数据写入所述第三节点集合;
153.第一更新单元,用于在所述待更新的业务数据已被写入所述第三节点集合的情况下,将所述第三节点集合更新为所述第一节点集合,并根据更新后的所述第一节点集合重新配置所述第三节点集合;
154.第二拼装单元,用于将更新后的所述第一节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
155.在示例性的实施例中,所述拼装模块包括:
156.第三获取单元,用于在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第四节点集合,其中,所述第四节点集合是当前时刻与第五节点集合对应的镜像节点集合,所述第五节点集合包括当前时刻处于工作状态的节点,所述第五节点集合中的节点是在所述当前时刻之前预先确定的节点;
157.第二写入单元,用于将待更新的业务数据写入所述第四节点集合;
158.第二更新单元,用于在所述待更新的业务数据已被写入所述第四节点集合的情况下,将所述第四节点集合更新为所述第五节点集合,并根据更新后的所述第五节点集合重新配置所述第四节点集合;
159.第三拼装单元,用于将更新后的所述第五节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。
160.在示例性的实施例中,所述装置还包括:
161.处理模块,用于在获取所述目标请求消息之后,在确定所述目标请求消息携带分布式锁的情况下,响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据;
162.释放模块,用于在将目标节点集合中各个节点存储的数据拼装为所述目标业务数据之后,释放所述目标请求消息携带的分布式锁。
163.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
164.根据本发明实施例的又一个方面,还提供了一种用于实施上述数据的处理方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图10所示,该电子设备包括存储器1002和处理器1004,该存储器1002中存储有计算机程序,该处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
165.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
166.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
167.s1,获取目标请求消息,其中,目标请求消息用于请求处理目标业务数据;
168.s2,响应于目标请求消息,将目标节点集合中各个节点存储的数据拼装为目标业务数据,其中,目标节点集合中每个节点均存储部分目标业务数据,目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间。
169.可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步
骤:
170.s1,获取目标请求消息,其中,目标请求消息用于请求处理目标业务数据;
171.s2,响应于目标请求消息,将目标节点集合中各个节点存储的数据拼装为目标业务数据,其中,目标节点集合中每个节点均存储部分目标业务数据,目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间。
172.可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图10其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
173.其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的数据的处理方法和装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据的处理方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1002具体可以但不限于用于存储历史用户数据等信息。作为一种示例,如图10所示,上述存储器1002中可以但不限于包括上述数据的处理装置中的获取模块902以及拼装模块904。此外,还可以包括但不限于上述数据的处理装置中的其他模块单元,本示例中不再赘述。
174.可选地,上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
175.此外,上述电子设备还包括:显示器1008,用于显示上述目标业务数据;和连接总线1010,用于连接上述电子设备中的各个模块部件。
176.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
177.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,上述计算机程序/指令被处理器执行时实现上述的信息传输方法。
178.本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
179.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
技术特征:1.一种数据的处理方法,其特征在于,包括:获取目标请求消息,其中,所述目标请求消息用于请求处理目标业务数据;响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,其中,所述目标节点集合中每个节点均存储部分所述目标业务数据,所述目标业务数据占用的存储空间大于所述目标节点集合中任一个节点的存储空间。2.根据权利要求1所述的方法,其特征在于,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:响应于所述目标请求消息,获取节点配置信息,其中,所述节点配置信息用于确定存储所述目标业务数据的节点集合;根据所述节点配置信息确定所述目标节点集合,并将所述目标节点集合中各个节点存储的数据拼装为所述目标业务数据。3.根据权利要求2所述的方法,其特征在于,所述响应于所述目标请求消息,根据所述节点配置信息确定所述目标节点集合,包括:在所述目标请求消息表示请求读取所述目标业务数据的情况下,根据所述节点配置信息获取第一节点集合,其中,所述第一节点集合包括当前时刻处于工作状态的节点;在获取到所述第一节点集合的情况下,将所述第一节点集合确定为所述目标节点集合;在未获取到所述第一节点集合的情况下,将第二节点集合确定为所述目标节点集合,其中,所述第二节点集合包括所述节点配置信息指示的在所述当前时刻之前预先确定的节点。4.根据权利要求3所述的方法,其特征在于,所述在获取到所述第一节点集合之后,所述方法还包括:比对所述第一节点集合的第一版本号与所述节点配置信息中的第二版本号是否一致;在所述第一版本号和所述第二版本号一致的情况下,将所述第一节点集合确定为所述目标节点集合;在所述第一版本号和所述第二版本号不一致的情况下,将所述第二节点集合确定为所述目标节点集合。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取节点更新指示信息,其中,所述节点更新指示信息用于修改所述节点配置信息中目标节点集合的节点数量;根据所述节点更新指示信息,确定所述目标节点集合中节点的数量。6.根据权利要求1所述的方法,其特征在于,所述响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,包括:在所述目标请求消息表示请求更新所述目标业务数据的情况下,根据所述节点配置信息获取第三节点集合,其中,所述第三节点集合是当前时刻与第一节点集合对应的镜像节点集合,所述第一节点集合包括当前时刻处于工作状态的节点;将待更新的业务数据写入所述第三节点集合;在所述待更新的业务数据已被写入所述第三节点集合的情况下,将所述第三节点集合更新为所述第一节点集合,并根据更新后的所述第一节点集合重新配置所述第三节点集
合;将更新后的所述第一节点集合中各个节点存储的数据拼装为更新后的所述目标业务数据。7.一种数据的处理装置,其特征在于,包括:获取模块,用于获取目标请求消息,其中,所述目标请求消息用于请求处理目标业务数据;拼装模块,用于响应于所述目标请求消息,将目标节点集合中各个节点存储的数据拼装为所述目标业务数据,其中,所述目标节点集合中每个节点均存储部分所述目标业务数据,所述目标业务数据占用的存储空间大于所述目标节点集合中任一个节点的存储空间。8.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的数据的处理方法。9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的数据的处理方法。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的数据的处理方法。
技术总结本公开关于一种数据的处理方法和装置、电子设备及存储介质,其中,该方法包括:获取目标请求消息,其中,目标请求消息用于请求处理目标业务数据,响应于目标请求消息,将目标节点集合中各个节点存储的数据拼装为目标业务数据,其中,目标节点集合中每个节点均存储部分目标业务数据,目标业务数据占用的存储空间大于目标节点集合中任一个节点的存储空间。本公开解决了相关技术中存在的单个节点存储容量有限,难以满足大量数据存储的技术问题。难以满足大量数据存储的技术问题。难以满足大量数据存储的技术问题。
技术研发人员:鲁航宇 水松太 栾富君
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2022.07.20
技术公布日:2022/11/1