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

数据同步处理方法及其装置、设备、介质与流程

2022-06-22 14:08:48 来源:中国专利 TAG:


1.本技术涉及服务器领域,尤其涉及一种数据同步处理方法,此外还涉及该方法相应的装置、设备以及非易失性存储介质。


背景技术:

2.现有的互联网平台通常会使用分布式的代理数据库存储平台中的数据,例如,互联网直播平台会将平台中的直播间、主播用户及观众用户的数据分布式存储至各代理数据库中,以保证平台中的各类型用户及管理用户快速地获取代理数据库中的相关数据使用直播平台所提供各类型的网络直播在线服务,现有的互联网平台一般基于kafka思想构建代分布式的代理数据库,以使其分布式的代理数据库具有高吞吐量、持久化数据存储及系统易于扩展等kafka所具备的优势。
3.现有的互联网平台为基于kafka所构建的分布式代理数据库系统中,任一代理服务器的添加或删除主题(topic)或对主题分区结构进行修改时,将触发再平衡机制,以重新分配为各主题负责消费及生产的同步实施对象所消费的主题,当然,在启动同步实施对象或任一同步实施对象停止运行时,也将进行再平衡,但在执行再平衡时,通常需重新分配代理数据库中的所有主题的消费对象,即为所有负责代理数据库的同步实施对象重新分配其所需消费的主题,即执行再平衡的时间复杂度较高,且再执行再平衡的代理数据库将停止数据处理,影响了分布式代理数据库系统的整体的数据处理效率。
4.另外,平台若执行需全量数据的在线服务时,需要消费各代理数据库的全量数据以进行数据汇总,且应用该在线服务的用户则一般需要进行多写以生产自己的数据,则使得代理数据库中消费业务与生产业务的耦合性较高,不方便系统拓展,且使得分布式代理数据库系统不易维护。
5.鉴于现有的基于kakfa所构建的分布式代理数据库系统所存在的问题,本技术人出于解决该问题的考虑做出相应的探索。


技术实现要素:

