CN114817190A - 日志同步的方法、装置、***、设备及存储介质 - Google Patents
日志同步的方法、装置、***、设备及存储介质 Download PDFInfo
- Publication number
- CN114817190A CN114817190A CN202210474789.9A CN202210474789A CN114817190A CN 114817190 A CN114817190 A CN 114817190A CN 202210474789 A CN202210474789 A CN 202210474789A CN 114817190 A CN114817190 A CN 114817190A
- Authority
- CN
- China
- Prior art keywords
- synchronized
- log
- node
- fragmentation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000001360 synchronised effect Effects 0.000 claims abstract description 161
- 238000013467 fragmentation Methods 0.000 claims abstract description 132
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 132
- 239000012634 fragment Substances 0.000 claims abstract description 111
- 230000005012 migration Effects 0.000 claims abstract description 26
- 238000013508 migration Methods 0.000 claims abstract description 26
- 230000009191 jumping Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 8
- 238000004091 panning Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供一种日志同步的方法、装置、***、设备、存储介质,所述方法包括:分片节点向消息中心发送待同步日志,所述待同步日志中包含有表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;所述消息中心从所述待同步日志中解析出所述标识,向各个所述分片节点发送广播消息,所述广播消息中携带有所述分片节点的地址信息以及所述标识;所述分片节点基于所述地址信息接收所述广播消息,并基于所述标识,确定是否发送所述待同步日志。旨在解决分布式数据库日志同步过程中信息不一致的问题。
Description
技术领域
本说明书实施例涉及数据库同步的技术领域,尤其涉及日志同步的方法、装置、***、设备及存储介质。
背景技术
分布式数据库一般具有多个独立的物理节点,在分布式数据库数据同步的过程中,其数据写入的日志一般是每个源端数据库的分片节点单独管理,但是分片节点之间由于负载均衡或者人为的一些操作会存在分片节点之间的数据迁移的情况,当分片节点之间发生数据迁移时,会导致分片节点同步到目标端数据库的数据最终可能不一致。针对这一问题,目前实时同步分布式数据库的增量有两种主流的做法,第一种是将源端的分布式数据库的每个分片节点单独配置任务,关闭源端分片节点之间的数据迁移,以此保证最终同步到目标端数据库的信息最终的一致性;这样做的缺点是需要对每个源端数据库的分片节点都进行配置,当源端数据库的分片节点非常多的时候,操作就会变得很复杂,并且源端数据库分片节点之间也不能进行数据迁移;第二种方法是分布式数据库自己提供统一的日志流,如MongoDB的change-stream方案,其原理是通过拉取各个不同的分片节点的增量日志,自己做一次归并排序后输出日志流,该方式可以在保证源端分布式数据库分片节点之间有数据迁移的同时,同步到目标端数据库的最终信息是一致的,但是该方式的缺点是不具备通用性,且同步效率受限于源端的日志归并排序后的输出效率。
发明内容
为克服相关技术中存在的问题,本说明书实施例提供了一种日志同步的方法、装置、***、设备及存储介质。
根据本说明书实施例的第一方面,提供一种日志同步的***,所述***包括:
分布式数据库和消息中心;
所述分布式数据库包括源数据库和目标数据库,所述源数据库包括若干个分片节点,所述分片节点用于向所述消息中心发送待同步日志,所述待同步日志中包含表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
所述消息中心用于从所述待同步日志中解析出所述标识,并向各个所述分片节点发送广播消息,所述广播消息中携带有所述分片节点的地址信息以及所述标识;
所述分片节点还用于基于所述地址信息接收所述广播消息,并基于所述标识,确定是否发送所述待同步日志。
根据本说明书实施例的第二方面,提供一种日志同步的方法,所示方法包括:
所述分片节点发送待同步日志,所述待同步日志中包含有表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
所述分片节点基于所述分片节点的地址信息接收广播消息,所述广播消息中携带有发送所述待同步日志的分片节点的地址信息以及所述标识,所述标识是从所述待同步日志中解析获得;
所述分片节点基于所述地址信息接收所述广播消息,并基于所述标识,确定是否发送所述待同步日志。
根据本说明书实施例的第三方面,提供一种日志同步的方法,应用于消息中心,所述方法包括:
接收所述分片节点发送的待同步日志,所述待同步日志中包含有表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
基于所述待同步日志解析出所述标识,并向各个所述分片节点发送广播消息,所述广播消息中包括所述分片节点的地址信息以及所述标识;以使所述分片节点基于所述地址信息接收所述广播消息,并基于所述标识确定是否发送所述待同步日志。
根据本说明书实施例第四方面,提供一种日志同步的装置,所述装置包括:接收模块,用于接收所述分片节点发送的待同步日志,所述待同步日志中包含有表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
解析模块,用于对接收到的所述待同步日志进行解析,得到所述标识;广播模块,用于向各个所述分片节点发送广播消息,所述广播消息中包括所述分片节点的地址信息以及所述标识,以使所述分片节点基于所述地址信息接收所述广播消息,并基于所述标识,使得所述分片节点确定是否发送所述待同步日志。
根据本说明书实施例第五方面,提供一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行如前述第一方面所述的任意一项方法所述的操作。
根据本申请实施例的第六方面,提供一种可读存储介质,包括:
该指令被处理器执行时实现如前述第一方面所述的任意一项方法所述的操作。
本说明书实施例的实施例提供的技术方案可以包括以下有益效果:
在本说明书实施例中,对源端数据库的分片节点分别建立与目标端数据库的连接链路,并通过一个消息中心对分片节点的连接链路进行监测,根据监测到的有关各个链路的待发送的日志任务的数据来源构建广播消息,以广播的方式发布给各个分片节点,从而使得分片节点可以获知待发送的日志的数据来源是由其他分片节点迁移至本节点的、还是本节点自身创建的,进而决定是否将该日志发送给目的数据库,增强了分布式数据库数据同步时的协同性,且由于各个分片节点发送待发送的任务之前都参考了其他分片节点待发送的任务的信息,因此所有分片节点所发送的任务具有一致性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
附图说明
此处的附图被并入说明书中并构成本说明书实施例的一部分,示出了符合本说明书实施例的实施例,并与说明书一起用于解释本说明书实施例的原理。
图1A是本说明书实施例根据一示例性实施例示出的一种日志同步的方法的流程图。
图1B是本说明书实施例根据一示例性实施例示出的一种日志同步的方法的流程图。
图2A是一种现有技术。
图2B是本说明书实施例根据一示例性实施例示出的一种分布式数据库结构图。
图3是本说明书实施例根据一示例性实施例示出的一种消息中心构建的新消息的结构图。
图4是本说明书实施例根据一示例性实施例示出的另一种消息中心的结构图。
图5本说明书实施例根据一示例性实施例示出的一种日志同步的装置的框图。
图6是本说明书实施例根据一示例性实施例示出的一种日志同步的***的框图。
图7是本说明书实施例根据一示例性实施例示出的一种应用在云数据库场景的日志同步的方案流程图。
图8是本说明书实施例根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书实施例的一些方面相一致的装置和方法的例子。
在本说明书实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书实施例。在本说明书实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
分布式数据库一般具有多个独立的物理节点,在分布式数据库数据同步的过程中,其数据写入的日志一般是每个源端数据库的分片节点单独管理,但是分片节点之间由于负载均衡或者人为的一些操作会存在分片节点之间的数据移动迁移的情况,当分片节点之间发生数据移动迁移时,会导致分片节点同步到目标端数据库的信息数据最终可能不一致。
解决这一问题的手段之一是,如何保证源端数据库分片节点之间迁移的待同步日志不被同步到目标端数据库中。如果直接切断源端数据库分片节点之间的联系,就会导致在一个分片节点内的数据信息不能被其他分片节点共享,阻碍信息流通;如果对分片节点发送的待同步日志在同步之前进行排序并剔由迁移得到的待同步日志,又会导致同步效率受限。
针对该问题本说明书实施例提出了一种分布式数据库日志同步的方法,通过消息中心来对源端分片节点的待同步日志进行解析,并将解析得到的相关信息对所有分片节点进行广播,以使各个分片节点能够根据广播的消息决定是否发送当前时序的待同步日志。
接下来对本说明书实施例进行详细说明。
图2A是一种常见的分布式数据库的结构示意图,其包括目标数据库201,源数据库202以及各个分片节点203;分片节点属于分布式数据库的源数据库。
结合图2A和图1A,图1A是本说明书实施例根据一示例性实施例示出的一种日志同步的方法的流程图,包括以下步骤:
在步骤S101中,分片节点发送待同步日志,该待同步日志中包含有表征数据来源的标识,数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
在步骤S102中,分片节点基于分片节点的地址信息接收广播消息,广播消息中携带有发送待同步日志的分片节点的地址信息以及表征数据来源的标识,该标识是从所述待同步日志中解析获得;
在步骤S103中,分片节点基于地址信息接收广播消息,并基于表征数据来源的标识,确定是否发送待同步日志。
在步骤S103中,基于标识,确定是否发送待同步日志还可以包括:在数据来源为分片节点本地创建的情况下,将待同步日志发送至目标数据库,或者,在数据来源为其他分片节点迁移至该分片节点的情况下,不发送待同步日志。广播消息中还可以包含分片节点待同步日志的时序信息,分片节点在根据标识确定出不发送的其他分片节点迁移至分片节点的待同步日志后,根据时序信息跳转到本地节点创建的待同步日志并发送至目标数据库,其具体步骤为:分片节点接收到广播的消息后,首先根据自身的地址信息找到对应的广播消息,读取广播消息里数据来源的标识,如果该标识对应的数据来源为本地操作,那么该分片节点正常发送待同步的日志,如果该标识对应的数据来源为其他分片节点迁移至该分片节点,那么就停止该待同步日志的发送,并且获取该广播消息中所有广播消息的待同步日志的时序信息,如果所有的时序信息都大于该分片节点待同步日志的时序信息,那么就执行跳过该待同步日志的操作,如果这些广播消息中存在小于该分片节点待同步日志的时序信息,那么就等待小于该分片节点待同步日志的时序信息的广播消息所对应的分片节点对待同步日志处理完成之后,该分片节点再对自身的待同步日志执行跳过的操作。
在一实施例中,分片节点基于标识,将本地节点创建的待同步日志发送至目标数据库或不发送其他分片节点迁移至该分片节点的待同步日志可以在所有待同步日志发送前,在分片节点中对这些待同步日志进行基于时序的排序,之后每一次的发送或跳过都是基于时序进行的。
在另一实施例中,如图1B所示,图1B是本说明书实施例根据一示例性实施例示出的一种日志同步的方法,包括以下步骤:
在步骤S104中,接收分片节点发送的待发送的待同步日志,待同步日志中包含有表征数据来源的标识,数据来源包括分片节点本地创建或由其他分片节点迁移至该分片节点;
在步骤S105中,基于待同步日志解析出标识,并向各个分片节点发送广播消息,广播消息中包括分片节点的地址信息以及标识;以使分片节点基于地址信息接收广播消息,并基于标识确定是否发送待同步日志。
在步骤S105中
基于标识,确定是否发送待同步日志还可以包括:在数据来源为分片节点本地创建的情况下,将待同步日志发送至目标数据库,或者,在数据来源为其他分片节点迁移至该分片节点的情况下,不发送待同步日志。广播消息中还可以包含分片节点待同步日志的时序信息,以使分片节点在根据标识确定出不发送的其他分片节点迁移至分片节点的待同步日志后,根据时序信息跳转到本地节点创建的待同步日志并发送至目标数据库。
图1B示出的方法的各个步骤可以是利用独立于分布式节点和目标数据库的一个逻辑实体来实现,该逻辑实体可以在物理上独立于分布式节点和目标数据库所在的设备,当然,也不排除将该逻辑实体装载到分布式节点或目标数据库所在的设备上的实现方式。
在本说明书实施例中,对常规的分布式数据库的网络架构进行了改进,如图2B所示,本说明书实施例的分布式数据库架构在传统的分布式数据库结构上,增加了一个消息中心204,实现图1B各步骤的逻辑实体可以是通过消息中心204实现。
在一个实施例中,消息中心204可以被配置为一个拥有两个成员的数据类,两个成员分别是分片节点的地址信息以及分片节点发送的待同步日志的数据来源标识,该标识需要消息中心解析待同步日志后得到,消息中心204接收到上述成员对应的消息后,将构建新消息并广播给各个分片节点,以使分片节点基于地址信息接收广播消息,广播消息中至少包含了分片节点的地址信息以及待同步日志的数据来源标识,并基于标识确定是否发送待同步日志。作为例子,在构建新消息时,可以将分片节点待同步日志的时序信息作为新消息的一部分,新构建的消息中心构建的广播消息的数据结构如图3所示,在此例子中消息中心所广播的消息中包含了:分片节点的地址信息、数据来源标识和待同步日志的时序信息,分片节点根据地址信息在消息中心广播的消息中找到与自身地址信息相匹配的消息,根据这条与自身相匹配的消息中的数据来源标识将本地节点创建的待同步日志发送至目标数据库或不发送其他分片节点迁移至该分片节点的待同步日志。而分布式数据库的源端数据库的分片节点在不发送其他分片节点迁移至该分片节点的待同步日志时,会根据上述时序信息跳转到本地节点创建的待同步日志并将其发送至分布式数据库的目标数据库,其具体步骤为:分片节点接收到消息中心广播的消息后,首先根据自身的地址信息找到对应的广播消息,读取广播消息里数据来源的标识,如果该标识对应的数据来源为本地操作,那么该分片节点正常发送待同步的日志,如果该标识对应的数据来源为其他分片节点迁移至该分片节点,那么就停止该待同步日志的发送,并且获取该广播消息中所有广播消息的待同步日志的时序信息,如果所有的时序信息都大于该分片节点待同步日志的时序信息,那么就执行跳过该待同步日志的操作,如果这些广播消息中存在小于该分片节点待同步日志的时序信息,那么就等待小于该分片节点待同步日志的时序信息的广播消息所对应的分片节点对待同步日志处理完成之后,该分片节点再对自身的待同步日志执行跳过的操作。
在另一实施例中,消息中心还可以具有特定的数据结构,如图4所示,包括目的数据库401,源数据库402,源数据库中的分片节点403,消息中心404,待同步日志405,其中消息中心404构建新消息的数据结构由多个数据结构字段406构成。在本实施例中,数据结构使用了jobld、isfrommigrate和checkpoint三个字段来分别代表任务名称、消息来源标识和待同步日志的时序信息,上述任务名称即为分片节点403的地址信息。在本实例中消息中心404的工作原理为:接收源端数据库402的分片节点403的待同步日志405,之后从待同步日志405中解析出构成数据结构的字段所需要的信息,所有分片节点的信息构成一个二维数据组,消息中心将该二维数据组面向分片节点403进行广播,每个分片节点403的待同步日志405都能够对应一个上述二维数据组中某一行的数据,对应的规则为:待同步日志405所在的分片节点403的地址信息与上述二维数据组某一行的jobld字段的数据相同的进行对应。对应之后,读取isfrommigrate中的数据来源的标识,如果该标识对应的数据来源为本地操作,那么该分片节点正常发送待同步的日志,如果该标识对应的数据来源为其他分片节点迁移至该分片节点,那么就停止该待同步日志的发送,并且获取该广播消息中二维数据组的所有checkpoint字段的待同步日志的时序信息,如果所有的时序信息都大于该分片节点待同步日志的时序信息,那么就执行跳过该待同步日志的操作,如果这些广播消息中存在小于该分片节点待同步日志的时序信息,那么就等待小于该分片节点待同步日志的时序信息的广播消息所对应的分片节点对待同步日志处理完成之后,该分片节点再对自身的待同步日志执行跳过的操作。
应当理解的是,本实施例只是列举了实现消息中心的几种方式,并不能将其视为对本说明书实施例技术方案的限制,本领域技术人员可以根据本说明书实施例中消息中心的功能在不付出创造性劳动的情况下得到该消息中心其他的构成方法。
在另一实施例中,本说明书实施例提供一种日志同步的装置,如图5所示,图5是本说明书实施例根据一示例性实施例示出的一种装置的框图,该装置包括:
接收模块501,用于接收分片节点发送的待同步日志,上述待同步日志中包含有表征数据来源的标识,上述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
解析模块502,用于对接收到的上述待同步日志进行解析,得到上述标识;
广播模块503,用于向各个分片节点发送广播消息,该广播消息中包括分片节点的地址信息以及上述标识,以使分片节点基于上述地址信息接收上述广播消息,并基于上述标识,使得分片节点确定是否发送待同步日志。
在本实施例中,广播模块503发送的广播消息使得分片节点基于标识,确定是否发送待同步日志还可以包括:在数据来源为分片节点本地创建的情况下,将待同步日志发送至目标数据库,或者,在数据来源为其他分片节点迁移至该分片节点的情况下,不发送待同步日志。广播模块503发送的广播消息中还携带有分片节点待同步日志的时序信息,这些信息以使分片节点在根据标识确定出不发送的其他分片节点迁移至分片节点的待同步日志后,根据时序信息跳转到本地节点创建的待同步日志并发送至目标数据库,该操作的具体内容为:分片节点接收到消息中心广播的消息后,首先根据自身的地址信息找到对应的广播消息,读取广播消息里数据来源的标识,如果该标识为本地操作,那么该分片节点正常发送待同步的日志,如果该标识为其他分片节点迁移,那么就停止该待同步日志的发送,并且获取该广播消息中所有广播消息的待同步日志的时序信息,如果所有的时序信息都大于该分片节点待同步日志的时序信息,那么就执行跳过该待同步日志的操作,如果这些广播消息中存在小于该分片节点待同步日志的时序信息,那么就等待小于该分片节点待同步日志的时序信息的广播消息所对应的分片节点对待同步日志处理完成之后,该分片节点再对自身的待同步日志执行跳过的操作。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在另一实施例中,本说明书实施例还提供一种日志同步的***,如图6所示,该***包括:
分布式数据库601和消息中心602;其中分布式数据库601中包括目标数据库603和源数据库604,源数据库604中包含若干个分片节点605;
分片节点605用于向消息中心602发送待同步日志,该待同步日志中包含表征数据来源的标识,数据来源包括某个分片节点605本地创建和/或由其他分片节点迁移至该分片节点;
消息中心602用于从上述待同步日志中解析出表征数据来源的标识,并向各个分片节点605发送广播消息,该广播消息中携带有分片节点605的地址信息以及表征数据来源的标识,以使分片节点605基于地址信息接收广播消息,并基于表征数据来源的标识确定是否发送待同步日志。
在一实施例中,使得分片节点基于标识,确定是否发送待同步日志还可以包括:在数据来源为分片节点本地创建的情况下,将待同步日志发送至目标数据库,或者,在数据来源为其他分片节点迁移至该分片节点的情况下,不发送待同步日志。消息中心602向各个分片节点605发送的广播消息中还携带有分片节点605待同步日志的时序信息,分片节点还用于在根据所述标识确定出不发送的其他分片节点迁移至所述分片节点的待同步日志后,根据所述时序信息跳转到所述本地节点创建的待同步日志并发送至所述目标数据库;消息中心602发送的广播消息以使分片节点605不发送其他分片节点迁移至某个分片节点的待同步日志之后还使得分片节点605执行根据上述时序信息跳转到本地节点创建的待同步日志并发送至目的库603的操作,该操作的具体内容为:分片节点接收到消息中心广播的消息后,首先根据自身的地址信息找到对应的广播消息,读取广播消息里数据来源的标识,如果该标识为本地操作,那么该分片节点正常发送待同步的日志,如果该标识为其他分片节点迁移,那么就停止该待同步日志的发送,并且获取该广播消息中所有广播消息的待同步日志的时序信息,如果所有的时序信息都大于该分片节点待同步日志的时序信息,那么就执行跳过该待同步日志的操作,如果这些广播消息中存在小于该分片节点待同步日志的时序信息,那么就等待小于该分片节点待同步日志的时序信息的广播消息所对应的分片节点对待同步日志处理完成之后,该分片节点再对自身的待同步日志执行跳过的操作。
本说明书实施例提供的日志同步方案的一个应用场景是应用在云数据库中,如用户在使用淘宝购物时,原先地址定位在A地,那么在A地的淘宝源数据库就会存储该用户的账户信息,当用户离开A地前往B地之后,原先在A地的淘宝源数据库就会将该用户的账户信息进行节点迁移,将这些信息迁移至B,在该场景中,包括云端目标数据库、云端服务器和客户端源端分片节点。其中,消息中心可以被部署在云端服务器上,如图7以云端服务器执行本说明书实施例的方案为例进行说明。
如图7所示,该分布式服务器架构包括云端目标数据库701,客户端源端数据库分片节点702以及云端服务器703。
在步骤S701中,客户端源端数据库分片节点702向云端服务器703发送待同步的日志;
在步骤S702中,云端服务器703根据待同步的日志解析出客户端源端数据库分片节点702的地址信息,待同步日志的数据来源标识以及待同步日志的时序信息,其中,数据来源标识包括某个分片节点本地创建和/或由其他分片节点迁移至该分片节点;之后将上述消息向客户端源端数据库分片节点702进行广播;
在步骤S703中,客户端源端数据库分片节点702基于自身地址信息接收相应的广播消息,并判断广播消息中的数据来源标识;
若数据来源标识为本地创建,则执行S704,发送当前待同步日志;
若数据来源标识为其他节点发送,则执行S705,跳转到本地节点创建的待同步日志发送。
基于上述标识将本地节点创建的待同步日志发送到云端目标数据库,或不发送其他分片节点迁移至该分片节点的待同步日志;其中,分片节点不发送其他分片节点迁移至某个分片节点的待同步日志之后,分片节点还执行根据上述时序信息跳转到本地节点创建的待同步日志并发送至云端目标数据库701的操作,该操作的具体内容为:分片节点接收到消息中心广播的消息后,首先根据自身的地址信息找到对应的广播消息,读取广播消息里数据来源的标识,如果该标识为本地操作,那么该分片节点正常发送待同步的日志,如果该标识为其他分片节点迁移,那么就停止该待同步日志的发送,并且获取该广播消息中所有广播消息的待同步日志的时序信息,如果所有的时序信息都大于该分片节点待同步日志的时序信息,那么就执行跳过该待同步日志的操作,如果这些广播消息中存在小于该分片节点待同步日志的时序信息,那么就等待小于该分片节点待同步日志的时序信息的广播消息所对应的分片节点对待同步日志处理完成之后,该分片节点再对自身的待同步日志执行跳过的操作。
相应的,本说明书还提供一种计算机设备,如图8所示,包括:
处理器81,存储器82及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述任一方法实施例所述的方法。
本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于指令相关的硬件,来完成上述任一方法实施例所述的方法。
上述对本说明书实施例特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书实施例的其它实施方案。本说明书实施例旨在涵盖本说明书实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书实施例的一般性原理并包括本说明书实施例未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书实施例的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书实施例的范围仅由所附的权利要求来限制。
以上所述仅为本说明书实施例的较佳实施例而已,并不用以限制本说明书实施例,凡在本说明书实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书实施例保护的范围之内。
Claims (12)
1.一种日志同步的***,所述***包括:
分布式数据库和消息中心;
所述分布式数据库包括源数据库和目标数据库,所述源数据库包括若干个分片节点,所述分片节点用于向所述消息中心发送待同步日志,所述待同步日志中包含表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
所述消息中心用于从所述待同步日志中解析出所述标识,并向各个所述分片节点发送广播消息,所述广播消息中携带有所述分片节点的地址信息以及所述标识;
所述分片节点还用于基于所述地址信息接收所述广播消息,并基于所述标识,确定是否发送所述待同步日志。
2.根据权利要求1所述的***,基于所述标识,确定是否发送所述待同步日志包括:
在数据来源为所述分片节点本地创建的情况下,将所述待同步日志发送至所述目标数据库,或者,
在数据来源为其他分片节点迁移至所述分片节点的情况下,不发送所述待同步日志。
3.根据权利要求1所述的***,
所述消息中心向各个所述分片节点发送的广播消息中还携带有所述待同步日志的时序信息,所述分片节点还用于在根据所述标识确定出不发送的其他分片节点迁移至所述分片节点的待同步日志后,根据所述时序信息跳转到所述本地节点创建的待同步日志并发送至所述目标数据库。
4.一种日志同步的方法,应用于权利要求1-2任一所述的日志同步***,所述分布式数据库包括源数据库和目标数据库,所述源数据库包括若干个分片节点,所述方法包括:
所述分片节点发送待同步日志,所述待同步日志中包含有表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
所述分片节点基于所述分片节点的地址信息接收广播消息,所述广播消息中携带有发送所述待同步日志的分片节点的地址信息以及所述标识,所述标识是从所述待同步日志中解析获得;
所述分片节点基于所述标识,确定是否发送所述待同步日志。
5.根据权利要求4所述的方法,基于所述标识,确定是否发送所述待同步日志包括:
在数据来源为所述分片节点本地创建的情况下,将所述待同步日志发送至所述目标数据库,或者,
在数据来源为其他分片节点迁移至所述分片节点的情况下,不发送所述待同步日志。
6.根据权利要求4所述的方法,
所述广播消息中还携带有所述分片节点待同步日志的时序信息,所述分片节点在根据所述标识确定出不发送的其他分片节点迁移至所述分片节点的待同步日志后,根据所述时序信息跳转到所述本地节点创建的待同步日志并发送至所述目标数据库。
7.一种日志同步的方法,应用于权利要求1-2任一所述的日志同步***,所述分布式数据库包括源数据库和目标数据库,所述源数据库包括若干个分片节点,所述方法包括:
接收所述分片节点发送的待同步日志,所述待同步日志中包含有表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
基于所述待同步日志解析出所述标识,并向各个所述分片节点发送广播消息,所述广播消息中包括所述分片节点的地址信息以及所述标识;以使所述分片节点基于所述地址信息接收所述广播消息,并基于所述标识确定是否发送所述待同步日志。
8.根据权利要求7所述的方法,所述广播消息以使所述分片节点基于所述标识,确定是否发送所述待同步日志包括:
在数据来源为所述分片节点本地创建的情况下,将所述待同步日志发送至所述目标数据库,或者,
在数据来源为其他分片节点迁移至所述分片节点的情况下,不发送所述待同步日志。
9.根据权利要求7所述的方法,
所述广播消息中还携带有所述分片节点待同步日志的时序信息,以使所述分片节点在根据所述标识确定出不发送的其他分片节点迁移至所述分片节点的待同步日志后,根据所述时序信息跳转到所述本地节点创建的待同步日志并发送至所述目标数据库。
10.一种日志同步的装置,应用于权利要求1-2任一所述的日志同步***,所述分布式数据库包括源数据库和目标数据库,所述源数据库包括若干分片节点,所述装置包括:
接收模块,用于接收所述分片节点发送的待同步日志,所述待同步日志中包含有表征数据来源的标识,所述数据来源包括所述分片节点本地创建或由其他分片节点迁移至所述分片节点;
解析模块,用于对接收到的所述待同步日志进行解析,得到所述标识;
广播模块,用于向各个所述分片节点发送广播消息,所述广播消息中包括所述分片节点的地址信息以及所述标识,以使所述分片节点基于所述地址信息接收所述广播消息,并基于所述标识,确定是否发送所述待同步日志。
11.一种电子设备,所述设备包括:
处理器;
用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如权利要求4-9任意一项方法所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令,包括:
该指令被处理器执行时实现权利要求4-9任意一项方法所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210474789.9A CN114817190A (zh) | 2022-04-29 | 2022-04-29 | 日志同步的方法、装置、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210474789.9A CN114817190A (zh) | 2022-04-29 | 2022-04-29 | 日志同步的方法、装置、***、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817190A true CN114817190A (zh) | 2022-07-29 |
Family
ID=82512352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210474789.9A Pending CN114817190A (zh) | 2022-04-29 | 2022-04-29 | 日志同步的方法、装置、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817190A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185787A (zh) * | 2022-09-06 | 2022-10-14 | 北京奥星贝斯科技有限公司 | 处理事务日志的方法及装置 |
CN116232710A (zh) * | 2023-02-17 | 2023-06-06 | 南京中新赛克科技有限责任公司 | 网络流量采集设备日志消息发送、传输方法以及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105122727A (zh) * | 2013-01-11 | 2015-12-02 | Db网络公司 | 用于检测并减轻对结构化数据存储***的威胁的***和方法 |
CN111694800A (zh) * | 2020-04-30 | 2020-09-22 | 武汉达梦数据库有限公司 | 一种提升数据同步性能的方法和数据同步*** |
CN113779038A (zh) * | 2021-09-26 | 2021-12-10 | 大健云仓科技(苏州)有限公司 | 多数据源数据同步方法 |
US20210399820A1 (en) * | 2019-05-30 | 2021-12-23 | Hoptroff London Limited | Systems and methods for watermarking time, place and identity of events |
CN114238499A (zh) * | 2021-12-09 | 2022-03-25 | 树根互联股份有限公司 | 数据同步方法、装置、计算机设备及计算机可读存储介质 |
-
2022
- 2022-04-29 CN CN202210474789.9A patent/CN114817190A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105122727A (zh) * | 2013-01-11 | 2015-12-02 | Db网络公司 | 用于检测并减轻对结构化数据存储***的威胁的***和方法 |
US20210399820A1 (en) * | 2019-05-30 | 2021-12-23 | Hoptroff London Limited | Systems and methods for watermarking time, place and identity of events |
CN111694800A (zh) * | 2020-04-30 | 2020-09-22 | 武汉达梦数据库有限公司 | 一种提升数据同步性能的方法和数据同步*** |
CN113779038A (zh) * | 2021-09-26 | 2021-12-10 | 大健云仓科技(苏州)有限公司 | 多数据源数据同步方法 |
CN114238499A (zh) * | 2021-12-09 | 2022-03-25 | 树根互联股份有限公司 | 数据同步方法、装置、计算机设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
王锦等: "表广播机制在MyCat中的实现", 《计算机技术与发展》, 5 December 2017 (2017-12-05), pages 42 - 46 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185787A (zh) * | 2022-09-06 | 2022-10-14 | 北京奥星贝斯科技有限公司 | 处理事务日志的方法及装置 |
CN115185787B (zh) * | 2022-09-06 | 2022-12-30 | 北京奥星贝斯科技有限公司 | 处理事务日志的方法及装置 |
CN116232710A (zh) * | 2023-02-17 | 2023-06-06 | 南京中新赛克科技有限责任公司 | 网络流量采集设备日志消息发送、传输方法以及*** |
CN116232710B (zh) * | 2023-02-17 | 2023-12-29 | 南京中新赛克科技有限责任公司 | 网络流量采集设备日志消息发送、传输方法以及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109242500B (zh) | 区块链交易有效性验证方法、装置及存储介质 | |
CN114817190A (zh) | 日志同步的方法、装置、***、设备及存储介质 | |
CN110113381B (zh) | 一种区块链中订阅主题的方法及装置 | |
CN110750592B (zh) | 数据同步的方法、装置和终端设备 | |
CN111026982A (zh) | 智能合约处理方法、计算机设备及存储介质 | |
US11212342B2 (en) | Merge trees for collaboration | |
CN113204598B (zh) | 一种数据同步方法、***及存储介质 | |
EP3948568B1 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
CN111651365B (zh) | 接口自动化测试方法及装置 | |
CN105677536A (zh) | 一种任务消息的实现方法及实现该任务消息的任务*** | |
CN107203464B (zh) | 业务问题的定位方法以及装置 | |
CN111083204B (zh) | 文件传输方法、装置及存储介质 | |
CN111444309B (zh) | 用于对图进行学习的*** | |
CN110620722B (zh) | 一种订单处理的方法和装置 | |
CN113760230A (zh) | 业务处理方法和装置 | |
CN116684416A (zh) | 一种网元集群中的镜像分发方法、装置和*** | |
CN115344644A (zh) | 数据同步方法、装置、电子设备和计算机可读存储介质 | |
CN115840766A (zh) | 一种日志数据解析方法、装置、电子设备及存储介质 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN115168434A (zh) | 一种共享存储集群数据库的数据同步方法及设备 | |
CN111831394B (zh) | 采用kubernetes部署有状态pod的方法及装置 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
WO2024065778A1 (en) | Method, apparatus, device, and medium for building knowledge graph and executing workflow | |
CN112187761A (zh) | 一种报文解析、构造方法、装置、计算机设备和存储介质 | |
CN116320095B (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 |