一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据同步分发方法、装置及存储介质与流程

2022-06-01 06:13:21 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,具体而言,涉及一种数据同步分发方法、装置及存储介质。


背景技术:

2.随着科学技术的进步和智能设备的不断发展,数据的种类与数量大幅提升,因此,各个企业或机构都需要对数据进行快速且准确的处理。
3.现有的数据库同步方式不能保证业务数据按照预定的顺序,且高并发执行;若采用单线程来保证数据的有序性,则限制了数据的同步速率。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种数据同步分发方法、装置及存储介质,以至少解决现有技术中数据分发方法无法在高并发的情况下保证数据顺序的技术问题。
6.根据本发明实施例的一个方面,提供了一种数据同步分发方法,包括:采用开源框架同步从关系型数据库中取出待处理数据;将上述待处理数据进行分组处理,得到待处理数据组;采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组;将上述合并数据组进行同步分发处理。
7.在一个示例性实施例中,上述将上述待处理数据进行分组处理,得到待处理数据组,包括:根据上述待处理数据的主键以及上述待处理数据的取出顺序进行分组处理,得到待处理数据组,其中,上述主键用于确定一条待处理数据,上述取出顺序用于确定上述待处理数据从关系型数据库中取出的顺序。
8.在一个示例性实施例中,在上述将上述待处理数据进行分组处理,得到待处理数据组之后,上述方法还包括:根据上述待处理数据的权重值配置存储顺序;基于上述存储顺序,将上述待处理数据组存储至键值型数据库。
9.在一个示例性实施例中,在上述采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组之前,上述方法还包括:采用上述多线程从上述键值型数据库中异步取出存入的上述待处理数据组。
10.在一个示例性实施例中,上述采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组,包括:将操作为删除的上述待处理数据进行合并,得到第一合并数据;将操作为更新的上述待处理数据进行合并,得到第二合并数据;根据上述第一合并数据和上述第二合并数据,构建上述合并数据组。
11.在一个示例性实施例中,根据上述第一合并数据中的操作为删除的上述待处理数据的权重值确定上述第一合并数据的权重值;根据上述第二合并数据中的操作为更新的上述待处理数据的权重值确定上述第二合并数据的权重值;按照上述第一合并数据的权重值和上述第二合并数据的权重值构建上述合并数据组,并确定上述合并数据组的权重值。
12.在一个示例性实施例中,上述将上述合并数据组进行同步分发处理,包括:按照多个上述合并数据组的上述权重值的大小进行同步分发处理;若存在相同权重值的上述合并数据组,则将相同权重值的上述合并数据组进行并发处理。
13.根据本发明实施例的另一方面,还提供了一种数据同步分发装置,包括:获取模块,用于采用开源框架同步从关系型数据库中取出待处理数据;分组模块,用于将上述待处理数据进行分组处理,得到待处理数据组;合并模块,用于采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组;分发模块,用于将上述合并数据组进行同步分发处理。
14.根据本发明实施例的另一方面,还提供了一种非易失性存储介质,上述非易失性存储介质存储有多条指令,上述指令适于由处理器加载并执行任意一项上述的数据同步分发方法。
15.根据本发明实施例的另一方面,还提供了一种处理器,上述处理器用于运行程序,其中,上述程序被设置为运行时执行任意一项上述的数据同步分发方法。
16.根据本发明实施例的另一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的数据同步分发方法。
17.在本发明实施例中,通过采用开源框架同步从关系型数据库中取出待处理数据;将上述待处理数据进行分组处理,得到待处理数据组;采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组;将上述合并数据组进行同步分发处理,达到了通过组内排序思想、数据合并理念,大大减少同步数据量的目的,从而实现了保证数据顺序性的同时,在高并发情况下进行数据分发的技术效果,进而解决了现有技术中数据分发方法无法在高并发的情况下保证数据顺序的技术问题。
附图说明
18.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
19.图1是本技术实施例的一种数据同步分发方法的计算机终端的硬件结构框图;
20.图2是根据本技术实施例的一种数据同步分发方法的流程图;
21.图3是根据本技术实施例的一种数据同步分发流程示意图;
22.图4是根据本技术实施例的一种数据同步分发装置的结构框图。
具体实施方式
23.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
24.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
25.本技术实施例所提供的方法实施例可以在计算机终端、计算机终端或者类似的运算模块中执行。以运行在计算机终端上为例,图1是本技术实施例的一种数据同步分发方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理模块)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
26.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本技术实施例中的数据同步分发方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储模块、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
27.传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(network interface control ler,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
28.在本实施例中提供了一种数据同步分发方法,图2是根据本技术实施例的一种数据同步分发方法的流程图,该流程包括如下步骤:
29.步骤s202,采用开源框架同步从关系型数据库中取出待处理数据;
30.步骤s204,将上述待处理数据进行分组处理,得到待处理数据组;
31.步骤s206,采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组;
32.步骤s208,将上述合并数据组进行同步分发处理。
33.通过上述步骤,采用开源框架同步从关系型数据库中取出待处理数据,其中,上述开源框架为采用编程语言java开发的canal开源框架;将上述待处理数据进行分组处理,得到待处理数据组;采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组;将上述合并数据组进行同步分发处理。
34.需要说明的是,上述从关系型数据库中取出的待处理数据是有序的。
35.还需要说明的是,开源框架canal是采用java开发且支持mysql的binlog解析,并
基于数据库增量日志解析,提供增量数据订阅和/或消费的中间件;mysql是一个关系型数据库管理系统,是最常用的关系型数据库管理系统之一。
36.在本技术实施例中,如图3所示的数据同步分发流程示意图,开源框架canal同步从mysql取出数据,通过程序根据数据的主键以及顺序进行分组,分组后组内的数据也是有序的;采用多线程对每组数据进行合并处理,处理后的数据根据权重、业务需求等进行数据分发,并将分发后的数据保存到关系型数据库或非关系型数据库中。
37.通过本技术实施例,在高并发的情况下,一定程度上保证数据顺序性。采用redis作为数据缓存,可以处理大型并发程序,通过组内排序思想、数据合并理念,可以大大减少同步的数据量,并保证了数据同步的有序性。
38.在一个示例性实施例中,上述将上述待处理数据进行分组处理,得到待处理数据组,包括:
39.步骤s302,根据上述待处理数据的主键以及上述待处理数据的取出顺序进行分组处理,得到待处理数据组,其中,上述主键用于确定一条待处理数据,上述取出顺序用于确定上述待处理数据从关系型数据库中取出的顺序。
40.在本技术实施例中,数据分组程序根据数据的主键以及数据取出的排序进行分组,分组后,组内的数据也是有序的。
41.需要说明的是,上述主键用于确定一条待处理数据,上述顺序用于确定上述待处理数据的取出顺序。
42.在一个示例性实施例中,在上述将上述待处理数据进行分组处理,得到待处理数据组之后,上述方法还包括:
43.步骤s402,根据上述待处理数据的权重值配置存储顺序;
44.步骤s404,并基于上述存储顺序,将上述待处理数据组存储至键值型数据库。
45.在本技术实施例中,将分组处理后的待处理数据组存入redis数据库中,并根据上述待处理数据的权重值,将上述待处理数据组按照权重值的大小存储至键值型数据库。
46.作为一种可选的实施例,用户也可以按照数据的表名自定义排序,例如:a表要执行于b表前,则可以将a表数据组的权重值定义的较大,将b表数据组的权重值定义的较小。
47.在一个示例性实施例中,在上述采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组之前,上述方法还包括:
48.步骤s502,采用上述多线程从上述键值型数据库中异步取出存入的上述待处理数据组。
49.在本技术实施例中,采用多线程的方式异步从键值型数据库redis中取出存入的待处理数据组,每个线程可以取出一个或者多个待处理数据组。
50.在一个示例性实施例中,上述采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组,包括:
51.步骤s602,将操作为删除的上述待处理数据进行合并,得到第一合并数据;
52.步骤s604,将操作为更新的上述待处理数据进行合并,得到第二合并数据;
53.步骤s606,根据上述第一合并数据和上述第二合并数据,构建上述合并数据组。
54.在本技术实施例中,将待处理数据组中最终操作为相同操作的数据进行合并处理,合并后的待处理数据组即为上述合并数据组。
55.可选的,多线程对每组数据进行合并处理,例如:部分数据最后的操作是delete,则将该部分数据进行合并;部分数据最后的操作是update,则将该部分数据进行合并,合并后的数据也可进行业务上的处理。
56.作为一种可选的实施例,根据上述第一合并数据中的操作为删除的上述待处理数据的权重值确定上述第一合并数据的权重值;根据上述第二合并数据中的操作为更新的上述待处理数据的权重值确定上述第二合并数据的权重值;按照上述第一合并数据的权重值和上述第二合并数据的权重值构建上述合并数据组,并确定上述合并数据组的权重值。
57.需要说明的是,在合并阶段中,数据也是有序的,且可以进行高并发处理。
58.在一个示例性实施例中,上述将上述合并数据组进行同步分发处理,包括:
59.步骤s702,按照多个上述合并数据组的上述权重值的大小进行同步分发处理;
60.步骤s704,若存在相同权重值的上述合并数据组,则将相同权重值的上述合并数据组进行并发处理。
61.在本技术实施例中,处理后的数据根据权重值以及业务需求进行数据分发(若权重值相同,则可以并发进行分发处理;权重值不一样则按照权重去顺序进行数据分发处理),分发后的数据可以保存到关系型数据库或者非关系型数据库中。
62.通过上述步骤,可以实现在高并发的情况下,一定程度上保证数据顺序性,可以处理大型并发程序,通过组内排序思想、数据合并理念,可以大大减少同步的数据量。
63.图4是根据本技术实施例的一种数据同步分发装置的结构框图;如图4所示,包括:获取模块40、分组模块42、合并模块44和分发模块46,其中:
64.获取模块40,用于采用开源框架同步从关系型数据库中取出待处理数据;
65.分组模块42,用于将上述待处理数据进行分组处理,得到待处理数据组;
66.合并模块44,用于采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组;
67.分发模块46,用于将上述合并数据组进行同步分发处理。
68.需要说明的是,本技术中的图4中所示数据同步分发装置的具体结构仅是示意,在具体应用时,本技术中的数据同步分发模块可以比图4所示的数据同步分发装置具有多或少的结构。
69.此处需要说明的是,上述数据同步分发装置对应于实施例中的步骤s202至步骤s208,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述单元作为模块的一部分可以运行在计算机终端中。
70.此外,仍需要说明的是,本实施例的可选或优选实施方式可以具体实施方式的相关描述,此处不再赘述。
71.上述的数据同步分发模块还可以包括处理器和存储器,上述数据同步分发模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
72.处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
73.根据本技术实施例,还提供了一种非易失性存储介质的实施例。可选的,在本实施例中,上述非易失性存储介质包括存储的程序,其中,在上述程序运行时控制上述非易失性存储介质所在设备执行上述任意一种数据同步分发方法。
74.可选的,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述非易失性存储介质包括存储的程序。
75.可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:采用开源框架同步从关系型数据库中取出待处理数据;将上述待处理数据进行分组处理,得到待处理数据组;采用多线程对上述待处理数据组中的上述待处理数据进行合并处理,得到合并数据组;将上述合并数据组进行同步分发处理。
76.可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:根据上述待处理数据的主键以及上述待处理数据的取出顺序进行分组处理,得到待处理数据组,其中,上述主键用于确定一条待处理数据,上述取出顺序用于确定上述待处理数据从关系型数据库中取出的顺序。
77.可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:根据上述待处理数据的权重值配置存储顺序;并基于上述存储顺序,将上述待处理数据组存储至键值型数据库。
78.可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:采用上述多线程从上述键值型数据库中异步取出存入的上述待处理数据组。
79.可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:将操作为删除的上述待处理数据进行合并,得到第一合并数据;将操作为更新的上述待处理数据进行合并,得到第二合并数据;根据上述第一合并数据和上述第二合并数据,构建上述合并数据组。
80.可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:根据上述第一合并数据中的操作为删除的上述待处理数据的权重值确定上述第一合并数据的权重值;根据上述第二合并数据中的操作为更新的上述待处理数据的权重值确定上述第二合并数据的权重值;按照上述第一合并数据的权重值和上述第二合并数据的权重值构建上述合并数据组,并确定上述合并数据组的权重值。
81.可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:按照多个上述合并数据组的上述权重值的大小进行同步分发处理;若存在相同权重值的上述合并数据组,则将相同权重值的上述合并数据组进行并发处理。
82.根据本技术实施例,还提供了一种处理器的实施例。可选的,在本实施例中,上述处理器用于运行程序,其中,上述程序运行时执行上述任意一种数据同步分发方法。
83.根据本技术实施例,还提供了一种电子设备的实施例,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行上述任意一种的数据同步分发方法。
84.根据本技术实施例,还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有上述任意一种的数据同步分发方法步骤的程序。
85.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
86.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
87.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的模块实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
88.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
89.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
90.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的非易失性存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
91.以上上述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献