6.本技术的目的在于满足用户需求而提供一种数据同步处理方法,此外还涉及该方法相应的装置、设备、非易失性存储介质以及计算机程序产品。
7.为实现本技术的目的,采用如下技术方案:
8.适应本技术的目的而提出的一种数据同步处理方法,包括如下步骤:
9.响应本地代理数据库中目标发布主题的数据更新事件,根据主题分组配置,确定目标发布主题所属的目标主题组;
10.根据同步实施分组配置,确定与所述目标主题组相关联的同步实施组,以查询出该同步实施组中负责同步所述目标发布主题的目标同步实施对象集合;
11.驱动所述目标同步实施对象集合中各同步实施对象分别从所述目标分布主题中相应的分区获取更新数据,以便该些同步实施对象将其分区获取的更新数据对应更新至本
地及远程代理数据库中的目标订阅主题。
12.进一步的实施例中,所述响应本地代理数据库中目标发布主题的数据更新事件的步骤之前,包括如下由服务器执行的步骤:
13.响应由管理端推送的分布式主题创建指令,获取该创建指令中包含的主题名称;
14.在本地代理数据库中创建以所述主题名称命名的本地发布主题及本地订阅主题;
15.向所有远程代理数据库推送主题创建指令,以控制该些代理数据库创建与所述本地发布主题及本地订阅主题同名且分区结构相同的发布主题及订阅主题。
16.进一步的实施例中,所述以便该目标同步实施群将所述更新数据对应更新至本地及远程代理数据库中的目标订阅主题的步骤中,包括如下由同步模块所执行的步骤:
17.响应由服务器推送的指向目标发布主题的更新指令,根据各同步实施对象各自对应的消费分区标识,确定所述目标发布主题中该些消费分区标识各自对应的消费分区;
18.驱动各所述同步实施对象分别从其对应的消费分区中获取更新数据,以便该些同步实施对象将其更新数据更新至本地代理数据库或远程代理数据库的目标订阅主题中对应的生产分区。
19.进一步的实施例中,所述以便该些同步实施对象将其更新数据更新至本地代理数据库或远程代理数据库的目标订阅主题中对应的生产分区,包括如下由同步实施对象所执行的步骤:
20.驱动自身包含的消费对象从消费分区中获取更新数据;
21.确定自身包含的一个或多个生产对象各自所对应的数据库标识,以驱动该些生产对象将所述更新数据分别更新至其数据库标识所对应的代理数据库的目标订阅主题中的生产分区。
22.进一步的实施例中,所述以便该些同步实施对象将其分区获取的更新数据对应更新至本地及远程代理数据库中的目标订阅主题的步骤之后,包括如下由同步实施对象执行的步骤:
23.响应作用于本地代理数据库中关联的目标主题组的修改事件,调用当前所处的同步实施对象组所对应的对象信息列表,所述对象信息列表中存储着正在运行的同步实施对象组中各同步实施对象的对象信息,且该些对象信息根据其所属的同步实施对象的对象名称进行排序;
24.调用预设的消费再平衡规则,以根据所述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,获取对应一个或多个目标主题的消费分区标识,以根据该分区标识确定该些目标主题中需进行消费的消费分区。
25.进一步的实施例中,所述以便该些同步实施对象将其分区获取的更新数据对应更新至本地及远程代理数据库中的目标订阅主题的步骤之后,包括如下由同步实施对象执行的步骤:
26.根据预设的同步协议,监听当前所处同步实施对象组的对象运行事件;
27.当监听到所述同步实施对象组中任一同步实施对象的运行状态表征为停止运行时,将调用所述同步实施对象组所对应的对象信息列表,且确定所述同步实施对象相关联的目标主题组,所述对象信息列表中存储着正在运行的同步实施对象组中各同步实施对象的对象信息,且该些对象信息根据其所属的同步实施对象的对象名称进行排序;
28.监听到作用于所述同步实施对象组的新同步实施对象启动事件时,将调用所述对象信息列表,且确定所述同步实施对象相关联的目标主题组;
29.调用预设的消费再平衡规则,以根据所述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,获取对应一个或多个目标主题的消费分区标识,以根据该分区标识确定该些目标主题中需进行消费的消费分区。
30.较佳的实施例中,所述调用预设的消费再平衡规则,以根据所述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,获取对应一个或多个目标主题的消费分区标识,以根据该分区标识确定该些目标主题中需进行消费的消费分区的步骤中,包括如下由同步实施对象执行的步骤:
31.对所述目标主题组中任一主题的主题信息进行哈希计算,获取该主题所对应的哈希值;
32.根据所述对象列表中存在的对象信息的信息数量,对所述哈希值与信息数量进行余值运算,获取相对应的余值;
33.根据所述主题的主题信息中包含的分区数及所述余值,获取该主题对应的消费对象范围,以判断当前同步实施对象在所述对象信息列表中的排序位置是否处于所述消费对象范围,若处于,则所述排序位置在所述消费对象范围中所处于的位置为当前同步实施对象作用于所述主题的消费分区标识。
34.适应本技术的目的而提出的一种数据同步处理装置,其包括:
35.目标主题组确定模块,用于响应本地代理数据库中目标发布主题的数据更新事件,根据主题分组配置,确定目标发布主题所属的目标主题组;
36.目标对象群确定模块,用于根据同步实施分组配置,确定与所述目标主题组相关联的同步实施组,以查询出该同步实施组中负责同步所述目标发布主题的目标同步实施对象集合;
37.订阅主题更新模块,用于驱动所述目标同步实施对象集合中各同步实施对象分别从所述目标分布主题中相应的分区获取更新数据,以便该些同步实施对象将其分区获取的更新数据对应更新至本地及远程代理数据库中的目标订阅主题。
38.进一步的实施例中,所述订阅主题更新模块包括:
39.消费分区确定子模块,用于响应由服务器推送的指向目标发布主题的更新指令,根据各同步实施对象各自对应的消费分区标识,确定所述目标发布主题中该些消费分区标识各自对应的消费分区;
40.生产分区更新子模块,用于驱动各所述同步实施对象分别从其对应的消费分区中获取更新数据,以便该些同步实施对象将其更新数据更新至本地代理数据库或远程代理数据库的目标订阅主题中对应的生产分区。
41.为解决上述技术问题本技术实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述数据同步处理方法的步骤。
42.为解决上述技术问题本技术实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述数据同步处理方法的步骤。
43.为解决上述技术问题本技术实施例还提供一种计算机程序产品,包括计算机程序及计算机指令,该计算机程序及计算机指令被处理器执行时,使得所述处理器执行上述所述数据同步处理方法的步骤。
44.相对于现有技术,本技术的优势如下:
45.本技术对基于kafka所构建的分布式代理数据库中的各主题及负责进行数据同步的同步实施对象进行分组处理,并将主题组与同步实施对象组相关联,使得同步实施对象仅对其关联的主题组中主题进行数据同步处理,且同步实施对象一般仅针对主题中的一个分区中存储的数据进行同步处理,使分布式代理数据库系统进行同步数据达成分类的效果,且当代理数据库的发生主题修改及发生同步实施对象启停及新对象运行时,可以组为单位执行再平衡处理,而不需对代理数据库中所有的主题及同步实施对象进行再平衡,以减少执行再平衡的时间复杂度,降低执行再平衡时对分布式代理数据库系统整体的数据处理效率的影响。
46.其次,本技术以订阅发布机制构建代理数据库中的主题,各代理数据库中存储着与其他代理数据库相关联的发布主题及订阅主题,当某代理数据库的任一发布主题产生新的数据时,负责为该发布主题进行数据同步的同步实施对象集合将新生产的数据对应更新至本地及所有远程代理数据库中,以保证各代理数据库中存储着分布式代理数据库系统中的全量数据,且通过订阅发布机制,将分布式代理数据库系统中的消费业务及生产业务相解耦,提升了系统的扩展性,且防止消费业务及生产业务的相互影响。
47.另外,本技术的各同步实施对象将各自进行再平衡业务,而不以中心进行再平衡处理,防止因中心方式崩溃造成无法执行再平衡业务,导致数据混乱,且同步实施对象执行再平衡时,仅需根据同组中各同步实施对象的排序及主题的特征码进行哈希运算,提升同步实施对象执行再平衡的处理效率。
附图说明
48.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
49.图1为实施本技术的技术方案相关的一种典型的网络部署架构示意图;
50.图2为本技术的数据同步处理方法的典型实施例的流程示意图;
51.图3为本技术关于创建发布主题及订阅主题的具体实施方式所形成的流程示意图;
52.图4为本技术关于同步实施对象集合对应更新目标订阅主题的具体实施方式所形成的流程示意图;
53.图5为本技术关于同步实施对象中的消费对象及生产对象对应消费及更新的具体实施方式所形成的流程示意图;
54.图6为本技术关于同步实施对象响应关联的主题组中发生修改事件而执行消费再平衡的具体实施方式所形成的流程示意图;
55.图7为本技术关于同步实施对象监听所处的同步实施对象组而执行消费再平衡的具体实施方式所形成的流程示意图;
56.图8为本技术关于同步实施对象执行消费再平衡的具体实施方式所形成的流程示
意图;
57.图9为本技术的数据同步处理装置的典型实施例的原理框图;
58.图10为本技术一个实施例的计算机设备的基本结构框图。
具体实施方式
59.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
60.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
61.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
62.本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personal communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;传统膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的传统膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
63.本技术所称的“服务器”、“客户端”、“工作节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入
输出设备交互,借此完成特定的功能。
64.需要指出的是,本技术所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本技术的网络部署方式的实施方式。
65.请参阅图1,本技术相关技术方案实施时所需的硬件基础可按图中所示的架构进行部署。本技术所称服务器80部署在云端,作为一个在线服务器,其可以负责进一步连接起相关数据服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备例如图中所示的智能手机81和个人计算机82或者第三方服务器(未图示)提供服务。所述的智能手机和个人计算机均可通过公知的网络接入方式接入互联网,与云端的服务器80建立数据通信链路,以便运行所述服务器所提供的服务相关的终端应用程序。
66.对于服务器而言,所述的应用程序通常会被构建为服务进程,开放相应的程序接口,供各种终端设备上运行的应用程序进行远程调用,本技术中适于运行于服务器的相关技术方案,便可以此种方式实现于服务器中。
67.所述的应用程序,是指运行于服务器或终端设备上的应用程序,这一应用程序采用编程的方式实现了本技术的相关技术方案,其程序代码可被以计算机可执行指令的形式保存于计算机能识别的非易失性存储介质中,并被中央处理器调入内存中运行,通过该应用程序在计算机的运行而构造出本技术的相关装置。
68.对于服务器而言,所述的应用程序通常会被构建为服务进程,开放相应的程序接口,供各种终端设备上运行的应用程序进行远程调用,本技术中适于运行于服务器的相关技术方案,便可以此种方式实现于服务器中。
69.本领域技术人员对此应当知晓:本技术的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本技术所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
70.请参阅图2,本技术的一种数据同步处理方法,在其典型实施例中,其包括如下步骤:
71.步骤s11,响应本地代理数据库中目标发布主题的数据更新事件,根据主题分组配置,确定目标发布主题所属的目标主题组:
72.服务器响应所述本地代理数据库中所述目标发布主题的数据更新事件,以根据所述主题分组配置,确定该目标发布主题所对应的目标主题组。
73.所述的代理数据库一般基于kafka技术所构建的分布式代理数据库,而本地代理数据库即为处于本地服务器中的代理数据库,相对应的,处于其他服务器中具有的代理服务器一般称作远程代理数据库。
74.所述的代理数据库中存储着多个发布主题及订阅主题,所述的发布主题中存储着本地所生产的数据,该些数据分别存储值发布主题的各分区中,而订阅主题一般为与远程代理数据库及本地代理数据库中存储的发布主题相关联,订阅主题与其相关联的发布主题
的分区结构相同,且订阅主题中存储着与其相关联的所有发布主题中的数据。
75.所述的主题一般是指kafka中的topic,且主题中具有一个或多个分区,分区即为kafka中的partiton,而主题中各分区存储着相应的数据。
76.可以理解,发布主题与订阅主题之间为发布订阅关系,通过后续步骤中的同步实施对象负责将发布主题中生产的数据同步更新至对应的订阅主题中,具体的,以本地代理数据库及远程代理数据库为例,本地代理数据库与远程代理数据库中存储的发布主题及订阅主题的数据及主题的分区结构皆相同,及若本地代理数据库中存在发布主题a相关联的订阅主题a,则远程代理数据库中也存在与本地代理数据库名称及分区结构相同的发布主题a及订阅主题a,但本地代理数据库或远程代理数据库中的发布主题a进行数据更新时,则将该发布主题a中的更新数据对应更新至本地代理数据库及远程代理数据库双方的订阅主题a,以保证订阅主题a中存储着与其相关联的本地及远程代理数据库中发布主题a中存储的全局数据。
77.当本地代理数据库创建新的发布主题及相关联的订阅主题后,服务器将向所有远程代理数据库推送主题创建指令,以便该些远程代理数据库所属的服务器响应该主题创建指令,在远程代理数据库中创建与本地代理数据库中新创建的发布主题及订阅主题的主题同名且分区结构相同的发布主题及订阅主题。
78.所述的主题分组配置中配置本地代理数据库中各主题所属的主题组,该主题分组配置一般以表的形式存储着由主题标识及主题组名称所构成的映射关系数据,服务器通过所述目标发布主题相对应的目标主题标识,在所述主题分组配置中查询该目标主题标识对应存储的目标主题组名称,以确定所述目标发布主题所属的目标主题组。
79.除了对代理数据库中各主题进行分组处理外,也将对服务器中的各同步实施对象进行分组处理,以便通过将主题组与同步实施对象组相关联,将而将主题组中的主题交由其相关联的同步实施对象组负责数据同步,以防止基于kafka所构建的代理数据库中进行再平衡(rebalance)时,需对代理数据库中存储的所有主题及同步实施对象进行再平衡操作,通过分组处理,当任一主题组中的主题发生修改,如添加或删除主题及修改主题的分区结构等,或其相关联的同步实施对象组发生同步实施对象启停时,即需对双方进行再平衡操作即可,而不需要对代理数据库中所有主题及同步实施对象进行再平衡操作,以提升针对代理数据库的再平衡的执行效率,且减轻服务器的计算压力。
80.步骤s12,根据同步实施分组配置,确定与所述目标主题组相关联的同步实施组,以查询出该同步实施组中负责同步所述目标发布主题的目标同步实施对象集合:
81.服务器确定出所述目标发布主题所属的目标主题组后,将根据所述本地同步实施配置,确定与所述目标主题相关联的同步实施组,进而从该同步实施组中查询与负责为所述目标发布主题进行数据同步的目标同步实施对象集合,实施同步实施对象集合由一个或多个同步实施对象所构成。
82.所述的同步实施分组配置中配置了负责为本地数据库中各主题组与为其进行数据同步的各同步实施组,所述同步实施分组配置可以表的存储结构记录各主题组与其对应的同步实施组,各同步实施组的组名与其相关联的主题组的组名对应存储至表中,当服务器需确定任一主题组相关联的同步实施组时,将根据该主题组的组名,从所述同步实施分组配置中查询出与该主题组组名对应存储的同步实施组组名,以确定出与该主题组相关联
的同步实施组。
83.服务器确定出与所述目标主题组相关联的同步实施组后,将查询出该同步实施组负责同步所述目标发布主题的一个或多个同步实施对象,该些同步实施对象组成为所述目标同步实施对象集合,具体的,所述同步实施对象一般具有其所负责同步的发布主题的主题标识,服务器通过查询出所述同步实施组中具有与所述目标发布主题相对应的主题标识,以将该些同步实施对象确定为负责为所述目标发布主题负责同步数据的同步实施对象。
84.关于负责为发布主题负责进行数据同步的同步实施对象的数量,一般根据发布主题所具有的分区数量所决定,即一个同步实施对象一般负责为其所对应的发布主题中的一个分区进行数据同步,以为发布主题的同步数据实现分流同步处理。
85.所述的同步实施对象一般由一个消费对象及一个或多个生产对象所构成,消费对象负责消费其所对应的发布主题中相应的一个目标分区中存储的更新数据,而生产对象则负责将所述消费对象消费获取的更新数据更新至对应的远程代理数据库中与所述发布主题相关联的订阅主题中与目标分区相关联的分区中,同步实施对象为发布主题进行数据同步的具体实施方式请参考后续步骤,本步骤恕不赘述。
86.步骤s13,驱动所述目标同步实施对象集合中各同步实施对象分别从所述目标分布主题中相应的分区获取更新数据,以便该些同步实施对象将其分区获取的更新数据对应更新至本地及远程代理数据库中的目标订阅主题:
87.服务器确定出负责为所述目标发布主题进行数据同步的所述目标同步实施对象集合后,将驱动该目标同步实施对象集合中包含的各同步实施对象对所述目标发布主题进行数据同步。
88.负责驱动所述目标同步实施对象集合的同步模块接收由服务器推送的指向所述目标发布主题的更新指令,以根据该目标同步实施对象集合中各同步实施对象各自对应的消费分区标识,确定所述目标发布主题中该些消费分区标识各自所对应的消费分区,进而驱动各所述同步实施对象分别从该些消费分区获取更新数据,以便该些同步实施对象将其所获取的更新数据更新至本地代理数据库或远程代理数据库的目标订阅主题中对应的生产分区;当然,服务器也可直接驱动目标同步实施对象集中各同步实施对象执行作用于所述目标发布主题的数据同步处理。
89.关于同步实施对象将所述目标发布主题中对应消费分区的更新数据更新至本地或远程代理数据库中的目标订阅主题中对应的生产分区的具体实施方式为:同步实施对象中消费对象从其消费分区标识所对应的消费分区中消费获取更新数据,进而驱使该同步实施对象中包含的一个或多个生产对象将所述消费对象获取的更新数据更新至其所对应的本地代理数据库及远程代理数据库中的目标订阅主题中的对应生产分区,例如,当某一生产对象获取由所述消费对象从消费分群标识所对应的消费分区中获取的更新数据后,该生产对象根据其对应的数据库标识,确定与该数据库标识所对应的代理数据库,以查询去该代理数据库中包含的与所述目标发布主题的主题名称相同的目标订阅主题,将所述更新数据存储至该目标订阅主题中与所述消费分区标识相对应的生产分区中。
90.通过本方法的典型实施方式可知,本方法对基于kafka所构建的分布式代理数据库中的各主题及负责进行数据同步的同步实施对象进行分组处理,并将主题组与同步实施
对象组相关联,使得同步实施对象仅对其关联的主题组中主题进行数据同步处理,且同步实施对象一般仅针对主题中的一个分区中存储的数据进行同步处理,使分布式代理数据库系统进行同步数据达成分类的效果,且当代理数据库的发生主题修改及发生同步实施对象启停及新对象运行时,可以组为单位执行再平衡处理,而不需对代理数据库中所有的主题及同步实施对象进行再平衡,以减少执行再平衡的时间复杂度,降低执行再平衡时对分布式代理数据库系统整体的数据处理效率的影响。
91.其次,本方法以订阅发布机制构建代理数据库中的主题,各代理数据库中存储着与其他代理数据库相关联的发布主题及订阅主题,当某代理数据库的任一发布主题产生新的数据时,负责为该发布主题进行数据同步的同步实施对象集合将新生产的数据对应更新至本地及所有远程代理数据库中,以保证各代理数据库中存储着分布式代理数据库系统中的全量数据,且通过订阅发布机制,将分布式代理数据库系统中的消费业务及生产业务相解耦,提升了系统的扩展性,且防止消费业务及生产业务的相互影响。
92.以上的典型实施例及其变化实施例充分揭示了本技术的数据同步处理方法的实施方案,但是,仍可通过对一些技术手段的变换和扩增而演绎出该方法的多种变化实施例,如下概要说明其他实施例:
93.一种实施例中,请参考图3,所述响应本地代理数据库中目标发布主题的数据更新事件的步骤之前,包括如下由服务器执行的步骤:
94.步骤s08,响应由管理端推送的分布式主题创建指令,获取该创建指令中包含的主题名称:
95.服务器接收由所述管理端推送的所述分布式主题指令,以响应该创建指令,获取该创建指令中包含的所述主题名称。
96.步骤s09,在本地代理数据库中创建以所述主题名称命名的本地发布主题及本地订阅主题:
97.服务器获取所述主题名称后,在本地代理数据库中创建以该主题名称命名的所述本地发布主题及本地订阅主题,该本地发布主题与本地订阅主题的分区结构相同。
98.步骤s10,向所有远程代理数据库推送主题创建指令,以控制该些代理数据库创建与所述本地发布主题及本地订阅主题同名且分区结构相同的发布主题及订阅主题:
99.服务器向与其相关联的所有远程代理数据库推送所述主题创建指令,以便具有所述远程代理数据库的服务器响应该主题创建指令,在所述远程代理数据库中创建以所述本地发布主题及本地订阅主题的主题名称命名的发布主题及订阅主题,且该发布主题及订阅主题与所述本地发布主题及本地订阅主题的分区结构相同。
100.本实施例中,任一代理数据库创建新的发布主题及订阅主题时,将向其他与其相关联的代理数据库推送主题创建指令,以控制该些代理数据库创建名称及分区结构相同的发布主题及订阅主题,以便各代理数据库可获取其他代理数据库的发布主题中的全局数据。
101.一种实施例中,请参考图4,所述以便该目标同步实施群将所述更新数据对应更新至本地及远程代理数据库中的目标订阅主题的步骤中,包括如下由同步模块所执行的步骤:
102.步骤s131,响应由服务器推送的指向目标发布主题的更新指令,根据各同步实施
对象各自对应的消费分区标识,确定所述目标发布主题中该些消费分区标识各自对应的消费分区;
103.同步模块响应由服务器推送的指向所述目标发布主题的更新指令,以驱动所述目标同步实施对象中各同步实施对象根据各自对应的消费分区标识,确定其在所述目标发布主题中与与所述消费分区标识对应的消费分区。
104.步骤s132,驱动各所述同步实施对象分别从其对应的消费分区中获取更新数据,以便该些同步实施对象将其更新数据更新至本地代理数据库或远程代理数据库的目标订阅主题中对应的生产分区:
105.各所述同步实施对象确定其在所述发布主题中发布对应的消费分区中,各自将从其对应的消费分区中获取更新数据,进而该些同步实施对象将各自获取的更新数据更新至本地代理数据库或远程代理数据库中的目标订阅主题中对应的生产分区。
106.本实施例中,同步模块负责驱动目标同步实施对象集合中各同步实施对象执行作用于发布主题的数据同步处理,以集合管理服务器中各同步实施对象。
107.一种实施例中,请参考图5,所述以便该些同步实施对象将其更新数据更新至本地代理数据库或远程代理数据库的目标订阅主题中对应的生产分区,包括如下由同步实施对象所执行的步骤:
108.步骤s1321,驱动自身包含的消费对象从消费分区中获取更新数据:
109.当前同步实施对象驱动自身包含的消费对象从目标发布主题中消费分区标识所对应的消费分区中获取更新数据。
110.步骤s1322,确定自身包含的一个或多个生产对象各自所对应的数据库标识,以驱动该些生产对象将所述更新数据分别更新至其数据库标识所对应的代理数据库的目标订阅主题中的生产分区:
111.当前同步实施对象的所述消费对象获取更新数据后,当前同步实施对象将驱动自身包含的一个或多个生产对象根据各自对应的数据库标识,将查询出其数据库标识所对应的代理数据库中与目标发布主题具有相同主题名称的目标订阅主题,以将所述更新数据更新至该目标订阅主题中与所述消费分区相对应的生产分区。
112.本实施例中,同步实施对象提供消费对象消费获取更新数据,进而驱动生产对象将更新数据更新至对应的订阅主题中,以形成发布主题与订阅主题之间的数据同步。
113.一种实施例中,请参考图6,所述以便该些同步实施对象将其分区获取的更新数据对应更新至本地及远程代理数据库中的目标订阅主题的步骤之后,包括如下由同步实施对象执行的步骤:
114.步骤s14,响应作用于本地代理数据库中关联的目标主题组的修改事件,调用当前所处的同步实施对象组所对应的对象信息列表,所述对象信息列表中存储着正在运行的同步实施对象组中各同步实施对象的对象信息,且该些对象信息根据其所属的同步实施对象的对象名称进行排序:
115.当前同步实施对象响应作用于本地数据库中与其所处的同步实施对象组相关联的目标主题组的修改事件,所述修改事件一般由服务器所监听,当服务器监听到作用于所述目标主题组的修改事件时,将通知当前同步实施对象响应该修改事件,其中,所述修改事件一般是目标主题组中添加新的主题、删除已有的主题以及对已有的主题进行分区修改的
事件。
116.当前同步实施对象响应所述修改事件后,将调用当前所处的同步实施对象组所调用的对象信息列表,该对象信息列表中存储着所述同步实施对象组中当前正在运行的各同步实施对象的对象信息,且该些对象信息根据其所属的同步实施对象的对象名称进行排序。
117.步骤s15,调用预设的消费再平衡规则,以根据所述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,获取对应一个或多个目标主题的消费分区标识,以根据该分区标识确定该些目标主题中需进行消费的消费分区:
118.当前同步实施对象调用所述对象信息列表后,将调用样式的所述消费再平衡规则,所述消费再平衡规则一般是指kafka中的rebalance,当前同步所述对象通过调用所述消费再平衡规则,以从重新确定其在所述目标主题组中目标主题的消费分区。
119.当前同步实施对象根据所述消费再平衡规则,以依照所述述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,以确定出其所对应的一个或多个目标主题的消费分区标识,进而根据该些消费分区标识确定其在各所述目标主题中的消费分区。
120.本实施例中,当任一主题组发生作用于其包含的主题的修改事件时,与其相关联的同步实施对象组中的各实施对象将通过消费再平衡规则,为自身重新分配其在所述主题组中负责消费的主题及对应的分区,以分组且各自处理再平衡的方式,形成分流处理。
121.一种实施例中,请参考图7,所述以便该些同步实施对象将其分区获取的更新数据对应更新至本地及远程代理数据库中的目标订阅主题的步骤之后,包括如下由同步实施对象执行的步骤:
122.步骤s14’,根据预设的同步协议,监听当前所处同步实施对象组的对象运行事件:
123.当前同步实施对象实时根据样式的同步协议,监听当前所处的同步实施对象组的对象运行事件,所述对象运行事件是指同步实施对象组中的同步实施对象的运行状态及同步实施对象组中同步实施对象的启动事件。
124.所述同步协议一般是指gossip、paxios或zab同步协议,同步实施对象通过所述同步协议,感知处于同一同步实施对象组中各同步实施对象的运行状态及组中新同步实施对象的启动事件。
125.步骤s15’,当监听到所述同步实施对象组中任一同步实施对象的运行状态表征为停止运行时,将调用所述同步实施对象组所对应的对象信息列表,且确定所述同步实施对象相关联的目标主题组,所述对象信息列表中存储着正在运行的同步实施对象组中各同步实施对象的对象信息,且该些对象信息根据其所属的同步实施对象的对象名称进行排序:
126.当当前同步实施对象监听到其所处的同步实施对象组中任一同步实施对象的运行状态为停止运行时,将调用该同步实施对象组所调用的对象信息列表,且确定该同步实施对象组相关联的目标主题组。
127.所述的对象信息列表中存储着所述同步实施对象组中当前正在运行的各同步实施对象的对象信息,且该些对象信息根据其所属的同步实施对象的对象名称进行排序。
128.步骤s16’,监听到作用于所述同步实施对象组的新同步实施对象启动事件时,将调用所述对象信息列表,且确定所述同步实施对象相关联的目标主题组:
129.当当前同步实施对象监听到其所处的同步实施对象组中启动新的同步实施对象组,也将同样调用所述的对象信息列表及确定相关联的目标主题组。
130.步骤s17’,调用预设的消费再平衡规则,以根据所述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,获取对应一个或多个目标主题的消费分区标识,以根据该分区标识确定该些目标主题中需进行消费的消费分区:
131.当前同步实施对象调用所述对象信息列表后,将调用样式的所述消费再平衡规则,所述消费再平衡规则一般是指kafka中的rebalance,当前同步所述对象通过调用所述消费再平衡规则,以从重新确定其在所述目标主题组中目标主题的消费分区。
132.当前同步实施对象根据所述消费再平衡规则,以依照所述述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,以确定出其所对应的一个或多个目标主题的消费分区标识,进而根据该些消费分区标识确定其在各所述目标主题中的消费分区。
133.本实施例中,当任一主题组发生作用于其包含的主题的修改事件时,与其相关联的同步实施对象组中的各实施对象将通过消费再平衡规则,为自身重新分配其在所述主题组中负责消费的主题及对应的分区,以分组且各自处理再平衡的方式,形成分流处理。
134.本实施例中,同步实施对象通过同步协议感知处于同一组中的各同步实施对象的运行状态及监听组中新启动的同步实施对象,以便根据消费再平衡协议为自身重新分配需消费的主题及主题中的消费分区。
135.一种实施例中,请参考图8,所述调用预设的消费再平衡规则,以根据所述对象信息列表中各对象信息的排序及所述目标主题组中各主题的主题信息,获取对应一个或多个目标主题的消费分区标识,以根据该分区标识确定该些目标主题中需进行消费的消费分区的步骤中,包括如下由同步实施对象执行的步骤:
136.步骤s151,对所述目标主题组中任一主题的主题信息进行哈希计算,获取该主题所对应的哈希值:
137.当前同步实施对象调用所述消费再平衡规则后,将对所述目标主题组中任一主题的主题信息进行哈希计算,以获取该主题所对应的哈希值,具体的,当前同步实施对象一般时根据主题的主题信息中的md5特征码或其他特征码进行哈希计算,以将哈希计算的结果作为所述主题的哈希值。
138.步骤s152,根据所述对象列表中存在的对象信息的信息数量,对所述哈希值与信息数量进行余值运算,获取相对应的余值:
139.当前同步实施对象根据实施对象列表中存在的对象信息的信息数量,及当前同步实施对象所处的同步实施对象组中正在运行的同步实施对象的数量,对实施哈希值与所述数量进行余值运算,以所述哈希值作为被余余所述数量,将运算所得的余数作为余值。
140.步骤s153,根据所述主题的主题信息中包含的分区数及所述余值,获取该主题对应的消费对象范围,以判断当前同步实施对象在所述对象信息列表中的排序位置是否处于所述消费对象范围,若处于,则所述排序位置在所述消费对象范围中所处于的位置为当前同步实施对象作用于所述主题的消费分区标识:
141.当前同步实施对象获取所述余值后,将根据所述主题的主题信息中所表征的分区数及所述余值,获取该主题对应的消费对象范围,例如,当所述余值为1,所述主题的分区数
为3时,其所对应的消费对象范围为[1,4),若当前同步实施对象在所述对象信息列表中排序处于2时,则当前同步实施对象将负责消费所述主题,且当前同步实施对象作用于所述主题的消费分区标识为2。
[0142]
本实施例中,同步实施对象通过哈希计算及余值运算,确定其在相关联的主题组中需负责消费的主题及为该主题负责消费的分区,以对象信息列表中的排序及主题的特征码及分区即可确定出对应消费的分区,提升同步实施对象执行消费再平衡的效率。
[0143]
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本技术的一种数据同步处理装置,按照这一思路,请参阅图9,其中的一个典型实施例中,该装置包括:目标主题组确定模块11,用于响应本地代理数据库中目标发布主题的数据更新事件,根据主题分组配置,确定目标发布主题所属的目标主题组;目标对象群确定模块12,用于根据同步实施分组配置,确定与所述目标主题组相关联的同步实施组,以查询出该同步实施组中负责同步所述目标发布主题的目标同步实施对象集合;订阅主题更新模块13,用于驱动所述目标同步实施对象集合中各同步实施对象分别从所述目标分布主题中相应的分区获取更新数据,以便该些同步实施对象将其分区获取的更新数据对应更新至本地及远程代理数据库中的目标订阅主题。
[0144]
一种实施例中,所述订阅主题更新模块13包括:消费分区确定子模块,用于响应由服务器推送的指向目标发布主题的更新指令,根据各同步实施对象各自对应的消费分区标识,确定所述目标发布主题中该些消费分区标识各自对应的消费分区;生产分区更新子模块,用于驱动各所述同步实施对象分别从其对应的消费分区中获取更新数据,以便该些同步实施对象将其更新数据更新至本地代理数据库或远程代理数据库的目标订阅主题中对应的生产分区。
[0145]
为解决上述技术问题,本技术实施例还提供一种计算机设备,用于运行根据所述数据同步处理方法所实现的计算机程序。具体请参阅图10,图10为本实施例计算机设备基本结构框图。
[0146]
如图10所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种数据同步处理方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种数据同步处理方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0147]
本实施方式中处理器用于执行本技术的数据同步处理装置中的各个模块/子模块的具体功能,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有数据同步处理装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
[0148]
本技术还提供一种非易失性存储介质,所述的数据同步处理方法被编写成计算机程序,以计算机可读指令的形式存储于该存储介质中,计算机可读指令被一个或多个处理器执行时,意味着该程序在计算机中的运行,由此使得一个或多个处理器执行上述任一实施例数据同步处理方法的步骤。
[0149]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
[0150]
综上所述,本技术对同步实施对象及主题进行分组以分流的形式进行全量数据同步且减低再平衡的影响,且以发布订阅机制构建主题解耦消费业务及生产业务。
[0151]
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0152]
本技术领域技术人员可以理解,本技术中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本技术中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本技术中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0153]
以上所述仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

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

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

相关文献