CN112988905B - 用于集群部署的节点内存同步方法及装置 - Google Patents

用于集群部署的节点内存同步方法及装置 Download PDF

Info

Publication number
CN112988905B
CN112988905B CN202110457235.3A CN202110457235A CN112988905B CN 112988905 B CN112988905 B CN 112988905B CN 202110457235 A CN202110457235 A CN 202110457235A CN 112988905 B CN112988905 B CN 112988905B
Authority
CN
China
Prior art keywords
service data
data
memory
synchronous
node
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.)
Active
Application number
CN202110457235.3A
Other languages
English (en)
Other versions
CN112988905A (zh
Inventor
李小杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wofeng Times Data Technology Co ltd
Original Assignee
Beijing Wofeng Times Data Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Wofeng Times Data Technology Co ltd filed Critical Beijing Wofeng Times Data Technology Co ltd
Priority to CN202110457235.3A priority Critical patent/CN112988905B/zh
Publication of CN112988905A publication Critical patent/CN112988905A/zh
Application granted granted Critical
Publication of CN112988905B publication Critical patent/CN112988905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种用于集群部署的节点内存同步方法及装置,该方法包括:在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步。本发明根据业务类型,利用次要节点向首要节点发起同步请求,再通过首要节点对业务数据结构做快照,从而将数据文件通过网络同步到次要节点。该方案可用于多种场景,并提升了读写效率,只需使用简单的协议约束,即可完成文件传输功能。

Description

用于集群部署的节点内存同步方法及装置
技术领域
本发明涉及数据同步技术领域,尤其涉及一种用于集群部署的节点内存同步方法及装置。
背景技术
在集群部署环境内,客户端所有的更新在首要(Primary)节点上进行,查询在次要(Secondary)节点进行。当次要节点发起更新请求时,可以从首要节点获取到最新的业务数据。
现有技术大多是基于主从结构的冗余以及容错进行集群部署设计的,比如Redis,数据可以从首要节点向任意数量的次要节点上同步,实现全量数据同步和增量同步。但是,Redis同步机制复杂,应用场景特别,无法根据业务进行同步。
因此,现在亟需一种用于集群部署的节点内存同步方法及装置来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种用于集群部署的节点内存同步方法及装置。
本发明提供一种用于集群部署的节点内存同步方法,包括:
在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;
对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;
将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步。
根据本发明提供的一种用于集群部署的节点内存同步方法,在所述根据同步信息,获取所述次要节点所需的同步业务数据之前,所述方法还包括:
获取所述次要节点发送的登录信息,以使得所述次要节点登录首要节点,所述登录信息中包含有所述次要节点中每种业务数据的业务数据类型。
根据本发明提供的一种用于集群部署的节点内存同步方法,所述对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据,包括:
对所述同步业务数据的数据量进行判断,若所述数据量大于等于4K数据,则根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理;
若所述数据量小于4K数据,则直接将所述同步业务数据发送到次要节点,以供所述次要节点根据所述同步业务数据进行业务数据同步。
根据本发明提供的一种用于集群部署的节点内存同步方法,在所述根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理之后,所述方法还包括:
基于同步业务数据的存储位置、数据量和版本信息,构建每个业务数据类型对应的索引文件。
本发明还提供一种用于集群部署的节点内存同步方法,包括:
根据内存中业务数据的业务数据类型,构建登录信息;
将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;
根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;
获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的。
根据本发明提供的一种用于集群部署的节点内存同步方法,在所述根据所述序列化内存业务数据对待进行同步的业务数据进行同步之前,所述方法还包括:
对所述序列化内存业务数据进行反序列化处理,得到对应的同步业务数据,以根据所述同步业务数据进行业务数据同步。
本发明还提供一种用于集群部署的节点内存同步装置,包括:
同步数据获取模块,用于在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;
序列化处理模块,用于对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;
同步数据发送模块,用于将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步。
本发明还提供一种用于集群部署的节点内存同步装置,包括:
登录信息构建模块,用于根据内存中业务数据的业务数据类型,构建登录信息;
登录连接模块,用于将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;
同步信息构建模块,用于根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;
内存数据同步模块,用于获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述用于集群部署的节点内存同步方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述用于集群部署的节点内存同步方法的步骤。
本发明提供的用于集群部署的节点内存同步方法及装置,根据业务类型,利用次要节点向首要节点发起同步请求,再通过首要节点对业务数据结构做快照,从而将数据文件通过网络同步到次要节点。该方案可用于多种场景,并提升了读写效率,只需使用简单的协议约束,即可完成文件传输功能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的用于集群部署的节点内存同步方法的流程示意图之一;
图2为本发明提供的用于集群部署的节点内存同步方法的流程示意图之二;
图3为本发明提供的登录信息的格式示意图;
图4为本发明提供的同步消息的格式示意图;
图5为本发明提供的数据文件的同步格式示意图;
图6为本发明提供的用于集群部署的节点内存同步装置的结构示意图之一;
图7为本发明提供的用于集群部署的节点内存同步装置的结构示意图之二;
图8为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明根据业务数据类型,通过次要节点向首要节点发起同步请求,当首要节点接收到同步请求后,对业务数据结构进行快照处理,把数据文件通过网络同步到次要节点。在现有方案中,实现这一过程并没有通用的方法。虽然在部分开源组件中,比如Redis或Mysql存在上述的应用场景,但是实现相对比较复杂,业务场景单一。本发明的应用场景是主从集群环境,首要节点和次要节点以分组的形式组织起来,一个首要节点与至少两个次要节点形成一个组。并且,同步操作是由次要节点发起的,在完成同步之后,每个次要节点的数据一致,用户端的查询过程是在次要节点上进行。在本发明中,次要节点与首要节点之间通过TCP长连接进行通信,且首要节点和次要节点是通过配置文件配置的,无需进行自动选举。
图1为本发明提供的用于集群部署的节点内存同步方法的流程示意图之一,如图1所示,本发明提供了一种用于集群部署的节点内存同步方法,包括:
步骤101,在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型。
在本发明中,次要节点的服务启动后,会跟首要节点建立连接,并向首要节点发送一个登陆请求,登录成功后,次要节点处于接收消息的状态。本发明以首要节点作为执行主体进行说明,首要节点在接收到同步信息之后,根据该信息中包含的业务数据类型,确认次要节点所需更新的同步业务数据。
步骤102,对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据。
在本发明中,首要节点在确认本次需要对次要节点进行同步的业务数据之后,对该业务数据进行数据结构序列化处理,得到序列化内存业务数据。本发明的业务数据为内存数据,内存的数据结构可以用结构体表示,在C/C++/golang编程语言环境下,用Struct关键字来定义一个结构体,从而可通过对该数据结构进行序列化处理,将一个结构体里的数据,按照在结构体里定义的先后顺序进行遍历,再依次存放在一个连续的地址空间。
步骤103,将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步。
在本发明中,首要节点从硬盘以二进制的方式打开一个空文件,通过Mmap映射到内存,把内存中用于次要节点同步的数据序列化后,写入该空文件中形成数据文件,并通过网络连接发送到次要节点,使得次要节点根据数据文件进行同步。
本发明提供的用于集群部署的节点内存同步方法,根据业务类型,利用次要节点向首要节点发起同步请求,再通过首要节点对业务数据结构做快照,从而将数据文件通过网络同步到次要节点。该方案可用于多种场景,并提升了读写效率,只需使用简单的协议约束,即可完成文件传输功能。
在上述实施例的基础上,在所述根据同步信息,获取所述次要节点所需的同步业务数据之前,所述方法还包括:
获取所述次要节点发送的登录信息,以使得所述次要节点登录首要节点,所述登录信息中包含有所述次要节点中每种业务数据的业务数据类型。
在本发明中,次要节点在连接首要节点时,会发送一个4字节的Magic-Number(幻数),用于身份确认和标识通信协议版本,当通信协议内容变更后,Magic-Number加1。需要说明的是,本发明集群内无附加的鉴权机制。当次要节点启动后,会主动与首要节点通过配置好的TCP端口建立连接,在该连接建立后,次要节点会向首要节点后发送Login(登录)消息,该登录信息中包含了次要节点的业务数据类型,使得后续在进行数据同步时,首要节点根据业务数据类型进行数据同步,提高数据同步的效率。
在上述实施例的基础上,所述对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据,包括:
对所述同步业务数据的数据量进行判断,若所述数据量大于等于4k数据,则根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理;
若所述数据量小于4k数据,则直接将所述同步业务数据发送到次要节点,以供所述次要节点根据所述同步业务数据进行业务数据同步。
在本发明中,当首要节点内存中需要序列化的同步业务数据的数据量小于4K数据时,不会生成序列化的数据文件,当进行同步时,首要节点直接把同步业务数据通过网络发送到次要节点。若首要节点内存中需要序列化的数据量大于4K数据时,会从硬盘以二进制的方式打开一个空文件,通过Mmap映射到内存,把内存中的数据序列化后,写入到空文件中形成数据文件,并发送到次要节点。在本发明中,内存的数据结构可用结构体表示,结构体内一般会包含下面一些数据类型:
一、占用固定内存大小的类型,包括int、float、double和bool等类型,对于固定大小的类型,按照结构体里定义的顺序,依次写入到目标地址空间;
二、占用不定内存大小的类型,包括string类型、字典(map)类型、数组类型、切片类型、结构体类型和指针类型等,对于该种类型的数据,每种类型具体写入时的方式为:string类型,用两字节长度+内容存放;map类型,成对的key,value依次存放;数组类型,循环遍历数组里的所有元素,在对每个元素依照其具体的类型做进行处理;结构体类型,依次遍历结构里的每一个元素,在Golang里可以通过反射实现,在C/C++里需要额外对结构体成员的定义顺序做记录,成员在结构体里的大小可以使用Offsetof来计算,成员的类型可以使用Typeof来确定,按照顺序和大小在目标地址空间一次存放,反序列化的时候依照同样的顺序和大小来处理;结构体指针类型,获取到对应的结构体,可按照结构体类型进行转换。
在上述实施例的基础上,在所述根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理之后,所述方法还包括:
基于同步业务数据的存储位置、数据量和版本信息,构建每个业务数据类型对应的索引文件。
在本发明中,首要节点在对同步业务数据进行序列化处理时,同时把业务描述信息(包含有数据量大小),数据版本信息,数据文件路径等写入另一个文件,从而生成对应的索引文件。在本发明中,每一种业务类型对应一个索引文件,索引文件指示了数据存储的位置,数据量大小和版本信息等,在本发明中,索引文件包含的内容可参考表1所示:
Figure 489143DEST_PATH_IMAGE001
进一步地,当某种业务结构的数据量小于4K数据时,数据直接在内存中存放,大于等于4K数据时,会存放到数据文件,路径在索引文件的File字段,Size表示数据量大小。需要说明的是,由于序列化和反序列化的数据结构要严格一致,本发明通过Version字段来表示数据结构的版本,每次数据结构发生变化变化时,Version加1。由于数据文件是在首要节点上生成的,并同步到次要节点,在该应用场景中,生成数据文件的结构,需要读取数据库,然后经过密集的计算生成。首要节点在收到同步更新消息后,会根据该消息里的vid与缓存里上次的vid进行对比,当vid不同时执行数据对首要节点进行更新流程再实现同步过程,否则直接使用上次的数据文件进行同步。
图2为本发明提供的用于集群部署的节点内存同步方法的流程示意图之二,如图2所示,本发明提供了一种用于集群部署的节点内存同步方法,包括:
步骤201,根据内存中业务数据的业务数据类型,构建登录信息;
步骤202,将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接。
在本发明中,以次要节点作为执行主体进行说明,首先,次要节点的服务在启动后(例如,客户端需要通过次要节点进行查询),会与首要节点建立连接,并发送一个登陆请求新息,当次要节点登录成功后,保持处于接收消息的状态。具体地,次要节点启动后,会主动与首要节点通过配置好的TCP端口建立连接。当连接建立后,次要节点向首要节点发送Login(登录)消息,图3为本发明提供的登录信息的格式示意图,如图3所示,登录信息的格式依次包括:Length,4字节,用于标识数据包的总长度;Cmd,4字节,为数据包的命令码;Cid为string类型,通过两字节标识长度,用于标识一个连接,可以取次要节点的hostname,使得首要节点根据这个标识与不同的次要节点连接;MsgNum表示登录消息的种类,大小为4字节整数;MsgVersion的大小为8字节整数,一共有MsgsNum个Version。每一种消息代表一种业务,首要节点需要对业务数据结构做版本校验。
步骤203,根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点。
在本发明中,业务端在发送更新请求时,会同时发送给首要节点和次要节点。当首要节点收到数据(新的业务数据)以后,会更新内存数据,生成数据文件;次要节点接收到更新请求后,会发送一个同步请求信息到首要节点,当首要节点获取到最新版本的内存文件之后,会根据同步请求信息将该内存文件发送给次要节点,以使得次要节点完成数据同步。图4为本发明提供的同步消息的格式示意图,如图4所示,同步信息的格式依次包括:Length、Cmd(Length、Cmd为通用字段,与登录消息中的功能相同)以及SyncMsg。其中,SyncMsg表示需要同步的业务类型,SyncMsg的个数在Length里控制,SyncMsg里主要包含MsgId、Vid和Type,分别表示当前数据的版本,待同步的业务类型和消息编号,根据需要,还可以加入一些自定义字段。
步骤204,获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的。
在本发明中,次要节点通过TCP连接,获取首要节点发送的最新数据文件并完成同步。图5为本发明提供的数据文件的同步格式示意图,如图5所示,次要节点接收到的数据格式依次为Length、MsgId、Type和Data,在该数据格式中,首要节点发送的同步数据没有Cmd字段,Data表示自定义的数据,长度受Length控制。
在上述实施例的基础上,在所述根据所述序列化内存业务数据对待进行同步的业务数据进行同步之前,所述方法还包括:
对所述序列化内存业务数据进行反序列化处理,得到对应的同步业务数据,以根据所述同步业务数据进行业务数据同步。
在本发明中,次要节点接收到的同步数据为序列化数据,当次要节点打开一个已经存入序列化数据的文件时,为加快读取速度,通过Mmap映射到内存,获取到该文件映射的地址P。为了便于说明,假定P指向的这块内存区域内,存储了一个结构体。进一步地,按照序列化时使用的遍历结构体成员的方法,依次遍历结构体的每一个成员,根据成员的类型和大小,从地址P里读取对应的值。对于占用不定内存大小的类型,按照上述实施例中写入内存的方式,从P所指向的内存里读取。比如,P+i的地址里存入了一个string类型的数据,通过先读取两字节的长度,再根据这个长度读取实际的内容。
图6为本发明提供的用于集群部署的节点内存同步装置的结构示意图之一,如图6所示,本发明提供了一种用于集群部署的节点内存同步装置,包括同步数据获取模块601、序列化处理模块602和同步数据发送模块603,其中,同步数据获取模块601用于在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;序列化处理模块602用于对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;同步数据发送模块603用于将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步。
在本发明中,次要节点的服务启动后,会跟首要节点建立连接,并向首要节点发送一个登陆请求,登录成功后,次要节点处于接收消息的状态。进一步地,首要节点通过同步数据获取模块601在接收到同步信息之后,根据该信息中包含的业务数据类型,确认次要节点所需更新的同步业务数据。在本发明中,同步数据获取模块601在确认本次需要对次要节点进行同步的业务数据之后,再通过序列化处理模块602对该业务数据进行数据结构序列化处理,得到序列化内存业务数据。本发明的业务数据为内存数据,内存的数据结构可以用结构体表示,在C/C++/golang编程语言环境下,用Struct关键字来定义一个结构体,从而可通过对该数据结构进行序列化处理,将一个结构体里的数据,按照在结构体里定义的先后顺序进行遍历,再依次存放在一个连续的地址空间。具体地,序列化处理模块602从硬盘以二进制的方式打开一个空文件,通过Mmap映射到内存,把内存中用于次要节点同步的数据序列化后,写入该空文件中形成数据文件,最后,同步数据发送模块603通过网络连接,将数据文件发送到次要节点,使得次要节点根据数据文件进行同步。
本发明提供的用于集群部署的节点内存同步装置,根据业务类型,利用次要节点向首要节点发起同步请求,再通过首要节点对业务数据结构做快照,从而将数据文件通过网络同步到次要节点。该方案可用于多种场景,并提升了读写效率,只需使用简单的协议约束,即可完成文件传输功能。
图7为本发明提供的用于集群部署的节点内存同步装置的结构示意图之二,如图7所示,本发明提供了一种用于集群部署的节点内存同步装置,包括登录信息构建模块701、登录连接模块702、同步信息构建模块703和内存数据同步模块704,其中,登录信息构建模块701用于根据内存中业务数据的业务数据类型,构建登录信息;登录连接模块702用于将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;同步信息构建模块703用于根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;内存数据同步模块704用于获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的。
在本发明中,次要节点的服务在启动后(例如,客户端需要通过次要节点进行查询),需要与首要节点建立连接,通过登录信息构建模块701构建一个登陆请求新息,并通过登录连接模块702当完成次要节点登录过程,使得次要节点保持处于接收消息的状态。具体地,次要节点启动后,会主动与首要节点通过配置好的TCP端口建立连接。当连接建立后,登录连接模块702向首要节点发送Login(登录)消息。进一步地,当业务端在发送更新请求时,会同时发送给首要节点和次要节点。当首要节点收到数据(新的业务数据)以后,会更新内存数据,生成数据文件;次要节点接收到更新请求后,同步信息构建模块703会发送一个同步请求信息到首要节点,当首要节点获取到最新版本的内存文件之后,内存数据同步模块704会根据同步请求信息将该内存文件发送给次要节点,以使得次要节点完成数据同步。在本发明中,次要节点通过TCP连接,获取首要节点发送的最新数据文件并完成同步。
本发明提供的用于集群部署的节点内存同步装置,根据业务类型,利用次要节点向首要节点发起同步请求,再通过首要节点对业务数据结构做快照,从而将数据文件通过网络同步到次要节点。该方案可用于多种场景,并提升了读写效率,只需使用简单的协议约束,即可完成文件传输功能。
本发明提供的装置是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图8为本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)801、通信接口(CommunicationsInterface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行用于集群部署的节点内存同步方法,该方法包括:在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步;
或,根据内存中业务数据的业务数据类型,构建登录信息;将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的。
此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的用于集群部署的节点内存同步方法,该方法包括:在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步;
或,根据内存中业务数据的业务数据类型,构建登录信息;将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的用于集群部署的节点内存同步方法,该方法包括:在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步;
或,根据内存中业务数据的业务数据类型,构建登录信息;将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种用于集群部署的节点内存同步方法,其特征在于,包括:
在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;
对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;
将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步;
所述对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据,包括:
对所述同步业务数据的数据量进行判断,若所述数据量大于等于4K数据,则根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理,所述业务数据类型包括占用固定内存大小的类型和占用不定内存大小的类型;
若所述数据量小于4K数据,则直接将所述同步业务数据发送到次要节点,以供所述次要节点根据所述同步业务数据进行业务数据同步。
2.根据权利要求1所述的用于集群部署的节点内存同步方法,其特征在于,在所述根据同步信息,获取所述次要节点所需的同步业务数据之前,所述方法还包括:
获取所述次要节点发送的登录信息,以使得所述次要节点登录首要节点,所述登录信息中包含有所述次要节点中每种业务数据的业务数据类型。
3.根据权利要求1所述的用于集群部署的节点内存同步方法,其特征在于,在所述根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理之后,所述方法还包括:
基于同步业务数据的存储位置、数据量和版本信息,构建每个业务数据类型对应的索引文件。
4.一种用于集群部署的节点内存同步方法,其特征在于,包括:
根据内存中业务数据的业务数据类型,构建登录信息;
将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;
根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;
获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的;
其中,所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理,包括:
所述首要节点对所述同步业务数据的数据量进行判断,若所述数据量大于等于4K数据,则根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理,所述业务数据类型包括占用固定内存大小的类型和占用不定内存大小的类型;
若所述数据量小于4K数据,则直接将所述同步业务数据发送到次要节点,以供所述次要节点根据所述同步业务数据进行业务数据同步。
5.根据权利要求4所述的用于集群部署的节点内存同步方法,其特征在于,在所述根据所述序列化内存业务数据对待进行同步的业务数据进行同步之前,所述方法还包括:
对所述序列化内存业务数据进行反序列化处理,得到对应的同步业务数据,以根据所述同步业务数据进行业务数据同步。
6.一种用于集群部署的节点内存同步装置,其特征在于,包括:
同步数据获取模块,用于在次要节点登录首要节点之后,根据同步信息,获取所述次要节点所需的同步业务数据,所述同步信息中包含有所述同步业务数据的业务数据类型;
序列化处理模块,用于对所述同步业务数据进行数据结构序列化处理,得到序列化内存业务数据;
同步数据发送模块,用于将所述序列化内存业务数据发送到所述次要节点,以供所述次要节点根据所述序列化内存业务数据进行业务数据同步;
所述序列化处理模块具体用于:
对所述同步业务数据的数据量进行判断,若所述数据量大于等于4K数据,则根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理,所述业务数据类型包括占用固定内存大小的类型和占用不定内存大小的类型;
若所述数据量小于4K数据,则直接将所述同步业务数据发送到次要节点,以供所述次要节点根据所述同步业务数据进行业务数据同步。
7.一种用于集群部署的节点内存同步装置,其特征在于,包括:
登录信息构建模块,用于根据内存中业务数据的业务数据类型,构建登录信息;
登录连接模块,用于将所述登录信息发送到首要节点,以建立与所述首要节点之间的登录连接;
同步信息构建模块,用于根据内存中待进行同步的业务数据的业务数据类型,构建同步信息,并将所述同步信息发送到所述首要节点;
内存数据同步模块,用于获取所述首要节点发送的序列化内存业务数据,并根据所述序列化内存业务数据对待进行同步的业务数据进行同步,所述序列化内存业务数据为所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理后得到的;
其中,所述首要节点对次要节点所需的同步业务数据进行数据结构序列化处理,包括:
所述首要节点通过序列化处理模块,对所述同步业务数据的数据量进行判断,若所述数据量大于等于4K数据,则根据所述同步业务数据对应的业务数据类型,对所述同步业务数据进行数据结构序列化处理,所述业务数据类型包括占用固定内存大小的类型和占用不定内存大小的类型;
若所述数据量小于4K数据,则直接将所述同步业务数据发送到次要节点,以供所述次要节点根据所述同步业务数据进行业务数据同步。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述用于集群部署的节点内存同步方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述用于集群部署的节点内存同步方法的步骤。
CN202110457235.3A 2021-04-27 2021-04-27 用于集群部署的节点内存同步方法及装置 Active CN112988905B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110457235.3A CN112988905B (zh) 2021-04-27 2021-04-27 用于集群部署的节点内存同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110457235.3A CN112988905B (zh) 2021-04-27 2021-04-27 用于集群部署的节点内存同步方法及装置

Publications (2)

Publication Number Publication Date
CN112988905A CN112988905A (zh) 2021-06-18
CN112988905B true CN112988905B (zh) 2021-08-10

Family

ID=76340335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110457235.3A Active CN112988905B (zh) 2021-04-27 2021-04-27 用于集群部署的节点内存同步方法及装置

Country Status (1)

Country Link
CN (1) CN112988905B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017088664A1 (zh) * 2015-11-26 2017-06-01 深圳市中博科创信息技术有限公司 集群文件***的数据处理方法和装置
CN107465709A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 分布式镜像构建任务方法及装置、***
CN111240737A (zh) * 2020-01-20 2020-06-05 杭州海兴电力科技股份有限公司 一种基于Redis的动态业务参数的配置方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017088664A1 (zh) * 2015-11-26 2017-06-01 深圳市中博科创信息技术有限公司 集群文件***的数据处理方法和装置
CN107465709A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 分布式镜像构建任务方法及装置、***
CN111240737A (zh) * 2020-01-20 2020-06-05 杭州海兴电力科技股份有限公司 一种基于Redis的动态业务参数的配置方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Redis主从复制;weixin_39477597;《https://blog.csdn.net/weixin_39477597/article/details/114434831》;20210306;第1节 *
Redis数据同步机制;幕布斯6054654;《https://www.imooc.com/article/264423》;20181125;第八节 *

Also Published As

Publication number Publication date
CN112988905A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN106874389B (zh) 数据的迁移方法和装置
CN106815218B (zh) 数据库访问方法、装置和数据库***
CN109710185B (zh) 数据处理方法及装置
WO2018045758A1 (zh) 一种数据存储方法及数据中心
CN110209642A (zh) 信息处理的方法、装置、服务器及计算机可读介质
CN103268351A (zh) 一种数据同步方法和设备
CN113360456B (zh) 数据归档方法、装置、设备以及存储介质
CN103503388B (zh) 一种分布式队列消息读取方法及设备、***
CN113051102A (zh) 文件备份方法、装置、***、存储介质和计算机设备
CN112988905B (zh) 用于集群部署的节点内存同步方法及装置
US20210342334A1 (en) Method, device, and computer program product for data management
CN112000850A (zh) 进行数据处理的方法、装置、***及设备
CN115104295A (zh) 数据处理方法、装置、电子装置及存储介质
CN116303789A (zh) 多分片多副本数据库并行同步方法、装置及可读介质
JP2005534099A (ja) データベースの同期
CN115587114A (zh) ***以及查询方法
CN112559546B (zh) 数据库同步方法、装置、计算机设备及可读存储介质
CN112286947B (zh) 保持不同存储***的数据一致的方法以及装置
US11409700B2 (en) Method, electronic device and computer program product for snapshot replication
CN111966650A (zh) 一种运维大数据共享数据表的处理方法、装置及存储介质
CN114978950B (zh) 基于fpga、cpu协同的网络算法调用方法及***
US11347406B2 (en) Method, electronic device and computer program product for updating information
CN110309191A (zh) 存储业务数据的方法、装置和***
CN113157494B (zh) 区块链***中数据备份的方法及装置
CN112463206A (zh) 配置中心中配置信息处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant