CN113656144B - 一种数据发布系统、方法、装置、电子设备及存储介质 - Google Patents
一种数据发布系统、方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113656144B CN113656144B CN202110945482.8A CN202110945482A CN113656144B CN 113656144 B CN113656144 B CN 113656144B CN 202110945482 A CN202110945482 A CN 202110945482A CN 113656144 B CN113656144 B CN 113656144B
- Authority
- CN
- China
- Prior art keywords
- data
- release
- target
- version
- information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000009826 distribution Methods 0.000 claims description 94
- 238000010276 construction Methods 0.000 claims description 46
- 238000012544 monitoring process Methods 0.000 claims description 18
- 238000013467 fragmentation Methods 0.000 claims description 9
- 238000006062 fragmentation reaction Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 25
- 238000004891 communication Methods 0.000 abstract description 21
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 25
- 230000007246 mechanism Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 230000008859 change Effects 0.000 description 13
- 239000003795 chemical substances by application Substances 0.000 description 13
- 230000003993 interaction Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 238000013499 data model Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种数据发布系统、方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及计算机互联网云技术。该数据发布系统具体包括:驱动控制模块、设置在容器集群中主控服务模块和设置在容器中的代理服务模块;通过驱动控制模块、主控服务模块和代理服务模块之间的通信,实现通过统一的发布流程将全量数据或增量数据发布到目标容器内。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及计算机互联网云技术中的一种数据发布系统、方法、装置、电子设备及存储介质。
背景技术
随着计算机互联网云技术的快速发展,在云端的计算机服务应用通常部署在计算机虚拟化容器中。其中,服务应用通常是由计算机程序文件和数据词典组成,通过计算机程序文件与数据词典相互配合,为用户提供相应的业务服务。这里的数据词典,就是计算机程序文件要完成业务服务功能所必要的数据。
发明内容
本公开提供了一种用于将数据发布到计算机程序所在的服务器集群容器内的数据发布系统、方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种数据发布系统,包括:
驱动控制模块,用于获得数据发布任务,基于发布任务中的目标业务应用,确定运行各个目标业务应用的容器所在容器集群中的目标主控服务模块;并将所述发布任务发送至各个目标主控服务模块;
所述目标主控服务模块,用于接收所述数据发布任务,将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;
所述代理服务模块,用于基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
根据本公开的另一方面,提供了一种数据发布任务构建方法,应用于上述的数据发布系统;所述方法包括:
对数据源进行监测;
在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据;
基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务。
根据本公开的另一方面,提供了一种数据发布方法,应用于上述的数据发布系统中的主控服务模块,所述方法包括:
接收驱动控制模块发送的数据发布任务;
将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;以使所述代理服务模块,基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
根据本公开的另一方面,提供了一种数据发布方法,应用于上述的数据发布系统中的代理服务模块,所述方法包括:
接收所述目标主控服务模块发送的发布版本信息和发布目标地址信息;所述发布版本信息和发布目标地址信息,由所述目标主控服务模块从驱动控制模块接收的数据发布任务中获得的;
基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
根据本公开的另一方面,提供了一种数据发布任务构建装置,应用于上述的数据发布系统中的发布任务构建模块,包括:
监测单元,用于与数据源进行监测;
目标数据确定单元,用于在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据;
发布任务构建单元,基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务。
根据本公开的另一方面,提供了一种数据发布装置,应用于上述的数据发布系统中的主控服务模块,包括:
发布任务接收单元,用于接收驱动控制模块发送的数据发布任务;
信息发送单元,用于将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;以使所述代理服务模块,基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
根据本公开的另一方面,提供了一种数据发布装置,应用于上述的数据发布系统中的代理服务模块,包括:
信息接收单元,用于接收所述目标主控服务模块发送的发布版本信息和发布目标地址信息;所述发布版本信息和发布目标地址信息,由所述目标主控服务模块从驱动控制模块接收的数据发布任务中获得的;
下载单元,用于基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述应用于上述发布任务构建模块的数据发布任务构建方法、应用于上述主控服务模块的数据发布方法、应用于上述代理服务模块的数据发布方法中的任一方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述应用于上述发布任务构建模块的数据发布任务构建方法、应用于上述主控服务模块的数据发布方法、应用于上述代理服务模块的数据发布方法中的任一方法。
根据本公开的另一方面,提供了计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述应用于上述发布任务构建模块的数据发布任务构建方法、应用于上述主控服务模块的数据发布方法、应用于上述代理服务模块的数据发布方法中的任一方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开提供的数据发布系统的第一实施例的示意图;
图2a是根据本公开提供的数据发布系统的第二实施例的示意图;
图2b是根据本公开提供的数据发布系统的第二实施例的交互示意图;
图3a是根据本公开提供的数据发布系统的第三实施例的示意图;
图3b是根据本公开提供的数据发布系统的第三实施例的发布任务构建流程示意图;
图3c是根据本公开提供的数据发布系统的第三实施例的发布模式示例图;
图3d是根据本公开提供的数据发布系统的第三实施例的辅助地址信息与发布目标地址信息的对应关系示例图;
图4是根据本公开提供的数据发布系统的第四实施例的示意图;
图5是根据本公开提供的数据发布系统的第五实施例的数据模型示意图;
图6是根据本公开提供的数据发布系统的第五实施例的示意图;
图7是根据本公开提供的数据发布系统的第五实施例的版本发布任务构建示意图;
图8是根据本公开提供的数据发布系统的第五实施例中对增量数据词典依赖的全量数据词典版本进行映射和逻辑判断去重的过程示例图;
图9是根据本公开提供的数据发布系统的第五实施例中一个地域的集群示例图;
图10是根据本公开提供的数据发布系统的第五实施例中的心跳通信机制示意图;
图11是根据本公开提供的数据发布系统的第五实施例中的阶段状态机变迁示意图;
图12是根据本公开提供的数据发布系统的第五实施例中的单个阶段状态示意图;
图13是根据本公开提供的数据发布系统的第五实施例中的版本回溯机制示意图;
图14是根据本公开提供的数据发布任务构建方法的第一实施例的流程示意图;
图15是根据本公开提供的应用于主控服务模块的数据发布方法的第一实施例的流程示意图;
图16是根据本公开提供的应用于代理服务模块的数据发布方法的第一实施例的流程示意图;
图17是根据本公开提供的数据发布任务构建装置的第一实施例的结构示意图;
图18是根据本公开提供的应用于主控服务模块的数据发布装置的第一实施例的结构示意图;
图19是根据本公开提供的应用于代理服务模块的数据发布装置的第一实施例的结构示意图;
图20是用来实现本公开实施例的数据发布任务构建方法或数据发布的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了将计算机程序文件要完成业务服务功能所必要的数据发布到计算机程序所在的服务器集群的容器内,本公开提供了一种用于将数据发布到计算机程序所在的服务器集群容器内的数据发布系统、方法、装置、电子设备及存储介质。
参见图1,本公开提供的数据发布系统的第一实施例,包括:驱动控制模块101、设置在容器集群120中的主控服务模块121和设置在各个容器中的代理服务模块122。
其中,驱动控制模块101,用于获得数据发布任务,基于发布任务中的目标业务应用,确定运行各个目标业务应用的容器所在容器集群中的目标主控服务模块121;并将所述发布任务发送至各个目标主控服务模块121。
本实施例中,数据发布任务可以包含:目标业务应用、目标数据及其发布版本信息和发布目标地址信息。
所述目标主控服务模块121,用于接收所述数据发布任务,将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块122;其中,所述目标数据包括全量数据或增量数据。
所述代理服务模块122,用于基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
由上述的实施例可见,应用本公开提供的数据发布系统,通过驱动控制模块、主控服务模块和代理服务模块之间的通信,实现通过统一的发布流程将全量数据或增量数据发布到目标容器内。
本公开提供的数据发布系统中,数据发布任务可以是由维护人员预先设置,也可以由其他系统导入,还可以在系统中设置发布任务构建模块来实现自动构建。另外,驱动控制模块可以设置在控制集群中。
具体的,参见图2a,本公开提供的数据发布系统的第二实施例,包括:系统管理平台110、至少一个控制集群100和至少一个容器集群120;其中,一个控制集群100至少与一个容器集群120通信连接;每个控制集群100中设置有一个驱动控制模块101;每个容器集群120中设置有多个主控服务模块121(图中仅示出一个),且该容器集群中的每个容器中设置有一个代理服务模块122。
为了图示清晰,图1中仅示出了1个控制集群:控制集群1;2个容器集群:容器集群A和容器集群B;以及4个容器:容器集群A中的容器A1~A3,容器集群B中的容器B1。
实际应用中,可以根据地理位置,一个地域设置一个控制集群,例如:以一个省作为一个地域,则一个省设置一个控制集群和多个容器集群。而每个容器集群中的容器数量也不限定。
如图2a所示,所述系统管理平台110中包括的发布任务构建模块111,用于对数据源进行监测,在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据,基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务;将所述数据发布任务发送至所述驱动控制模块101。
本实施例中数据发布任务中可以包括:该任务对应的至少一个目标业务应用、该任务对应的目标数据、目标数据的发布版本信息、发布目标地址信息,和需要执行的发布阶段信息,以实现按发布阶段进行数据的顺序发布。其中,发布阶段信息可以包括:多个发布阶段及发布阶段的执行顺序。
这样,本实施例中的驱动控制模块101,可以按照所述发布阶段的执行顺序,针对当前发布阶段,从执行所述目标业务应用的容器集群中确定出该发布阶段对应的目标容器集群120;将该目标容器集群120中的主控服务模块121,确定为目标主控服务模块121。
本实施例中,目标主控服务模块121可以通过与目标代理服务模块122之间进行实时通信,将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块122。
具体的,每个目标主控服务模块121,可以接收其所在的容器集群120中各个目标代理服务模块122实时上报的各个容器的当前版本信息及当前数据状态信息;基于接收的这些信息和已存储的数据版本信息,确定目标版本信息;并基于目标版本信息,生成针对目标数据的数据状态驱动信息发送至所述代理服务模块122;所述当前数据状态信息,可以包括:当前数据标识、当前数据对应的业务应用标识、当前数据的当前版本信息及当前发布阶段状态信息。
所述每个目标代理服务模块122,可以实时向所述目标主控服务模块131上报所述当前版本信息及当前数据状态信息;并基于所述目标主控服务模块121下发的数据状态驱动信息,针对其所在的目标容器中运行的目标业务应用,按照所述发布阶段的执行顺序,将目标版本的目标数据内容发布到其所在的目标容器内。
参见图2b,图2a的数据发布系统的具体交互过程,可以包括:
步骤S201,系统管理平台的发布任务构建模块,对数据源进行监测。
步骤S202,发布任务构建模块,在监测到数据源变化的情况下,如产生了全量或增量新版本数据的情况下,构建数据发布任务。
步骤S203,发布任务构建模块,将数据发布任务发送至各个控制集群中的驱动控制模块。
所述数据发布任务中可以包括:该任务对应的目标数据、需要执行的发布阶段信息和该任务对应的至少一个目标业务应用;所述发布阶段信息包括:多个发布阶段及各个发布阶段的执行顺序。
步骤S204,驱动控制模块,基于所述发布任务中的各个目标业务应用,确定运行各个目标业务应用的容器所在容器集群中的目标主控服务模块。
步骤S205,驱动控制模块,将所述发布任务发送至各个目标主控服务模块。
步骤S206,每个目标主控服务模块,接收其所在的容器集群中各个目标代理服务模块实时上报的各个容器的当前版本信息及当前数据状态信息。
通常,一个地域设置有多个容器集群,每个容器集群中设置有多个主控服务模块,具体的可以一个机房设置一个主控服务模块,因此这里目标主控服务模块的数量与容器集群中机房的数量相同。而每个容器集群中的容器数量也是多个,每个容器中设置有一个代理服务模块,因此这里代理服务模块的数量与容器的数量相同,也是多个。为了图示清晰,图2b中仅示出一个目标控制服务模块和一个目标代理服务模块。
步骤S207,每个目标主控服务模块,基于所述当前版本信息及当前数据状态信息和数据发布任务中包括的各个发布阶段的执行顺序,生成包含目标版本信息的阶段状态变化路径信息。
本实施例中,阶段状态变化路径信息是上述数据状态驱动信息的一种具体形式。
步骤S208,每个目标主控服务模块,将阶段状态变化路径信息下发至各个目标代理服务模块。
其中,所述当前数据状态信息,可以包括:当前数据标识、当前数据对应的业务应用标识、当前数据的当前版本信息及当前发布阶段状态信息。
步骤S209,每个目标代理服务模块,基于所述目标主控服务模块下发的状态变化路径信息,针对其所在的目标容器中运行的目标业务应用,按照所述发布阶段的执行顺序,将目标版本的目标数据内容发布到其所在的目标容器内。
这样,目标代理服务模块就实现了下载新版本数据存储至其所在的容器中。
由上述的实施例可见,本公开提供的数据发布系统,实现了从控制层面到容器层面的由上至下的容器内数据发布机制,能够对整个数据发布过程进行控制。
参见图3a,本公开提供的数据发布系统的第三实施例中的系统管理平台中除了有发布任务构建模块111,还可以包括:数据中心112。
所述数据中心112,用于存储预设的多个发布模板。
这样,数据发布任务构建模块111可以从数据中心112中获得预设的多个发布模板。
在其他实施例中,数据中心还可以保存从数据源获得的各个增量数据的版本信息和全量数据的版本信息之间的关系。
应用本公开提供的数据发布系统,可以实现全量数据和增量数据的有序发布。其中,全量数据是指业务应用开始运行时需要使用的全部必要基础数据,增量数据是指在业务应用在线上运行后,在全量数据的基础上,增加或更改的数据。也就是说,某个业务应用的每个增量数据都依赖于该业务应用的全量数据。
本实施例中,全量数据的版本信息包含:该全量数据的版本标识,增量数据的版本信息包括:该增量数据所依赖的全量数据的版本标识和该增量数据的版本标识;每个发布模板包含一次发布任务对应的发布阶段信息,所述发布阶段信息包括:多个发布阶段及各个发布阶段的执行顺序。
例如:全量数据的版本标识可以按发布的先后顺序依次设置为Ver.1、Ver.2、Ver.3;依赖该全量数据的增量数据的标识也可以按发布的先后顺序依次设置为Ver.1-1、Ver.1-2、Ver.1-3、Ver.2-1、Ver.2-2等等。这样,通过全量数据的版本标识和增量数据的版本标识,就可以得到各个增量数据与各个全量之间的依赖关系及发布的先后顺序。
本实施例中的发布任务构建模块111,具体可以对数据源进行监测;当监测到数据源中生成新版本的全量数据或增量数据时,基于所述数据中心保存的各个增量数据的版本信息和全量数据的版本信息之间的关系,确定目标数据;基于目标数据,从多个发布模板确定对应的目标模板;基于目标数据和目标模板,构建数据发布任务;将数据发布任务发送至控制集群100中的驱动控制模块101。
应用本实施例,能够实现全量数据和增量数据的有序发布。…
本实施例中,发布任务构建模块111,在目标数据确定过程中,还可以实现增量数据版本去重。具体的,参见图3b所示的发布任务构建流程示意图,包括如下步骤:
步骤S301,当监测到数据源产生新的增量数据版本的情况下,基于所述数据中心保存的各个增量数据的版本信息和全量数据的版本信息之间的依赖关系,对新的增量数据版本进行判断。
步骤S302,若该增量数据版本为已发布的版本或比已发布的版本低,则将该新的增量数据版本丢弃。
步骤S303,若该新的增量数据版本不为已发布的版本或比已发布的版本高,则将该新版本增量数据的发布版本信息及发布目标地址添加到数据发布任务中。
这样,可以将重复的版本或低于已发布版本的增量数据版本丢弃,能够避免触发不必要的数据发布。
步骤S304,根据所述目标数据是否为分片数据,确定目标数据发布模式为组合模式或组合分片模式;基于目标数据发布模式,从预设的多个发布模板中确定与目标发布模式对应的目标模板。
本实施例中,数据中心112中存储了多个发布模板,每个发布模板对应一种数据发布模式。具体的,可以是组合模式或组合分片模式。
参见图3c,本实施例中可以根据数据是否支持多分片(partition)的场景,确定采用组合组合模式或组合分片模式。其中,如果要发布的数据是分片形式数据,则确定支持多分片(partition)的场景。
如果数据不支持多分片(partition)的场景,则采用组合模式。
如图3c所示,在组合模式下,包含:全量数据(Base)和增量数据(Dalta)的发布。其中,全量数据(base)每次产生新内容的数据版本:版本1(Version1)、版本2(Version2)…;增量数据(delta)每次产生新内容是与全量数据有依赖的顺序版本,增量数据的新数据版本:增量数据版本1-1(Version1-1)、增量数据版本1-2(Version1-2)…。
如果数据支持多分片(partition的场景),则采用组合分片模式。
如图3c所示,在组合分片模式下,针对数据的每个分片,全量数据(base)每次产生新内容的分片数据版本:分片数据版本1(Version1)、分片数据版本2(Version2)…;增量数据分片(delta)每次产生新内容是与全量数据分片有依赖的顺序版本,增量数据分片的新数据版本:增量数据分片版本(Version1-1)、增量数据分片版本(Version1-2)…
本步骤中,可以根据数据是否支持多分片的场景,确定采用组合组合模式对应的模板或组合分片模式对应的模板。
步骤S305,基于目标数据和目标模板,构建数据发布任务。
应用上述实施例,可以对不同类型的数据构建出对应的发布任务,提高了数据发布的兼容性。
另外,本实施例中的目标主控服务模块121,还用于基于目标代理服务模块122实时上报的当前数据状态信息中及当前版本信息确定该目标代理服务模块122所在的目标容器是否为新增容器;若任一目标容器为新增容器,则将该新增容器所运行的业务应用需要的当前版本的当前全量数据发布给该新增容器;并基于该新增容器中目标代理服务模块后续上报的当前数据状态信息,按所述当前全量数据对应的当前增量数据不同版本的发布顺序,将当前增量数据不同版本数据依次发布给该新增容器。
本实施例中,如果当前版本信息为预设的无数据标识,例如:全量数据的版本信息是Ver.0;或增量数据的版本信息是Ver.0-0,则可以确定该目标代理服务模块122所在的目标容器是否为新增容器。
具体的,本实施例中预设的无数据标识,对于全量数据可以是Ver.0,对于增量数据可以是Ver.0-0。当然也可以是其他标识,只要表明该容器没有数据即可。
这样,本实施例就在容器集群内部,实现了新增容器的全量数据和增量数据的回溯,保证新增容器所使用的数据版本与其他已有容器一样,保证了运行相同业务应用的容器使用相同版本的数据。
本实施例中,所述目标任务中包含了:发布目标地址信息;该发布目标地址信息与目标数据的发布版本信息对应,表明目标任务中的目标数据的存储地址。
本实施例中,所述目标代理服务模块122,还保存多个辅助地址信息;其中,每个辅助地址信息与一个增量数据的一个版本对应;且每个辅助地址信息包含:该增量数据该版本对应的发布目标地址,和该增量数据的所有低于该版本的其他版本对应的发布目标地址,以使其所在的目标容器中运行的业务应用,基于所述辅助地址信息获得需要的增量数据。
具体的,如图3d所示,本实施例的辅助地址信息与发布目标地址信息的对应关系示例中,包括3个辅助地址:M1-1、M1-2和M1-3。其中,M1-1与增量数据版本V1-1对应,包含增量数据版本V1-1的发布目标地址:数据1地址(data1.file)。M1-2与增量数据版本V1-2对应,包含增量数据版本V1-1的发布目标地址:数据1地址(data1.file)和V1-2的发布目标地址:数据2地址(data2.file)。M1-3与增量数据版本V1-3对应,包含增量数据版本V1-1的发布目标地址:数据1地址(data1.file)、V1-2的发布目标地址数据2地址data2.file和V1-3的发布目标地址数据3地址(data3.file)。
这样,每个辅助地址信息,都包含该版本下的所有数据文件。如图3d所示的示例中,在V1-3未发布之前,业务应用可以通过辅助地址M1-2,获得包含data1.file和data2.file的数据全集。在V1-3发布之后,业务应用可以通过辅助地址M1-3,获得包含data1.file、data2.file和data3.file的数据全集。因此,应用本实施例,可以支持对增量数据提供服务数据全集的功能,即可以通过辅助全集的方式支持业务应用(也就是计算机程序应用),完成相应的数据全集获取,能够减少业务应用程序的设计复杂度,更好地提高数据分发机制的灵活性。
本实施例中,可以采用代理服务心跳通信机制,代理服务模块主动上报心跳信息,并完成与主控服务模块的一次通信交互。具体的,每个目标代理服务模块122,通过在心跳请求信息中携带所述当前版本信息及当前数据状态信息,实时向所述目标主控服务模块121上报所述当前版本信息及当前数据状态信息;所述每个目标主控服务模块121,通过在心跳响应信息中携带所述数据状态驱动信息,下发所述数据状态驱动信息至各个目标代理服务模块122。具体的,本实施例中,数据状态驱动信息可以是状态变化路径信息。
这样,代理服务模块和主控服务模块之间通过心跳机制进行通信,不仅能实时交互信息,还可以实时检测通信是否断开。
参见图4,本公开提供的数据发布系统的第四实施例中,控制集群100中除了驱动控制模块101,还包括:部署数据库102;且容器集群120中,除了主控服务模块121和设置在容器中的代理服务模块122外,还包括:监听数据库123和查询数据库124。
其中,控制集群100中的部署数据库102,用于存储与其通信连接的各个容器集群120中的各个容器运行的业务应用的版本信息。
这样,目标主控服务模块121,可以进一步在基于各个目标代理服务模块122实时上报的各个容器的当前版本信息及当前数据状态信息,确定发布任务完成后,更新业务应用的版本信息存储至所述部署数据库中。
在控制集群中设置部署数据库,可以让同一地域中的容器集群120中的各个主控服务模块121,在本地域快速查询各个业务应用的版本信息。
容器集群120中的监听数据库123,用于供主控服务模块121进行监听使用;查询数据库124,用于供主控服务模块查询使用。
该监听数据库123,具体用于存储主控服务模块121所有要监听的容器实例组名称。每个容器实例组对应业务应用的一种具体的功能。具体的,主控服务模块121接收的各个容器的当前数据状态信息为:所述监听数据库中每个容器实例组名称对应的容器的当前数据状态信息。
这样,主控服务模块121,可以预先获得需要接收哪些代理服务模块上报的信息。
查询数据库124,具体用于存储各个容器中各个数据的最高版本信息;
主控服务模块121,可以基于各个容器的当前数据状态信息和查询数据库中各个数据的最高版本信息进行逻辑对比的结果,确定目标版本信息。
这样,主控服务模块121可以从容器集群内部,快速地进行版本查询和逻辑对比。
以下以发布数据词典的数据发布系统为第五实施例,对本公开提供的数据发布系统做进一步地详细说明。
在数据词典的业务场景使用中,超大数据集合的内容会根据资源和效率的平衡考虑,拆解成全量词典和增量词典。例如:全量词典包含数千亿网页数据,完成一次全部网页数据计算消耗很大,时间也花费数天时间,因此,对于一些热门高频网页数据建立增量词典,每天计算出包含百万数量级网页数据,作为全量词典的一个补充,全量词典和增量词典的数据配合使用。
因此,如何将全量词典和增量词典的数据发布到计算机程序所在的服务器集群容器内,对全量和增量数据发布成为一项亟待解决的技术问题。
本实施例,针对目前全量词典与增量词典无法实现有序发布、混合云容器内数据发布、增量数据发布与回退恢复等问题,提出了一种支持增量模式的计算机数据发布系统,有效地解决全量词典和增量词典有序发布等问题,实现容器内数据发布机制,满足增量词典与全量词典联合应用的复杂业务场景需求。
本实施例提供的数据发布系统和方法,可以应用到很多实际系统中,例如:搜索引擎系统,信息流推荐系统,App云端服务系统等等。
下面对本公开提供的数据发布系统的第五实施例,进行详细说明。
首先,本公开对数据发布的数据模型进行了抽象与归纳。根据本公开提供的数据发布系统的第五实施例的数据模型,包括:服务模块、数据词典、版本、发布模板、发布任务、发布阶段、实例组、实例和角色等。其中,服务模块是指使用数据词典的计算机业务应用程序,通常是指程序提供服务所在的模块,其信息可以包含在数据词典中。
具体的,参见图5,图5所示数据模型各部分含义如下:
数据词典(Dictionary):一份数据或一组特定格式的数据,在系统中用词典名进行唯一标记,与计算机业务应用程序配合完成功能的必要数据内容。可以包括全量词典和增量词典。
数据单元(data_unit):数据单元(图5中未示出)是数据发布的最小单位,数据词典在实例组内发布的最小单位,数据单元内部可包含多个数据,在数据发布系统中的数据操作单位。
版本(Version):一次数据的变更,产出一个版本号,本实施例中会包含数据版本和发布版本两种版本号,数据版本是指数据源的变更版本,发布版本是对计算机业务应用程序看到的发布版本号。
发布模板(Template):对一个发布版本数据更新时,进行数据发布的步骤集合,描述数据发布的目标范围、先后顺序和协同操作命令等信息,一个数据词典可以关联多个发布模板。
发布任务(Task):一次数据词典新版本对应的数据发布任务,每个发布模板会对应一个发布任务,发布任务是一次数据版本在发布模板的执行与应用,一次数据词典新版本的发布任务数量与发布模板是一一对应的。
发布阶段(Stage):发布阶段是一次发布任务分阶段执行的最小步骤,一次发布任务有多个阶段组成,每个发布任务的发布阶段在服务模块和词典发布模板配置时进行固定配置。
实例组(InGroups):指定词典发布的实例范围,也是发布执行的原子操作范围,数据发布过程中,ig内部多个计算机服务实例间并行。一个计算机服务实例组与一个计算机业务应用程序对应。
协同实例组(union_igs):协同实例组是指多个实例组之间需要协同,完成某个同时操作,例如同时加载或同时生效,一个协同实例组包括一个或多个实例组。也就是说,可以对多个计算机业务应用程序同时加载或同时生效。
实例(instance):实例是一个计算机程序应用和数据词典组成的程序服务单位,负责一组计算机逻辑和功能的执行。也可称为容器实例,一个容器可以对应一个容器实例。
实例角色(Role):角色是一个目标容器内的服务标记,通常用来标记区分实例的分组,相同分组内的实例具有同样的角色,也就是具有相同的业务功能。
然后,参见图6,根据本公开提供的数据发布系统的第五实施例可以包括:控制层和容器层。
如图6所示,控制层包括:
发布任务构建模块(Builder),也可称为版本构建模块:其用于感知数据源头的版本变化,如果有数据源变化,则触发一次发布版本,并根据数据词典元信息中的设置来做数据文件的转存。构建过程中可以将数据词典版本信息和绑定的发布模板进行组装,生成一次需要执行的数据发布任务。
如图6所示,本实施例的数据发布系统中,还可以包括:
数据中心模块(DataCenter):其用于接收数据源发出的数据的元信息变更,新版本触发等命令。并提供查询数据发布详情状态功能,维护发布版本信息。以及缓存数据元信息和发布模板数据,记录发布配置,存储发布过程中的数据以实现数据共享。
用户平台模块(Platform):本实施例中可以用户平台模块可以提供用户操作平台交互界面,提供词典和模块管理功能,包括服务模块/数据词典/发布模板/发布详情/发布历史等一项或多项功能。
如图6所示,本实施例的数据发布系统,还可以提供给用户使用的数据版本触发客户端(Publish Client)工具,以方便外部系统调用或使用。
上述的发布任务构建模块、数据中心模块、用户平台模块和客户端工具均设置在系统管理平台中。
如图6所示,控制层还设置有驱动控制器(Dispatcher)模块,也就是前述实施例中的驱动控制模块,其具有两种类型数据的驱动器,和一个状态机控制器(State-Machine)。其中两个驱动器分别是:类型A驱动(TypeA-Driver)和类型B驱动(TypeB-Driver),分别对应图3c所示的组合模式和组合分片模式。状态机控制器(State-Machine)可以实现状态机变迁。也就是说,驱动控制器(Dispatcher)能够对数据发布任务中状态进行控制管理,数据发布过程中负责驱动和状态机变迁等工作,实现版本发布协同推进,对发布详情的实例状态进行数据回收。
如前所述,驱动控制器模块可以设置在一个地域的控制集群中。
如图6所示,容器层包含:设置在容器集群(Cluster)中的各个机房中的各个主控服务模块(Master),可以通过两个数据库:DB[实例组(ig-key),索引信息(dict info)]和DB[角色(role-key),索引信息(dict inf)o],对机房维度的数据版本信息进行监听,以及负责数据查询和维护变更,同时承载机房内全部代理服务模块(Agent)心跳查询,对代理的状态和任务进行判定和下发状态。
如图6所示,容器层还包含:设置在容器集群(Cluster)中的各个机房中的各个容器(Container)里的代理服务模块(Agent)。其可以获取部署环境的基础信息,维持与Master保持心跳,根据下发获取数据版本信息,完成声明式的词典状态同步,与业务进程进行交互。在每个容器中,还包括业务应用模块(Application)和下载模块(Download)。在数据发布过程中,下载模块(Download)可以从发布任务构建模块(Builder)下载数据文件(Data file)。
本实施例中数据词典的发布是从控制层到容器层的从上至下的发布机制。
同时,本实施例可以基于版本信息,实现全量数据词典和增量数据词典的有序发布。具体的发布过程如下:
首先,由发布任务构建模块(Builder)构建版本发布任务。
具体的,可以包括如下步骤:
步骤一、发布任务构建模块(Builder)对数据源(Data-Source)进行监测,主要对新数据产生创建(create)情况和数据回退恢复(rollback)时进行响应。如图7所示,当有新的数据版本产生或数据回退时称作一次触发版本(trigger version)。例如:如图7所示,Builder监测到Data-Source在全量词典(Base)版本Ver.1的基础上,产生了新版本的增量词典版本:增量版本1-2(Delta Ver.1-2),则会访问数据中心获取数据版本映射:数据-版本-图(data-version-map)和数据发布任务模板(task-template)信息,根据数据版本和发布模板进行任务数据组装,最终生成一次数据发布版本的发布任务全部信息。
其中,一次触发版本可以与多个发布模板进行组装,一个发布模板内部包含多个数据发布阶段,组成的发布任务中会包含多个协同实例组(union ig),每个协同实例组对应多个实例组(ig),根据检测数据源的更新可以构建出一次全量发布任务或增量发布任务。构建过程中,针对增量发布任务会对增量数据词典依赖的全量数据词典版本进行映射和逻辑判断去重,以确保全量发布任务和增量任务的有序性。
实际应用中,发布阶段通常是按照灰度发布的维度进行确定。例如发布阶段可以包括:
阶段1.灰度发布,一个机房的少量计算机程序实例,作为第一批数据发布的目标应用。
阶段2.单机房发布,在灰度后进一步扩大到一个机房,例如北京的机房。
阶段3.多机房发布,将生产环境的剩余机房,例如城市一、城市二、城市三等地域的机房。
本实施例中,对增量数据词典依赖的全量数据词典版本进行映射和逻辑判断去重的过程,可以参见图8。
数据源会随着时间会依次产生多次的数据内容,例如:如图8所示,在全量词典版本1和增量词典版本1-2之后,生产出5次新版本内容。
第1次数据源产生全量词典版本2,这个时候builder会根据拿到的base ver:2进行检测处理,发现data_version_map中无记录,判断版本为有效版本,将记录中的数据更新,更新后如表一所示:
表一
第2次数据源产生增量词典版本2-1,这个时候builder会根据拿到的delta ver:2-1进行处理,发现data_version_map中存在依赖的基线全量版本base ver:2记录,判定版本为有效版本,将增量词典记录中的数据更新,更新后如表二所示:
表二
全量版本 | 增量版本 | 触发全量 | 触发增量 |
2 | 2-1 | T2 | T2-1 |
第3次数据源产生增量词典版本1-1,这个时候builder会根据拿到的delta ver:1-1进行处理,发现data_version_map中存在依赖的基线全量版本base ver:2记录,比较增量版本已经到达2-1,delta ver:1-1低于2-1,则判定新拿到的1-1版本为无效版本,将增量词典版本丢弃掉,数据不发生更新,如表三所示其与表二相同,仍然为:
表三
全量版本 | 增量版本 | 触发全量 | 触发增量 |
2 | 2-1 | T2 | T2-1 |
第4次数据源产生增量词典版本2-1,这个时候builder会根据拿到的delta ver:2-1进行处理,发现data_version_map中存在依赖的基线全量版本base ver:2记录,比较增量版本已经到达2-1,则判定新达到的2-1版本为重复版本,将增量词典版本丢弃掉,数据不发生更新,如表三所示其与表二相同,仍然为:
表四
全量版本 | 增量版本 | 触发全量 | 触发增量 |
2 | 2-1 | T2 | T2-1 |
第5次数据源产生增量词典版本2-2,这个时候builder会根据拿到的delta ver:2-2进行处理,发现data_version_map中存在依赖的基线全量版本base ver:2记录,比较增量版本已经到达2-1,新增2-2版本大于基线版本,则判定新达到的2-2版本为有效版本,将增量版本更新,如表五所示:
表五
全量版本 | 增量版本 | 触发全量 | 触发增量 |
2 | 2-1 | T2 | T2-2 |
步骤二,版本构建模块将构建好的版本发布任务发送给设置在控制集群中的驱动器控制模块。
本实施例中,驱动控制器模块可以设置在一个地域的控制集群中。而主控服务Master模块,可以部署在生产环境的多个地域的容器集群Cluster中,各个地域集群的部署为同构服务集群。
其中,同构服务集群就是将相同硬件构造的设备进行集群,而其中每台设备都可以单独完成任务,可以简单地理解为单机集群。
如图9所示,在一个地域集群中,主控服务模块依赖的数据库DB分成三个部分组成,1、部署在容器集群内的主控服务监听(watch)使用数据库;2、部署在容器集群内的查询(get)使用数据库;3、部署在同地域控制集群当中的部署数据库,该部署数据库供主控服务模块进行计算机程序实例的设置,包括:实例版本号的写入和更新。
其中,主控服务监听(watch)使用数据库,以实例组标识(ig)为查询关键词(key),里面放的是这个实例组应该是有哪些数据和版本信息。
查询(get)使用数据库,查询key是角色关键词(role key)。role key这里是代表实例角色+某个数据为查询key,里面存放的是这个数据对应的版本信息。
本实施例的容器内数据发布机制中,采用代理服务心跳通信机制,代理服务(Agent)模块主动上报心跳信息,并完成与主控服务(Master)的一次通信交互。具体的通信机制如图10所示。
代理服务(Agent)模块会收集所在的计算机容器内环境参数,包括系统信息(PaaS)、地域集群(Cluster)、服务标签(Tag)、分片(Shard)和实例角色(Role)等,同时代理服务模块会根据已经维护的数据单元信息组装成工作列表(worklist)信息,每一个数据单元信息包括全量词典版本、增量词典版本、当前阶段信息和执行状态等。
代理服务(Agent)模块发起心跳(heartbeat)通信,携带环境(Env)数据和工作列表信息实时上报给主控服务(Master)模块。主控服务(Master)模块根据收到的工作列表和环境信息,在查询使用数据库中查询版本信息并做逻辑比对,生成每个数据单元的版本信息和目标阶段状态数据,同时将每个数据单元的状态驱动路径图(roadmap)也随响应(response)一起下发返回给代理服务,完成一次代理服务(Agent)与主控服务(Master)的一次心跳信息交互过程,实现全量-增量模式数据发布版本信息的同步。
如图10所示,该示例中状态驱动路径图(roadmap)是从stage0(通常是初始化)开始,具体为:状态0-下载-重新下载-状态3-状态4(stage0-download-reload-stage3-stage4).图10中的状态驱动路径图表明,第一阶段stage1的download已经完成,目标(dest)状态,也就是目标阶段是reload。
代理服务(Agent)模块收到心跳机制返回的数据后,内部会对每个数据单元的数据进行解析,生成每个数据单元的状态机变迁。
如图11所示,一个数据单元的状态机包含多个阶段(stage),代理服务(Agent)模块根据数据单元的当前阶段(cur stage)与目标阶段(dest stage)进行比对的结果,计算是否需要将当前状态向目标状态进行推进。根据状态机路径图中提供的信息,对每个阶段步骤状态路径(stage road)进行执行,即运行状态路径1(run stage1 road)、运行状态路径2(run stage2 rolad…),执行成功后会将当前状态向前变迁。
具体的,对于一个数据单元的阶段(stage),数据单元的状态变化参见图12。如图12所示,对于一个数据单元的每个阶段(stage),代理服务模块根据执行路径中的安排,进行运行状态路径(run stage road)操作。在阶段操作过程中,由于持续时间长短不同,在代理服务模块下一次进行心跳信息上报的时候,数据单元的当前状态信息,包括:运行(doing)、运行成功(success)和运行失败(failed)。这样代理服务模块,可以将数据单元的状态打包入工作列表中,上报给主控服务模块做控制逻辑的判断和下发阶段状态更新。
本实施例中,可以通过辅助全集的方式支持计算机程序应用完成相应的数据全集获取。
在实际应用中,计算机业务程序根据其内部的设计和功能实现,会出现对增量模式的数据词典有需要获取增量数据全集的应用场景。针对这种应用场景,本实施例通过辅助全集机制来实现增量数据全集的获取。
本实施例中,在控制层构建的版本发布任务中,还可以包括:发布目标地址。增量词典会发布到目标地址中,按照版本进行数据存放V1-1、V1-2、V1-3…。辅助全集机制,通过辅助地址信息M,自动实现服务地址中M1-1、M1-2、M1-3全集数据。例如:其中M1-2辅助全集会包含V1-1和V1-2的子集数据;M1-3辅助全集会包含V1-1、V1-2的子集数据和V1-3的子集数据;依次递归包含历史子集版本中的全集数据。具体的,可以参见图3d。
通过本实施例的增量辅助全集机制,可以使计算机应用程序按照实现不同,选择不同的增量数据子集或全集,减少计算机应用程序的设计复杂度,更好地提高数据分发机制的灵活性。
另外,本实施例还可以实现对新容器实例的增量版本回溯。
如图13所示,本实施例可以通过容器内的代理服务(Agent)模块实现增量词典的版本回溯机制。其中,在正常工作的原计算机程序应用实例:实例-2(instance_2),会通过容器内代理服务模块与主控服务模块(Master)进行心跳通信交互。这种情况下,程序应用实例使用的数据词典一直保持最新的数据分发版本和最新数据版本。例如:全量词典(base)版本v1,增量词典(delta)版本v1-3。当计算机程序应用进行实例数扩容时,新产生的实例:实例-1(instance1)容器内无全量词典与增量词典信息。
这时,代理服务模块开始进行版本回溯,其与主控服务模块的每次心跳通信会获取最新的数据单元状态机路径信息。该状态机路径信息主控服务模块根据心跳上报信息中的当前版本阶段,和数据库中的目标阶段版本进行比对后,分多次下发数据单元的变更信息给代理服务模块。
然后,代理服务模块,先获取全量词典版本v1,并进行数据发布操作,完成全量词典的版本回溯。
在接下来的心跳通信机制中,代理服务模块依次拿到增量词典的版本信息v1-1、v1-2等信息,每次都执行相应的数据单元状态变迁路径操作,只到最后一次完成增量词典版本v1-3的全部阶段,最终实现全量-增量词典的版本回溯,与计算机程序应用一同完成程序应用与数据分发上的变更,最终新实例的状态达到与原计算机程序应用实例状态的一致。
根据本公开的实施例,本公开还提供了一种应用于上述数据发布系统的数据发布方法,具体可以参见图2b,这里不再重复。
根据本公开的实施例,本公开还提供了一种数据发布任务构建方法,参见图14,该方法应用于前述人员数据发布系统实施例中的发布任务构建模块,该方法包括:
步骤S1401,对数据源进行监测;
步骤S1402,在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据;
步骤S1403,基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务。
具体的数据发布任务构建过程,可以参见前述实施例对应的内容。这里不再重复。
根据本公开的实施例,本公开还提供了一种应用于前述数据发布系统中主控服务模块的数据发布方法。参见图15,所述方法包括:
步骤S1501,接收驱动控制模块发送的数据发布任务;
步骤S1502,将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;以使所述代理服务模块,基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
本实施例具体的数据发布过程,可以参见前述实施例对应的内容。这里不再重复。
根据本公开的实施例,本公开还提供了一种应用于代理服务模块的数据发布方法,参见图16,所述方法包括:
步骤S1601,接收所述目标主控服务模块发送的发布版本信息和发布目标地址信息;
所述发布版本信息和发布目标地址信息,由所述目标主控服务模块从驱动控制模块接收的数据发布任务中获得的;
步骤S1602,基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
本实施例具体的数据发布过程,可以参见前述实施例对应的内容。这里不再重复。
根据本公开的实施例,本公开还提供了一种数据发布任务构建方法装置,该装置应用于所述的数据发布系统的发布任务构建模块,参见图17,该装置包括:
监测单元1701,用于对数据源进行监测;
目标数据确定单元1702,用于在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据;
发布任务构建单元1703,基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务。
根据本公开的实施例,本公开还提供了一种数据发布装置,应用于上述的数据发布系统中的主控服务模块,参见图18,包括:
发布任务接收单元1801,用于接收驱动控制模块发送的数据发布任务;
信息发送单元1802,用于将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;以使所述代理服务模块,基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
根据本公开的实施例,本公开还提供了一种数据发布装置,应用上述数据发布系统中的代理服务模块,参见图19,包括:
信息接收单元1901,用于接收所述目标主控服务模块发送的发布版本信息和发布目标地址信息;所述发布版本信息和发布目标地址信息,由所述目标主控服务模块从驱动控制模块接收的数据发布任务中获得的;
下载单元1902,用于基于所述发布版本信息和发布目标地址信息,下载所述新版本数据存储至其所在的容器中。
本公开提供的数据发布系统、方法及装置,能够有效地解决全量和增量数据有序发布等问题,满足增量数据与全量数据联合应用的复杂业务场景需求。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图20示出了可以用来实施本公开的实施例的示例电子设备2000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图20所示,设备2000包括计算单元2001,其可以根据存储在只读存储器(ROM)2002中的计算机程序或者从存储单元2008加载到随机访问存储器(RAM)2003中的计算机程序,来执行各种适当的动作和处理。在RAM 2003中,还可存储设备2000操作所需的各种程序和数据。计算单元2001、ROM 2002以及RAM 2003通过总线2004彼此相连。输入/输出(I/O)接口2005也连接至总线2004。
设备2000中的多个部件连接至I/O接口2005,包括:输入单元2006,例如键盘、鼠标等;输出单元2007,例如各种类型的显示器、扬声器等;存储单元2008,例如磁盘、光盘等;以及通信单元2009,例如网卡、调制解调器、无线通信收发机等。通信单元2009允许设备2000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元2001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元2001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元2001执行上文所描述的各个方法和处理,例如上述的发布任务构建方法或数据发布方法。例如,在一些实施例中,上述发布任务构建方法或数据发布方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元2008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 2002和/或通信单元2009而被载入和/或安装到设备2000上。当计算机程序加载到RAM 2003并由计算单元2001执行时,可以执行上文描述的发布任务构建方法或数据发布方法的一个或多个步骤。备选地,在其他实施例中,计算单元2001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述发布任务构建方法或数据发布方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种数据发布系统,包括:
驱动控制模块,用于获得数据发布任务,基于发布任务中的目标业务应用,确定运行各个目标业务应用的容器所在容器集群中的目标主控服务模块;并将所述发布任务发送至各个目标主控服务模块;
所述目标主控服务模块,用于接收所述数据发布任务,将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;
所述代理服务模块,用于基于所述发布版本信息和发布目标地址信息,下载新版本数据存储至其所在的容器中;
发布任务构建模块,用于根据所述目标数据是否为分片数据,确定目标数据发布模式为组合模式或组合分片模式;基于目标数据发布模式,从预设的多个发布模板中确定与目标发布模式对应的目标模板;基于目标模板及目标业务应用,构建数据发布任务。
2.根据权利要求1所述的系统,
发布任务构建模块,具体用于对数据源进行监测,在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据,基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务;将所述数据发布任务发送至所述驱动控制模块。
3.根据权利要求1所述的系统,所述系统还包括:数据中心;
所述数据中心,用于存储预设的多个发布模板;
所述发布任务构建模块,从所述数据中心获得预设的多个发布模板。
4.根据权利要求2所述的系统,其中,
所述发布任务构建模块,具体用于当目标数据为新版本增量数据的情况下,基于已发布的各个增量数据的版本信息和全量数据的版本信息之间的依赖关系,对新版本增量数据进行判断;若该新版本增量数据的版本为已发布的版本或比已发布的版本低,则将该新版本增量数据丢弃,若该新版本增量数据的版本不为已发布的版本或比已发布的版本高,则将该新版本增量数据的发布版本信息及发布目标地址添加到数据发布任务中。
5.根据权利要求4所述的系统,其中,
所述全量数据的版本信息包含:该全量数据的版本标识;增量数据的版本信息包括:该增量数据所依赖的全量数据的版本标识和该增量数据的版本标识;
所述发布任务构建模块,基于增量数据版本信息中该增量数据所依赖的全量数据的版本标识和该增量数据的版本标识,对新版本增量数据进行判断。
6.根据权利要求1所述的系统,其中,
所述数据发布任务中,还包括:需要执行的发布阶段信息;所述发布阶段信息包括:多个发布阶段及各个发布阶段的执行顺序;
所述驱动控制模块,按照所述发布阶段的执行顺序,针对当前发布阶段,从执行所述目标业务应用的容器集群中确定出该发布阶段对应的目标容器集群;将该目标容器集群中的主控服务模块,确定为目标主控服务模块。
7.根据权利要求1所述的系统,其中,
所述主控服务模块,还用于基于所述数据发布任务、所述代理服务模块上报的当前版本信息及数据状态信息,和已存储的数据版本信息,确定目标版本信息;并基于目标版本信息,生成针对目标数据的数据状态驱动信息发送至所述代理服务模块;
所述代理服务模块,具体用于基于所述发布版本信息和发布目标地址信息,按照所述数据状态驱动信息中的各个执行步骤及执行顺序,下载所述目标数据存储至其所在的容器中。
8.根据权利要求7所述的系统,其中,
每个所述容器集群中,还包括:供主控服务模块监听使用的监听数据库和供主控服务模块查询使用的查询数据库;
所述监听数据库,用于存储主控服务模块所有要监听的容器实例组名称;
所述主控服务模块接收的各个容器的当前数据状态信息为:所述监听数据库中每个容器实例组名称对应的容器的当前数据状态信息;
所述查询数据库,用于存储各个容器中各个数据的最高版本信息;
所述主控服务模块,基于各个容器的当前数据状态信息和查询数据库中各个数据的最高版本信息进行逻辑对比的结果,确定目标版本信息。
9.根据权利要求7所述的系统,其中,
所述主控服务模块,还用于基于代理服务模块上报的当前数据状态信息及当前版本信息,确定该代理服务模块所在的目标容器是否为新增容器;若任一目标容器为新增容器,则将该新增容器所运行的业务应用需要的当前版本的当前全量数据发布给该新增容器;并基于该新增容器中目标代理服务模块后续上报的当前数据状态信息,按所述当前全量数据对应的当前增量数据不同版本的发布顺序,将当前增量数据不同版本数据依次发布给该新增容器。
10.根据权利要求1所述的系统,其中,
目标代理服务模块,用于保存多个辅助地址信息;其中,每个辅助地址信息与一个增量数据的一个版本对应;且每个辅助地址信息包含:该增量数据该版本对应的发布目标地址,和该增量数据的所有低于该版本的其他版本对应的发布目标地址,以使其所在的目标容器中运行的业务应用,基于所述辅助地址信息获得所有版本的增量数据。
11.一种数据发布任务构建方法,应用于权利要求1所述的数据发布系统,所述方法包括:
对数据源进行监测;
在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据;
基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务。
12.一种数据发布方法,应用于权利要求1所述的数据发布系统中的主控服务模块,所述方法包括:
接收驱动控制模块发送的数据发布任务;
将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;以使所述代理服务模块,基于所述发布版本信息和发布目标地址信息,下载新版本数据存储至其所在的容器中。
13.一种数据发布方法,应用于权利要求1所述的数据发布系统中的代理服务模块,所述方法包括:
接收所述目标主控服务模块发送的发布版本信息和发布目标地址信息;所述发布版本信息和发布目标地址信息,由所述目标主控服务模块从驱动控制模块接收的数据发布任务中获得的;
基于所述发布版本信息和发布目标地址信息,下载新版本数据存储至其所在的容器中。
14.一种数据发布任务构建装置,应用于权利要求1所述的数据发布系统,包括:
监测单元,用于对数据源进行监测;
目标数据确定单元,用于在监测到数据源产生了全量或增量新版本数据的情况下,将全量或增量新版本数据作为目标数据;
发布任务构建单元,基于目标数据对应的发布版本信息和目标业务应用,构建数据发布任务。
15.一种数据发布装置,应用于权利要求1所述的数据发布系统中的主控服务模块,包括:
发布任务接收单元,用于接收驱动控制模块发送的数据发布任务;
信息发送单元,用于将数据发布任务中包含的:目标数据的发布版本信息和发布目标地址信息发送至各个设置在容器中的代理服务模块;其中,所述目标数据包括全量数据或增量数据;以使所述代理服务模块,基于所述发布版本信息和发布目标地址信息,下载新版本数据存储至其所在的容器中。
16.一种数据发布装置,应用于权利要求1所述的数据发布系统中的代理服务模块,包括:
信息接收单元,用于接收所述目标主控服务模块发送的发布版本信息和发布目标地址信息;所述发布版本信息和发布目标地址信息,由所述目标主控服务模块从驱动控制模块接收的数据发布任务中获得的;
下载单元,用于基于所述发布版本信息和发布目标地址信息,下载新版本数据存储至其所在的容器中。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求11-13中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求11-13 中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110945482.8A CN113656144B (zh) | 2021-08-17 | 2021-08-17 | 一种数据发布系统、方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110945482.8A CN113656144B (zh) | 2021-08-17 | 2021-08-17 | 一种数据发布系统、方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656144A CN113656144A (zh) | 2021-11-16 |
CN113656144B true CN113656144B (zh) | 2023-08-11 |
Family
ID=78480753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110945482.8A Active CN113656144B (zh) | 2021-08-17 | 2021-08-17 | 一种数据发布系统、方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656144B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282453A (zh) * | 2007-04-03 | 2008-10-08 | 华为技术有限公司 | 更新电子业务指南的方法、服务器、终端及系统 |
CN106973091A (zh) * | 2017-03-23 | 2017-07-21 | 中国工商银行股份有限公司 | 分布式内存数据重分布方法及系统、主控服务器 |
CN110427284A (zh) * | 2019-07-31 | 2019-11-08 | 中国工商银行股份有限公司 | 数据处理方法、分布式系统、计算机系统和介质 |
CN111917814A (zh) * | 2019-05-10 | 2020-11-10 | 北京百度网讯科技有限公司 | 数据发布、订阅方法、装置、设备、系统及可读存储介质 |
CN112100152A (zh) * | 2020-09-14 | 2020-12-18 | 广州华多网络科技有限公司 | 业务数据处理方法、系统、服务器和可读存储介质 |
CN112486629A (zh) * | 2020-11-27 | 2021-03-12 | 成都新希望金融信息有限公司 | 微服务状态检测方法、装置、电子设备和存储介质 |
CN112698926A (zh) * | 2021-03-25 | 2021-04-23 | 成都新希望金融信息有限公司 | 数据处理方法、装置、设备、存储介质及系统 |
CN112860343A (zh) * | 2021-02-10 | 2021-05-28 | 北京百度网讯科技有限公司 | 配置变更方法、系统、装置、电子设备以及存储介质 |
CN112966167A (zh) * | 2021-02-20 | 2021-06-15 | 中国工商银行股份有限公司 | 数据爬取方法、装置、计算机系统和计算机可读存储介质 |
CN113138972A (zh) * | 2020-01-17 | 2021-07-20 | 北京京东尚科信息技术有限公司 | 数据迁移方法及装置、存储介质及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352940B2 (en) * | 2008-06-09 | 2013-01-08 | International Business Machines Corporation | Virtual cluster proxy to virtual I/O server manager interface |
US9858063B2 (en) * | 2016-02-10 | 2018-01-02 | Vignet Incorporated | Publishing customized application modules |
DE112019005604T5 (de) * | 2018-11-08 | 2021-09-09 | Intel Corporation | Function-as-a-service-system-verbesserungen (faas-system-verbesserungen) |
-
2021
- 2021-08-17 CN CN202110945482.8A patent/CN113656144B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282453A (zh) * | 2007-04-03 | 2008-10-08 | 华为技术有限公司 | 更新电子业务指南的方法、服务器、终端及系统 |
CN106973091A (zh) * | 2017-03-23 | 2017-07-21 | 中国工商银行股份有限公司 | 分布式内存数据重分布方法及系统、主控服务器 |
CN111917814A (zh) * | 2019-05-10 | 2020-11-10 | 北京百度网讯科技有限公司 | 数据发布、订阅方法、装置、设备、系统及可读存储介质 |
CN110427284A (zh) * | 2019-07-31 | 2019-11-08 | 中国工商银行股份有限公司 | 数据处理方法、分布式系统、计算机系统和介质 |
CN113138972A (zh) * | 2020-01-17 | 2021-07-20 | 北京京东尚科信息技术有限公司 | 数据迁移方法及装置、存储介质及电子设备 |
CN112100152A (zh) * | 2020-09-14 | 2020-12-18 | 广州华多网络科技有限公司 | 业务数据处理方法、系统、服务器和可读存储介质 |
CN112486629A (zh) * | 2020-11-27 | 2021-03-12 | 成都新希望金融信息有限公司 | 微服务状态检测方法、装置、电子设备和存储介质 |
CN112860343A (zh) * | 2021-02-10 | 2021-05-28 | 北京百度网讯科技有限公司 | 配置变更方法、系统、装置、电子设备以及存储介质 |
CN112966167A (zh) * | 2021-02-20 | 2021-06-15 | 中国工商银行股份有限公司 | 数据爬取方法、装置、计算机系统和计算机可读存储介质 |
CN112698926A (zh) * | 2021-03-25 | 2021-04-23 | 成都新希望金融信息有限公司 | 数据处理方法、装置、设备、存储介质及系统 |
Non-Patent Citations (1)
Title |
---|
应用软件及补丁自动化管理平台的研究与设计;李方军;王刚;李本锦;;电脑编程技巧与维护(19);第10-12页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113656144A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3058690B1 (en) | System and method for creating a distributed transaction manager supporting repeatable read isolation level in a mpp database | |
EP3709227B1 (en) | System and method for interoperable communication of an automation system component with multiple information sources | |
CN108874558B (zh) | 分布式事务的消息订阅方法、电子装置及可读存储介质 | |
WO2017123784A1 (en) | Related table notifications | |
CN105740048A (zh) | 一种镜像管理方法、装置及系统 | |
CN111694857B (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
CN102780724A (zh) | 一种类目信息的发送方法、系统及设备 | |
CN111858796B (zh) | 地理信息系统引擎系统及实现方法、装置及存储介质 | |
CN112905537B (zh) | 文件处理方法、装置、电子设备和存储介质 | |
CN112860343B (zh) | 配置变更方法、系统、装置、电子设备以及存储介质 | |
CN115640110A (zh) | 分布式云计算系统调度方法和装置 | |
CN111782235A (zh) | 一种数据升级、查询方法和装置 | |
KR20220026603A (ko) | 파일 처리 방법, 장치, 전자 기기 및 저장 매체 | |
CN113722600A (zh) | 应用于大数据的数据查询方法、装置、设备及产品 | |
CN113656144B (zh) | 一种数据发布系统、方法、装置、电子设备及存储介质 | |
CN111708761A (zh) | 一种分区自治的分布式异构数据库管理系统及方法 | |
CN106484792A (zh) | 一种用于持久层框架的数据源管理方法及装置 | |
CN102867029A (zh) | 一种管理分布式文件系统目录的方法及分布式文件系统 | |
CN116028517A (zh) | 一种融合数据库系统及电子设备 | |
CN115982148A (zh) | 数据库表的处理方法、装置、电子设备和存储介质 | |
CN114328739A (zh) | 数据同步、读取方法及装置、电子设备、存储介质及产品 | |
CN114840539A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN113835728A (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN114116924A (zh) | 基于图谱数据的数据查询方法、图谱数据构建方法和装置 | |
CN112948461B (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 |