CN115202711A - 数据发布方法及系统 - Google Patents

数据发布方法及系统 Download PDF

Info

Publication number
CN115202711A
CN115202711A CN202210749103.2A CN202210749103A CN115202711A CN 115202711 A CN115202711 A CN 115202711A CN 202210749103 A CN202210749103 A CN 202210749103A CN 115202711 A CN115202711 A CN 115202711A
Authority
CN
China
Prior art keywords
data
target
configuration
service
server
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.)
Granted
Application number
CN202210749103.2A
Other languages
English (en)
Other versions
CN115202711B (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.)
eBaoTech Corp
Original Assignee
eBaoTech Corp
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 eBaoTech Corp filed Critical eBaoTech Corp
Priority to CN202210749103.2A priority Critical patent/CN115202711B/zh
Publication of CN115202711A publication Critical patent/CN115202711A/zh
Priority to PCT/CN2023/098320 priority patent/WO2024001679A1/zh
Application granted granted Critical
Publication of CN115202711B publication Critical patent/CN115202711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及通信技术领域,公开了一种数据发布方法及系统,只需一次配置便可一键全量导出数据以及一键发布数据,减少了数据发布过程的人工操作。该方法包括:终端设备向配置环境服务器发起数据导出指令;配置环境服务器响应于数据导出指令,按照预设的目标配置文件确定与目标微服务对应的目标导出执行器和目标数据集;使用目标导出执行器,将目标数据集指示的数据从配置环境服务器导出到代码管理服务器;目标数据集指示的数据是与目标微服务对应的配置数据中的部分数据;将目标数据集指示的数据保存至与目标微服务的配置数据对应的第一仓库中;将目标数据集指示的第一仓库中的全部配置数据打包为业务数据包并发布到至少一个目标环境服务器中。

Description

数据发布方法及系统
技术领域
本申请涉及通信技术领域,特别涉及一种数据发布方法及系统。
背景技术
通常微服务项目都有配置数据发布的要求,例如在多个配置环境中发布相同的业务数据等。目前,常规技术中一般采用数据库脚本管理的方式实现配置数据发布,例如使用Flyway或者Liquibase等数据库版本控制工具实现。这些工具都是基于命令行或者Maven项目对象模型(POM)运行,本质都是基于迁移数据的方式来更改数据库,例如基于结构化查询语言(Structured Query Language, SQL)迁移数据来更改不同配置环境中的数据库。但是,基于SQL迁移数据在不同配置环境中更新配置数据时需要对数据库脚本进行手动编辑操作,使得配置数据发布过程工作量较大且较为繁琐。
发明内容
本申请实施例提供了一种数据发布方法及系统,用户只需对配置文件进行一次配置,后续便可以一键全量导出配置数据到代码管理系统中,而后一键发布数据到多个目标环境中,减少了数据发布过程的人工操作。进而,针对导入的业务数据包,在目标环境中可以智能化处理并执行预设回调操作,例如清缓存,重建索引,推送数据到集成平台,邮件返回发布结果报告等回调操作,而不需人工介入,避免了大量的重复工作,极大的缩短了项目的上线周期,减少了后续运维成本。
第一方面,本申请提供了一种数据发布方法,该方法包括:终端设备向配置环境服务器发起数据导出指令,所述数据导出指令与目标微服务相关联;所述配置环境服务器响应于所述数据导出指令,按照预设的目标配置文件确定与所述目标微服务对应的目标导出执行器和目标数据集,其中,所述目标配置文件用于定义所述目标微服务、所述目标数据集以及所述目标导出执行器之间的对应关系;所述配置环境服务器使用所述目标导出执行器,将所述目标数据集指示的数据从所述配置环境服务器导出到代码管理服务器;所述目标数据集指示的数据是与所述目标微服务对应的配置数据中的部分数据;所述代码管理服务器将所述目标数据集指示的数据保存至与所述目标微服务对应的第一仓库中;所述第一仓库为所述代码管理服务器中用于存储所述目标微服务的配置数据的仓库,并且第一仓库与所述代码管理服务器中用于存储所述目标微服务的应用数据的仓库不同;所述代码管理服务器将所述目标数据集指示的所述第一仓库中的全部配置数据打包为业务数据包,并将所述业务数据包发布到至少一个目标环境服务器中,其中,所述业务数据包中包括所述目标微服务的所有配置数据,不包括所述目标微服务的应用数据。可以理解的是,用户对配置文件配置一次,后续便可以一键全量导出配置数据以及一键发布数据。其中,目标数据集可以包括一个或多个数据集,相应的目标导出执行器可以包括多个子导出执行器。具体地,目标导出执行器可以用于抓取目标数据集指示的数据。
在上述第一方面的一种可能的实现方式中,所述目标数据集还用于定义预设变更类型;所述方法还包括:在所述目标数据集指示的数据的变更类型符合所述预设变更类型的情况下,所述至少一个目标环境服务器导入所述目标数据集指示的数据。如此,在数据导入至目标环境是,可以确定待导入的数据的变更类型是否符合预设变更类型,如果符合的情况下再执行数据导入,反之则不允许数据导入,保证了数据导入的准确性。
在上述第一方面的一种可能的实现方式中,上述方法还包括:所述配置环境服务器从所述数据导出指令中解析出所述目标微服务的名称;所述配置环境服务器按照所述目标微服务的名称,从与所述目标微服务对应的所述目标配置文件中查找出与所述目标数据集对应的所述目标导出执行器。
在上述第一方面的一种可能的实现方式中,所述目标数据集中包括多个子数据集,所述目标导出执行器中包括多个子导出执行器,一个所述子数据集对应一个子导出执行器;并且,所述多个子数据集中的一部分子数据集中的源数据为所述目标微服务的源数据,另一部分子数据集中的源数据为与所述目标微服务不同的微服务的源数据。即本申请支持发布非本服务的数据,提升了数据发布的便捷性。
需要说明的是,上述目标数据集指示的下文中目标配置文件所定义的多个数据集。即,上述目标数据集中多个子数据集相当于下文中的目标配置文件指示的多个数据集。
在上述第一方面的一种可能的实现方式中,所述多个子数据集中的源数据的数据类型包括:数据库脚本、图片、可携带文档格式、表格、文档中的至少一种。即本申请支持多源数据发布,提升了数据发布的便捷性。
在上述第一方面的一种可能的实现方式中,上述方法还包括:第一目标环境服务器解析出所述数据包中的所述目标数据集,所述第一目标环境服务器为所述至少一个目标环境服务器中的任意一个;所述第一目标环境服务器按照与所述目标微服务对应的目标配置表,使用目标导入执行器将所述目标数据集导入到所述第一目标环境服务器中;其中,所述目标配置表用于定义所述目标微服务、所述目标数据集以及所述目标导入执行器之间的对应关系。可以理解的是,至少一个目标环境服务器中的其他环境对应的服务器也可以指定类似的操作,参照对第一目标环境服务器的相关描述。
在上述第一方面的一种可能的实现方式中,上述方法还包括:所述第一目标环境服务器执行与所述目标数据集对应的目标回调操作;其中,所述目标配置表还用于定义所述目标数据集与目标回调信息之间的对应关系,所述目标数据集中包括多个子数据集,所述目标回调信息中包括多个子回调信息,一个所述子回调操作对应一个所述子数据集。即在目标环境服务器中可以智能化处理并执行预设回调操作,例如清缓存,重建索引,推送数据到集成平台,邮件返回发布结果报告等回调操作,而不需人工介入,避免了大量的重复工作,极大的缩短了项目的上线周期,减少了后续运维成本。
在上述第一方面的一种可能的实现方式中,上述方法还包括:所述终端设备向所述代码管理服务器发起数据发布指令,所述数据发布指令与所述目标微服务关联;其中,所述业务数据包是所述代码管理服务器响应于所述数据发布指令,一键发布到所述至少一个目标环境服务器中的。
在上述第一方面的一种可能的实现方式中,上述方法还包括:所述代码管理系统对应的服务器记录所述目标微服务的配置信息对应的发布信息;其中,所述发布信息中包括以下至少一项:所述目标微服务的名称、所述业务数据包的名称发布时间、发布状态信息以及所述业务数据包中所述目标数据集指示数据的变更类型;并且,所述发布信息中的包含的所述目标数据集指示数据的变更类型与所述目标数据集中预先定义的预设变更类型的比较结果,作为判断所述业务数据包正确性的判断结果。可以理解的是,如果发布信息中目标数据集指示数据的变更类型与目标数据集定义的预设变更类型相同,则说明业务数据包准确,反之则说明业务数据包不准确。如此,本申请实施例中,用户在查询业务数据包的发布信息时,可以直观看到业务数据包中各个数据集指示的数据导出并发布之前的业务变更类型,进而可以验证各个数据集指示的数据是否在预设的业务变更类型的情况下导出并发布的,以判断业务数据包的准确性,从而验证数据导出并发布的准确性。
在上述第一方面的一种可能的实现方式中,上述变更类型为新增数据、变更数据或删减数据。
在上述第一方面的一种可能的实现方式中,上述方法还包括:所述终端设备接收与所述业务数据包对应的发布查询请求;所述终端设备向所述代码管理系统对应的服务器发起与所述业务数据包对应的发布查询请求;所述代码管理系统对应的服务向所述终端设备返回所述发布信息;所述终端设备通过查询界面展示所述发布信息、发布按钮、回滚按钮和发布日志按钮;其中,所述发布按钮用于触发将所述业务数据包重新发布至所述至少一个目标环境服务器中,所述回滚按钮用于触发在所述至少一个目标环境服务器中对所述业务数据执行回滚操作,发布日志按钮用于触发所述终端设备显示所述业务数据包的历史发布信息。
在上述第一方面的一种可能的实现方式中,上述所述目标微服务应用于互联网金融产品或者互联网保险产品。
第二方面,本申请提供了一种数据发布方系统,该系统包括:所述系统包括终端设备,配置环境服务器,代码管理服务器,以及至少一个目标环境服务器;所述终端设备,用于向配置环境服务器发起数据导出指令,所述数据导出指令与目标微服务关联;所述配置环境服务器,用于响应于所述数据导出指令,按照预设的目标配置文件确定与所述目标微服务对应的目标导出执行器和目标数据集,其中,所述目标配置文件用于定义所述目标微服务、所述目标数据集以及所述目标导出执行器之间的对应关系;所述配置环境服务器使用所述目标导出执行器,将所述目标数据集指示的数据从所述配置环境服务器导出到代码管理服务器;所述目标数据集指示的数据是与所述目标微服务对应的配置数据中的部分数据;所述代码管理服务器,还用于将所述目标数据集指示的数据保存至与所述目标微服务对应的第一仓库中;所述第一仓库为所述代码管理服务器中用于存储所述目标微服务的配置数据的仓库,并且第一仓库与所述代码管理服务器中用于存储所述目标微服务的应用数据的仓库不同;所述代码管理服务器,还用于将所述目标数据集指示的所述第一仓库中的全部配置数据打包为业务数据包,并将所述业务数据包发布到至少一个目标环境服务器中,其中,所述业务数据包中包括所述目标微服务的所有配置数据,不包括所述目标微服务的应用数据。
在上述第二方面的一种可能的实现方式中,所述目标数据集还用于定义预设变更类型,所述目标数据集指示的数据的变更类型符合所述预设变更类型时被导出到所述代码管理服务器。
在上述第二方面的一种可能的实现方式中,上述系统还包括:所述配置环境服务器从所述数据导出指令中解析出所述目标微服务的名称;所述配置环境服务器按照所述目标微服务的名称,从与所述目标微服务对应的所述目标配置文件中查找出与所述目标数据集对应的所述目标导出执行器。
在上述第二方面的一种可能的实现方式中,所述目标数据集中包括多个子数据集,所述目标导出执行器中包括多个子导出执行器,一个所述子数据集对应一个子导出执行器;并且,所述多个子数据集中的一部分子数据集中的源数据为所述目标微服务的源数据,另一部分子数据集中的源数据为与所述目标微服务不同的微服务的源数据。
需要说明的是,上述目标数据集指示的下文中目标配置文件所定义的多个数据集。即,上述目标数据集中多个子数据集相当于下文中的目标配置文件指示的多个数据集。
在上述第二方面的一种可能的实现方式中,所述多个子数据集中的源数据的数据类型包括:数据库脚本、图片、可携带文档格式、表格、文档中的至少一种。
在上述第二方面的一种可能的实现方式中,上述系统还包括:第一目标环境服务器解析出所述数据包中的所述目标数据集,所述第一目标环境服务器为所述至少一个目标环境服务器中的任意一个;所述第一目标环境服务器按照与所述目标微服务对应的目标配置表,使用目标导入执行器将所述目标数据集导入到所述第一目标环境服务器中;其中,所述目标配置表用于定义所述目标微服务、所述目标数据集以及所述目标导入执行器之间的对应关系。
在上述第二方面的一种可能的实现方式中,上述系统还包括:所述第一目标环境服务器执行与所述目标数据集对应的目标回调操作;其中,所述目标配置表还用于定义所述目标数据集与目标回调信息之间的对应关系,所述目标数据集中包括多个子数据集,所述目标回调信息中包括多个子回调信息,一个所述子回调操作对应一个所述子数据集。
在上述第二方面的一种可能的实现方式中,上述系统还包括:所述终端设备向所述代码管理服务器发起数据发布指令,所述数据发布指令与所述目标微服务关联;其中,所述业务数据包是所述代码管理服务器响应于所述数据发布指令,一键发布到所述至少一个目标环境服务器中的。
在上述第二方面的一种可能的实现方式中,上述系统还包括:所述代码管理系统对应的服务器记录所述目标微服务的配置信息对应的发布信息;其中,所述发布信息中包括以下至少一项:所述目标微服务的名称、所述业务数据包的名称发布时间、发布状态信息以及所述业务数据包中所述目标数据集指示数据的变更类型;并且,所述发布信息中的包含的所述目标数据集指示数据的变更类型与所述目标数据集中预先定义的预设变更类型的比较结果,作为判断所述业务数据包正确性的判断结果。
在上述第二方面的一种可能的实现方式中,上述变更类型为新增数据、变更数据或删减数据。
在上述第二方面的一种可能的实现方式中,上述系统还包括:所述终端设备接收与所述业务数据包对应的发布查询请求;所述终端设备向所述代码管理系统对应的服务器发起与所述业务数据包对应的发布查询请求;所述代码管理系统对应的服务向所述终端设备返回所述发布信息;所述终端设备通过查询界面展示所述发布信息、发布按钮、回滚按钮和发布日志按钮;其中,所述发布按钮用于触发将所述业务数据包重新发布至所述至少一个目标环境服务器中,所述回滚按钮用于触发在所述至少一个目标环境服务器中对所述业务数据执行回滚操作,发布日志按钮用于触发所述终端设备显示所述业务数据包的历史发布信息。
在上述第二方面的一种可能的实现方式中,上述所述目标微服务应用于互联网金融产品或者互联网保险产品。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,该指令在终端设备上执行时使电子设备执行如第一方面中的数据发布方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,该指令在服务器上执行时使服务器执行如第一方面中的数据发布方法。
第五方面,本申请实施例提供了一种终端设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,当所述指令被一个或多个处理器执行时,所述处理器用于执行如第一方面中所述终端设备执行的数据发布方法。
第六方面,本申请实施例提供了一种服务器,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,当所述指令被一个或多个处理器执行时,所述处理器用于执行如第一方面中所述代码管理服务器或所述至少一个目标环境服务器中的服务器执行的数据发布方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1根据本申请的一些实施例,示出了一种配置数据发布流程示意图;
图2根据本申请的一些实施例,示出了一种配置数据发布场景示意图;
图3根据本申请的一些实施例,示出了一种业务数据的代码示意图;
图4根据本申请的一些实施例,示出了一种业务数据的代码示意图;
图5根据本申请的一些实施例,示出了一种业务数据的显示方式的示意图;
图6根据本申请的一些实施例,示出了一种数据发布方法的流程示意图;
图7根据本申请的一些实施例,示出了一种终端设备的硬件结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种数据发布方法以及系统。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据发布方法主要用于微服务的业务数据等的维护管理。具体地,本申请可以在代码管理系统中将微服务的应用数据与业务数据分别存储在不同仓库中,实现微服务的应用与数据分离。在此基础上,参照图1示出的配置数据发布流程:针对配置环境中的业务数据等配置数据;按照预设的配置文件将该配置数据导出(或称提交)到代码管理系统中与相关微服务的配置数据对应的仓库中;将当前仓库中的所有配置数据打包得到业务数据包;在用户的请求下将该业务数据包一键发布(或称导入)到多个目标环境中,例如导入到图1 示出的目标环境的数据库、文件管理系统等容器中。如此,用户只需对配置文件进行一次配置,后续便可以一键全量导出配置数据到代码管理系统中,而后一键发布数据到多个目标环境中,减少了数据发布过程的人工操作。进而,针对导入的业务数据包,在目标环境中可以智能化处理并执行预设回调操作,例如清缓存,重建索引,推送数据到集成平台,邮件返回发布结果报告等回调操作,而不需人工介入,避免了大量的重复工作,极大的缩短了项目的上线周期,减少了后续运维成本。另外,由于微服务的应用和数据分离,因此配置数据中的数据集不限于数据库脚本,还可以为图片,可携带文档格式(Portable Document Format, PDF),excel(即表格),doc(文档)等多种类型的多源数据,极大提升了数据发布的便捷性。
在本申请提供的一些实施例中,微服务应用(或称微服务项目)是基于 springboot构建的应用,在Spring Cloud架构下运行,通过超文本传输协议 (Hyper TextTransfer Protocol,HTTP)对外提供服务。
在本申请的一些实施例,所涉及的微服务的环境包括研发环境、测试环境、集成环境以及生产环境。在一些实施例中,研发环境、测试环境以及集成环境是为了给生产环境可以安全稳定做基础。因此,对于研发环境、测试环境、集成环境这三个环境中的业务数据等配置数据都需要和生产环境保持一致。基于此,本申请实施例在研发环境、测试环境、集成环境以及生产环境之间针对配置数据进行数据发布,使配置数据在整个系统中保持一致。以下实施例中,主要以在研发环境、测试环境、集成环境之间涉及的配置数据发布为例,对本申请提供的数据发布方法进行说明。
参照图2所示,为本申请实施例提供的一种配置数据发布场景示意图。图2 示出的场景中包括数据发布管理系统10,代码管理系统20,研发环境30,测试环境40以及集成环境50。
作为一种示例,数据发布管理系统10用于触发将研发环境30中的业务数据等配置数据导出或提交至代码管理系统20中,触发将代码管理系统20中的配置数据打包为业务数据包并发布到测试环境40和集成环境50中,以及查看数据发布状态等。
在一些实施例中,上述数据发布管理系统10可以通过软件实现,提供用户交互界面用于支持用户触发数据发布以及后续数据发布状态的查询等功能。作为一种示例,上述数据发布管理系统10可以设置于终端设备100中,该终端设备 100为具有显示屏的设备。例如,适用于本申请的终端设备100可以为台式机、便携式电脑、掌上电脑、手机、平板电脑等,本申请实施例对此不作限定。
本申请实施例中,代码管理系统20用于将微服务的应用数据和配置数据(如业务数据)分别存储在不同仓库中,并将配置数据打包为业务数据包等压缩文件。作为一种示例,上述代码管理系统20可以为分布式版本控制系统(Git)或者版本控制系统(Subversion,SVN)等。在本申请的一些实施例中,代码管理系统 20可以通过gitlab实现。其中,gitlab是一个基于git实现的在线代码仓库软件,一般用于在企业、学校等内部网络搭建git私服,可以看作是一个简单的 github。相应的,本申请涉及的代码管理系统20中的仓库指的是gitlab仓库。
在一些实施例中,代码管理系统20可以设置于服务器200中,该服务器200 (也称为代码管理服务器)可以为独立服务器,还可以为云端服务器。其中,独立服务器拥有整台服务器的所有软硬件资源,可以自行分配与实行多种网络功能服务,如可以独立存储微服务的应用数据和配置数据。另外,云端服务器可以是硬件服务器,也可以植入虚拟化环境中,例如,根据本申请的一些实施例,云端服务器可以是在包括一个或多个其他虚拟机的硬件服务器上执行的虚拟机。
上述测试环境40和集成环境50用于对从代码管理系统20导入的业务数据包进行解析并自动执行预设的回调操作。作为一种示例,研发环境30、测试环境40和集成环境50可以分别应用于服务器300,服务器400和服务器500中。此外,研发环境30,测试环境40和集成环境50中的每个环境中还可以包括与服务器交互的终端设备等用于完成研发、测试以及集成等微服务相关任务的设备,此处不做赘述。
在一些实施例中,上述服务器300,服务器400和服务器500中的每个服务器可以为独立服务器,也可以为云端服务器,参照上文中对服务器200的相关描述,此处不再赘述。
可以理解的是,本申请实施例中,在图2示出的数据发布场景中,可以通过终端设备100、服务器200、服务器300、服务器400以及服务器500进行交互,实现数据发布的方法。即终端设备100与服务器端交互实现数据发布流程,而终端设备100与各个服务器可以通过HTTP协议请求交互。
本申请实施例以下,主要以待导出配置数据的配置环境为研发环境30,待导入配置数据的目标环境为测试环境40和集成环境50为例,说明本申请实施例提供的数据发布方法。此时,目标环境服务器为测试环境40中的服务器400和集成环境50中的服务器500。
在本申请一些实施例中,本申请涉及的微服务可以为保险产品或金融产品等产品提供的微服务,业务数据等配置数据包括产品的基础数据或规则等,例如投保规则、理赔规则、续保规则、风控配置、保障计划文案、商户号、险种、责任、条款、费率表等。相应的,作为一种示例,配置数据可以分为以下类型:投保规则、理赔规则、续保规则、风控配置、保障计划文案、商户号、险种、责任、条款、费率表等。可以理解的是,本申请涉及的配置数据发布可以为上述类型中任意类型的配置数据。
接下来,在下文中首先对本申请实施例中数据导出之前预先设置的配置文件进行描述。
本申请实施例中,配置环境中的服务器依据预先设置的配置文件导出业务数据等配置数据。其中,配置文件通常为技术人员手动配置的,那么后续数据导出以及发布过程中的配置文件可以保持不变,不需要用户重复手动修改。
需要说明的是,本申请实施例中,代码管理管理系统20可以将微服务的应用数据和业务数据等配置数据分别存储在两个仓库中,实现了分离应用和数据。那么,由于微服务的应用和数据分离,使得后续可以将微服务的业务数据等配置数据单独导出到代码管理系统20并进行数据发布。进而,可以实现对代码管理系统20中存储的配置数据分门别类的统一集中化管理。作为一种示例,在代码管理系统20中与微服务的配置数据对应的数据中,不同类型的数据(如保险业务数据、保险用户信息等类型)按照预设的目录存储。
具体地,在一些实施例中,上述配置文件用于定义数据集,定义与数据集关联的微服务的名称等微服务参数,以及定义配置环境中与每个数据集对应的导出执行器等。其中,一个配置文件对应一个微服务,一个配置文件定义一个或多个数据集,一个数据集对应一个导出执行器。
可以理解的是,由于本申请中数据导出并不依赖于现有技术中的数据库迁移,因此上述数据集的源数据不限于数据库脚本,还可以为图片,pdf,excel,doc 等多源数据。也就是说,本申请不限数据库脚本的源数据导出及发布,而是支持多源数据的导出与发布,极大提升了数据发布的便捷性。
在一些实施例中,配置文件中定义的一个或多个数据集中包含对应的微服务在配置环境中的源数据,并且定义的每个数据集具有一个名称。配置文件中定义的多个数据集为当前同一个微服务的源数据;或者,配置文件中定义的一部分数据集包含当前微服务(记为目标微服务)的源数据,另一部分数据集包含其他微服务的源数据。也就是说,本申请可以在导出并发布目标微服务的配置数据的同时,导出并发布其他微服务的配置数据。即本申请实施例提供的数据发布方法支持导出并发布非本服务器的数据,进一步提升了数据导出及发布的便捷性。
在一些实施例中,上述导出执行器用于将对应的数据集从配置环境所在的服务器(如研发环境30中的服务器300)导出到代码管理系统20中。作为一种示例,导出执行器用于从配置环境中抓取对应的数据集中的源数据。另外,在一些实施例中,一个导出执行器可以为用于将对应的数据集指示的数据从配置环境导出到代码管理系统20的接口,该接口用于指示到代码管理系统20中的仓库中的一个目录的路径,即与一个数据集对应的导出执行器还用于指示代码管理系统 20中存储该数据集的仓库中的目录。
另外,各个数据集的名称以及目标微服务的名称将会被配置到配置环境以及各个目标环境的数据库中。也就是说,各个微服务的名称以及各个数据集的名称在配置环境和目标环境以及终端设备100中是一致的。在一些实施例中,终端设备100可以在配置环境30中预先设置上述配置文件,如将配置文件预先存储在研发环境30中的服务器300的数据库中。
在一些实施例中,为了保证微服务的名称以及各个数据集的名称在配置环境、目标环境以及终端设备100中一致,在配置环境中存储上述配置文件的同时,在目标环境中可以预先存储配置表。具体地,目标环境中的配置表用于定义数据集,定义与数据集关联的微服务器的名称等微服务参数,定义目标环境中与每个数据集对应的导入执行器,以及定义每个数据集对应的回调信息。例如,回调信息指示的回调操作可以为清缓存,重建索引,推送数据到集成平台,邮件返回发布结果报告等。其中,一个配置表对应一个微服务,一个配置表定义了一个或多个数据集,一个数据集对应一个导入执行器。可以理解的是,所定义的数据集的名称和微服务的名称在目标环境的配置表和配置环境中的配置文件中保持一致。
进一步的,对本申请中涉及的配置文件的格式和内容进行详细描述。另外,目标环境中的配置表的格式可以参照对配置文件的相关描述,本文对此不做赘述。
在一些实施例中,配置文件为可扩展标记语言(Extensible Markup Language,xml)格式的文件,遵循自定义可扩展标记语言架构(XML Schema Definition,xsd)标准。
更具体地,配置文件由两部分组成,第一部分是表定义,用于定义表名、主键、外键、业务主键,排序字段(或称排序键)等。第二部分是数据集定义,用于定义需要被导出的表集合、条件以及参数等。
其中,主键:指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用与其他表的外键关联,以及文本记录的修改与删除。
外键:用于保持数据一致性,完整性,主要目的是控制存储在外键表中的数据,使主键表和外键表这两张表形成关联,外键只能引用外键表中的列的值或使用空值。
业务主键:在关系型数据库设计中,业务主键是一个由已经真实存在于世界中的属性构成的键。在其他的表达方式中,一个业务主键是和行内属性具有逻辑关系的候选键。业务主键确保了对于每个业务主键只会存在唯一一条对应的行。
排序键:创建表时,一般不需要指定主键,只要指定排序键即可。当没有指定主键(primary key)时,会把order by后面的列作为主键。可以同时指定排序键(order by)和主键(primary key),但主键最好是排序键的前缀。
当指定的主键和排序键不同的情况下:此时排序键用于在数据片段中进行排序,主键用于在索引文件中进行标记的写入。
其中,配置文件中包含目标微服务的名称,例如第一部分的表定义中包含目标微服务的名称。配置文件中包含各个数据集的名称,例如第二部分的数据集定义中定义的表集合的一个表名称可以为一个数据集的名称。
进一步的,作为一种示例,目标微服务为规则引擎服务,那么会定义一个Rule.xml文件作为配置文件,即该规则引擎服务的名称定义为“Rule”。其中, Rule.xml文件的第一部分包含需要导出的表t_rm_rule,其中包含了主键 rule_id,该主键rule_id用于唯一标识Rule.xml文件中的表。另外,Rule.xml 的第二部分为数据集,每个数据集可以指定名称,数据集内包含需要导出的表的集合t_rm_rule,t_rm_rule_group等,导出条件为rule_id in(ruleIds)(即主键rule_id处于预设的参数ruleIds中),参数ruleIds的数据类型为数组 (Array)类型。可以理解的是,规则引擎服务的名称为“Rule”,多个数据集中包含名称为t_rm_rule的数据集以及名称为t_rm_rule_group的数据集等。此外,在一些实施例中,上述数据集中的每个数据集还用于定义一种预设变更类型。进而,一个数据集指示的数据按照该数据集所定义的预设变更类型发生变更的情况下,将触发该数据集指示的数据导出到代码管理系统20中。
接下来,对配置文件中的一个表中的主键、外键、排序键等,表中的一条数据的主键、外键、排序键,以及外键所关联的表的主键等,来对配置文件中的主键、外键以及排序键进行描述。
作为另一种示例,T_RM_EVENT表为保险产品的产品规则下的规则事务表,例如T_RM_EVENT表为上述规则引擎服务对应的Rule.xml文件中的一个表。例如,在该表中,主键(PrimaryKey)可以通过代码“private Long eventId;”定义,即主键为eventId;业务主键(BusinessKey)通过代码“private String name;”定义;排序键(orderKey,或称排序字段)通过代码“private String code;”定义;外键(ReferenceKey)通过代码“@JoinColumn(name= "DRIVER_ID")”定义,即外键为DRIVER_ID。需要说明的是,在一些实施例中,业务主键用于在表定义中对业务的名称进行定义,排序键用于对表定义中的各个表进行排序;外键用于定义目标微服务之外的其他微服务的源数据对应的表。
另外,配置文件的表中的包括多条数据,每条数据中包括主键、外键、排序键以及业务主键等。可以理解的是,配置文件中的多条数据中的至少一条数据可以用于定义一个数据集。
作为一种示例,参照图3所示,为上述数据库中的T_RM_EVENT表里的一条数据,该数据为“核保规则检验”。具体地,如图3中的虚线框中的内容所示该,其中该条数据中主键为-1,名称为UnderwritingRuleCheck,外键为-1关联 T_RM_DRIVER(即t_rm_driver)表中的主键DRIVER_ID。另外,排序键(orderKey) 和业务主键(BusinessKey)均为UnderwritingRuleCheck,即主键、业务主键和排序键的名称相同。
进一步的,作为一种示例,参照如4所示,为图3示出的“核保规则检验”这一数据所关联的父表T_RM_DRIVER中的数据,如图6中的虚线框中的内容所示该条数据的主键为DRIVER_ID,用以被子表T_RM_EVENT关联,该条件数据的名称为UnderwritingRuleCheck。
在一些实施例中,服务器端可以与PC端侧交互,以将服务器端存储的上述图4示出的“核保规则检验”数据等数据发送给PC端,进而通过PC端的界面展示给操作人员。其中,上述服务器端指的是研发环境30等各个环境中的服务器,或者代码管理系统20中的服务器。上述PC端指的是上述终端设备100,或者研发环境30等各个环境中的与服务器交互来支持操作人员在服务器端查询或修改数据的终端设备。
作为一种示例,操作人员可以在终端设备100侧向服务器端(如服务器300) 发起数据请求,使得服务器端响应于该请求返回“核保规则检验”数据,进而展示该数据。
在一些实施例中,在操作人员在终端设备100中查询“核保规则检验”数据时,终端设备100可以显示“核保规则检验”数据,和/或,按照预设样式显示“核保规则检验”数据中的主要信息。例如,终端设备10可以在同一界面上显示这两者的内容,也可以在不同界面分别展示这两者的内容。
进一步的,作为一种示例,对于“核保规则检验”数据,即主键为-1,名称为UnderwritingRuleCheck的数据,参照图5所示,为按照预设样式显示“核保规则检验”数据中的主要信息。其中,针对“核保规则检验”数据,图5示出的主要信息包括以下内容:数据代码名称“Event Code”81为“UnderwritingRuleCheck”;数据名称“Event Name”82为“UnderwritingRuleCheck”;数据描述信息“Description”83为“UnderwritingRuleCheck”;数据类型“Event Type”84为DIRECT;数据关联的数据名称“Driver”85为“UnderwritingRuleCheck”,“核保规则检验”数据通过主键DriverId:-1关联Driver的信息;规则分组“Rule Group”86包括Cloud_Application_API_Validation(云端应用API接口生效), Cloud_Application_API(云端应用接口),AutoTest_Preset_UWRule_Group(自动测试预置核保规则检验组)、以及UWcheckGroup(核保规则检验则)等信息。
接下来,基于图2示出的场景中的多个设备采用图3至图5示出的配置文件以及数据,参照9所示的数据发布方法流程,对本申请实施例提供的数据发布方法进行详细介绍,该方法包括如下步骤:
步骤601:终端设备100向研发环境30中的服务器300发送第一请求,第一请求用于请求将研发环境所在的服务器300中的目标配置文件所定义的数据集指示的数据导出到代码管理系统20。可以理解的是,上述第一请求也可以称为数据导出指令。其中,研发环境300为配置环境,服务器300为配置环境服务器。
在一些实施例中,上述第一请求包括目标数据集的名称和目标微服务的名称。作为一种示例,第一请求中目标微服务的名称为上文示出的Rule,即主键 rule_id标识的规则引擎服务;目标数据集的名称可以为t_rm_rule或 t_rm_rule_group。
在另一些实施例中,上述第一请求中还包括与目标微服务对应的目标配置文件,或者用于唯一标识目标配置文件的目标文件参数。相应的,终端设备100响应于第一请求,还可以向服务器300发送目标文件参数或者目标配置文件。例如,作为一种示例,上述目标文件参数可以为目标配置文件的文件名,如上文中的文件rule.xml的名称“rule”。
作为一种示例,配置环境为研发环境30。上述目标数据集为研发环境30的服务器中待导出的一个或多个数据集,上述目标微服务为目标数据集所属的微服务。此时,待处理数据集指示的数据可以是目标微服务的业务数据等配置数据。例如,目标数据集中的定义的一个表为上述图3示出的T_RM_EVENT表,此时,目标数据集中包括主键-1和名称UnderwritingRuleCheck标识的表。进而,方便后续根据主键查找目标数据集中的表而查找目标数据集指示的数据,以将待处理数据集指示的数据导出以及发布。
在一些实施例中,目标数据集可以包括一个或多个子数据集,目标数据集的名称包含于预先配置的与目标微服务对应的配置文件中。
通常在统一发布新版本或者需要修复程序(hotfix)的场景下,对目标微服务的业务数据等配置数据,执行数据导出以及发布。
可以理解的是,上述第一请求可以为用户手动发起的。
在一种可能的实现方式中,终端设备100中的数据发布系统10可以提供触发数据导出界面,该界面用于负责将目标数据集的名称和目标微服务的名称发送至服务器300。作为一种示例,触发数据导出界面中可以提供输入或选择数据集名称的第一输入框,输入或选择微服务名称的第二输入框,以及触发数据导出的导出按钮。那么,在用户通过第一输入框输入目标数据集的名称,通过第二输入框输入目标微服务的名称,并且对导出按钮进行操作之后,终端设备100可以自动生成第一请求。此时,用户对导出按钮的操作可以触发一键全量导出配置环境中的配置数据,即只需要预先对配置文件的一次配置,后续便可以简单便捷的触发数据导出。作为一种示例,结合上文中的图4至图5的示例,用户在第一输入框中输入的数据集的名称可以为UnderwritingRuleCheck(即核保规则检验),在第二输入框中输入的目标微服务的名称为UnderwritingRuleCheck。
步骤602:服务器300根据目标数据集的名称和目标微服务的名称从配置文件中查找出目标导出执行器。
具体地,服务器300根据目标数据集的名称和目标微服务的名称,从配置文件中匹配与目标数据集对应的目标导出执行器。其中,对于目标数据集中的每个子目标子数据集分别匹配出一个子导出执行器。
作为一种示例,针对数据集的名称为UnderwritingRuleCheck(即核保规则检验)的数据,可以从配置文件中查找到对应的导出执行器,以便后续对其执行导出操作。
步骤603:服务器300通过目标导出执行将目标数据集中的配置数据导出到服务器200中的代码管理系统20中的第一仓库中。作为一种示例,通过与 UnderwritingRuleCheck数据所在数据集对应的目标导出执行器可以将该数据导出到代码管理系统20中的第一仓库中。
在一些实施例中,上述第一仓库为代码管理系统20中与目标微服务的配置数据对应的仓库。在一些实施例中,在对目标数据集中的配置数据执行导出之后可以将该配置数据按照预设的文件目录结构提交到代码管理系统20中。
可以理解的是,代码管理系统20中的第一仓库中不仅包含目标数据集指示的配置数据,还可包含其他配置数据。
在一些实施例中,上述第一仓库为代码管理系统中用于存储目标微服务的配置数据的仓库,并且第一仓库与代码管理系统中用于存储目标微服务的应用数据的仓库不同。这样一来,每次发布数据时,仅需要对第一仓库中的所有配置数据进行打包,而不需要处理目标微服务的应用数据,有利于减少数据打包过程的耗时并减少资源消耗,使得数据发布过程的耗时较短。
另外,在一些实施例中,服务器200在代码管理系统20中保存目标数据集中的配置数据,还可以记录第一仓库中的配置数据中的版本信息。
步骤604:终端设备100向服务器200发送第二请求,第二请求用于请求在目标环境中发布目标微服务的配置数据。可以理解的是,上述第一请求还可以称为数据发布指令,该第二请求与目标微服务相关联。
其中,上述第二请求包括目标环境参数和目标微服务的名称,该目标环境参数为待发布数据的目标环境中的服务器的地址或名称等。具体地,第二请求用于请求将代码管理系统20中与目标微服务对应的第一仓库中的配置数据发布至目标环境。作为一种示例,目标环境可以为测试环境40和集成环境50。
可以理解的是,上述第二请求可以为用户手动发起的。
在一种可能的实现方式中,终端设备100中的数据发布系统10可以提供触发业务数据发布界面,该界面用于触发将代码管理系统20中的与目标微服务对应的业务数据包和目标微服务的名称发送至目标环境的服务器中,即用户触发在目标环境中发布配置数据。
作为一种示例,触发业务数据发布界面中可以提供输入或选择微服务的名称的第三输入框,输入或选择目标环境参数的第四输入框,以及触发数据发布的发布按钮等。那么,在用户通过第三输入框输入目标微服务的名称,通过第四输入框输入目标环境参数,并且对发布按钮进行操作之后,终端设备100可以自动生成第二请求。此时,用户对发布按钮的操作可实现一键发布配置数据。作为一种实施例,第三输入框中输入微服务的名称可以为UnderwritingRuleCheck,第四输入框中输入的目标环境参数可以包括测试环境40的标识(如测试环境40的名称或者服务器400的名称或地址等)以及集成环境50的标识(如集成环境50的名称或者服务器500的名称或地址等)。
在一些实施例中,在接收到用户对发布按钮的操作时,数据发布管理系统10 还可以提供校验界面,用于对待发布的配置数据进行校验,并提示校验结果,如果校验正确,则执行后续的步骤605等步骤,其中,对待发布的配置数据进行校验具体包括校验待发布的配置数据的正确性和完整性,还可以校验待发布的配置数据的周边系统,例如佣金配置系统。作为一种示例,校验界面中可以显示目标数据集指示的数据,使得用户可以直观的看到待发布的配置数据中本次导出并发布的数据,以验证待发布的数据的准确性。
作为一种示例,在接收到用户对发布按钮的操作时,数据发布管理系统10 还可以在检验界面中提供外围校验按钮。此时,在上述步骤604之后还可以包括以下步骤:当接收到通过外围校验按钮发出的校验指令时,校验待发布的配置数据的周边系统,例如佣金配置系统。在校验通过的情况下,继续执行后续步骤605 等步骤。
步骤605:服务器200将代码管理系统20的第一仓库中的配置数据打包得到业务数据包。
可以理解的是,服务器200是将第一仓库中的所有配置数据打包。并且,打包得到的业务数据包可以为压缩包。
步骤606:服务器200根据目标环境参数在目标环境对应的服务器400和服务器500中发布业务数据包。
服务器300根据目标数据集的名称和目标微服务的名称从配置文件中查找出对应的导出执行器,并通过导出执行将目标数据集中的配置数据导出到代码管理系统20中的第一仓库中。
在一些实施例中,代码管理系统20通过服务器200可以调用与测试环境40 对应的导入接口和与集成环境50对应的导入接口对业务数据包进行发布。
在一些实施例中,上述目标数据集还用于定义预设变更类型,该目标数据集指示的数据的变更类型符合对应的预设变更类型时被导入到目标环境服务器,如测试环境40的服务器400和集成环境50的服务器500。
更具体的,本申请实施例中,在服务器200向服务器400和服务器500发布业务数据包的情况下,服务器400和服务器500中的任意服务器可以判断该业务数据包与该服务器中当前版本的业务数据包之间是否有差异,例如,判断两个数据包对应的MD5信息摘要算法(MD5 Message-Digest Algorithm)码是否相同以判断两个数据包之间是否有差异。如果不同则说明待导入的业务数据包发生了变更而与当前版本的业务数据包存在差异,如果相同则说明待导入的业务数据包中的数据未发生变更而与当前版本的业务数据包不存在差异。进而,在判断出待导入的业务数据包与当前版本的业务数据包之间存在差异的情况下,获取待导入的业务数据包中的数据和当前版本的业务数据包中的数据并进行比较,确定出待导入的业务数据包的数据的变更类型,得到各个数据集指示的数据的变更类型。进而,对待导入的业务数据包中各个数据集指示的数据的变更类型与对应数据集中预定义的预设变更类型进行比较,只有数据集指示的数据的变更类型符合对应的预设变更类型,才会将该数据集指示的数据导入到目标环境中。例如,在数据集指示的数据的变更类型符合目标数据集中预定义的预设变更类型时,将该数据集指示的数据导入到目标环境中服务器。如此,可以验证各个数据集指示的数据是否在符合预设变更类型的情况下导入目标环境的,以验证数据发布和导入的准确性。
步骤607:服务器200记录数据发布的所有文件及其对应的发布状态。从而,以便后续重复发布,或者回滚发布,实现配置数据版本控制。
其中,在一些实施例中,数据发布的所有文件(即发布信息)包括:业务数据包的名称(即配置数据的名称)、版本信息、发布时间(包括起始时间和结束时间)、以及发布状态信息(如发布成功、发布失败、正在发布)以及发布日志 (包括历史版本号以及历史发布时间以历史版本的配置数据等)以及变更类型 (如新增数据、变更数据或删减数据等)等。
具体地,发布日志中还可以包括根据配置数据的版本信息(如版本号)构成的版本树,进而以版本树为基础进行版本比较和回滚,以确保发布动作安全可靠。
需要说明的是,用户通过查看发布信息中的变更类型,并将该变更类型与对应的预设变更类型进行比较,以验证数据发布以及导入的正确性。例如,对于业务数据包的发布信息中记录的目标数据集指示的数据的变更类型,可以将该变更类型与目标数据集中预先定义的预设变更类型的比较结果,作为判断目标数据集指示的数据的导入准确性的判断结果,并将该判断结果作为判断该业务数据包正确性的判断结果,例如,变更类型比较结果为不同说明业务数据包导入有误。
另外,在其他一些实施例中,数据发布的所有文件中还可以包括业务数据包。
可以理解的是,重复发布可以重复执行上述步骤604到步骤606实现。
步骤608:终端设备100向服务器200从服务器200获取数据发布的所有文件及其对应的发布状态。
其中,终端设备100可以向服务器200发送第三请求,第三请求用于从服务器200获取数据发布的所有文件及其对应的发布状态。
在一些实施例中,第三请求中可以包括目标微服务的名称,或者发布时间等信息,这些信息将作为查询业务数据包的发布状态的查询条件。
可以理解的是,上述第三请求可以为用户手动发起的。
在一种可能的实现方式中,终端设备100中的数据发布系统10可以提供业务数据发布状态界面,该界面用于提供查询数据发布状态,数据变更记录(如回滚发布)等功能等。具体地,数据发布状态界面可以触发从代码管理系统20中查询与目标微服务对应的业务数据包的发布状态等信息。
作为一种示例,业务数据发布状态界面可以通过发布时间,业务数据包所属微服务的名称等查询条件来查询对应业务数据发布状态。其中,业务数据发布状态界面可以提供输入框用于用户输入或者选择发布时间,目标微服务的名称等查询条件,触发查询业务数据包的发布状态。
作为一种实施例,用户可以在业务数据发布状态界面中选择微服务的名称UnderwritingRuleCheck来触发查找数据发布状态。
另外,作为另一种示例,业务数据发布状态界面可以通过发布时间还可以提供用户触发重新发布目标微服务的业务数据包的重新发布按钮,以及触发回滚发布目标微服务的业务数据包的回滚发布按钮等。
具体地,业务数据发布状态界面针对查询到的查询出业务数据包的查询结果可以包括以下内容:发布状态、发布起始时间,结束时间,版本号,发布日志入口,重新发布按钮、回滚发布按钮等。例如,在用户对发布日志入口进行点击之后,数据发布管理系统10展示提供配置历史界面展示配置数据的所有版本,配置人员可选择任意两个版本配置进行比较。另外,该配置历史界面中还可以提供待发布版本与线上生效版本的比较,并提供发布按钮,还可以提供外围校验按钮等。
步骤609:服务器400解析目标业务数据包,得到目标业务数据包中的目标数据集指示的数据。作为一种示例,服务器400解析目标业务数据包,可以获取一个目标数据集的名称为UnderwritingRuleCheck的“核保规则检验”数据。
步骤610:服务器400从配置表中查找目标数据集对应的第一导入执行器和第一回调信息,通过第一导入执行器在服务器400中导入目标数据集指示的数据,并执行第一回调信息指示的第一回调操作。结合上述示例,服务器400可以从配置表中查找与名称为UnderwritingRuleCheck的数据集对应的导入执行器以及回调信息。
其中,在目标数据集包括多个子数据集时,第一导入执行器具体为多个子导入执行器,另外第一回调信息也包括多个子回调信息,每个回调信息指示一个回调操作。
作为一种示例,第一回调操作可以为清缓存,重建索引,推送数据到集成平台,邮件返回发布结果报告等。例如,清缓存指的是为在服务器400中清缓存以存储业务数据包。重建索引指的是在服务器400为业务数据包重建的索引。推送数据到集成平台指的是将业务数据包中的数据推送的数据发布管理系统10中。另外,邮件返回发布结果报告指的是服务器400将业务数据发布成功或失败的结果以邮件形式发送给预设的邮箱以供技术人员查看。
在一些实施例中,回调操作可以继承发布服务的回调接口(如上文中的导入接口)进行扩展,在微服务中以spring bean(即微服务项目,如上述目标微服务)的方式体现。具体地,数据集的回调信息的可以通过以下步骤实现:首先,将对应的spring bean name(如上述目标为服务器的名称)提前配置在目标环境的数据库中;然后,通过spring bean name可获取到spring bean,最后执行spring bean中的固定方法进行回调。
步骤611:服务器500解析目标业务数据包,得到目标业务数据包中的目标数据集指示的数据。
步骤612:服务器500从配置表中查找目标数据集对应的第二导入执行器和第二回调信息,通过第二导入执行器在服务器500中导入目标数据集指示的数据,并执行第二回调信息指示的第二回调操作。
类似的,对步骤611和612的描述可以参照上文中对步骤609和步骤610的描述,此处不再赘述。其中,第二回调信息与第一回调信息相同或不同。
需要说明的是,本申请实施例中仅以目标环境为测试环境40和集成环境50 为例说明,实际应用可以为更多或更少的目标环境。
可以理解的是,本申请实施例中,在数据发布前、发布过程中以及发布之后,服务器400和服务器500均可以进行回调操作。
本申请实施例中,基于配置文件发布配置数据时可以支持多源数据发布。另外,只需一次对配置文件的配置,后续便可一键全量导出配置数据,而后可以一键发布数据并智能化处理回调操作。再不需人工介入,避免了大量的重复工作,极大的缩短了项目的上线周期,减少了后续运维成本。
在一种可能的实现方式中,如图7所示,为本发明实施例提供的一种终端设备100的硬件结构示意图。图7示出的终端设备100包括:处理器1001、通信单元1002、存储器1003、用户接口1004和总线接口1005。图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1001代表的一个或多个处理器和存储器1003代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。通信单元1002可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的管理设备,用户接口1004还可以是能够外接内接需要设备的接口,连接的设备包括但不限于键盘、显示器、扬声器、麦克风、操纵杆、鼠标等。处理器1001负责管理总线架构和通常的处理,存储器1003可以存储处理器1001在执行操作时所使用的数据。显示屏1006用于提供人机交互界面。
另外,终端设备100还包括一些未示出的功能模块,在此不再赘述。
其中,用户接口1004中的显示屏用于提供数据发布管理系统10中的触发数据导出界面、触发数据发布界面以及数据发布状态界面等。进而,用户接口1004 中的键盘和鼠标可以用于支持用户在数据发布管理系统10中输入数据集的名称、目标微服务的名称等信息,以及接收用户数输入的触发一键全量导出数据的操作,以及触发一键发布数据的操作等。通信单元1002,用于向配置环境的服务器发送触发数据导出的第一请求,向代码管理系统20所在的服务器200发送触发数据发布的第二请求,以及向代码管理系统20所在的服务器200发送用于查询数据发布状态的第三请求等。处理器1001,用于根据用户的输入生成第一请求等,并控制通信单元1002向服务器端发起请求。
在一种可能的实现方式中,如图7所示,为本发明实施例提供的一种终端设备100的硬件结构示意图。图7示出的终端设备100包括:处理器1001、通信接口1002、存储器1003、用户接口1004和总线接口1005。图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1001代表的一个或多个处理器和存储器1003代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。通信接口1002可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的管理设备,用户接口1004还可以是能够外接内接需要设备的接口,连接的设备包括但不限于键盘、显示器、扬声器、麦克风、操纵杆、鼠标等。处理器1001负责管理总线架构和通常的处理,存储器1003可以存储处理器1001在执行操作时所使用的数据。显示屏1006用于提供人机交互界面。
另外,终端设备100还包括一些未示出的功能模块,在此不再赘述。
其中,用户接口1004中的显示屏用于提供数据发布管理系统10中的触发数据导出界面、触发数据发布界面以及数据发布状态界面等。进而,用户接口1004 中的键盘和鼠标可以用于支持用户在数据发布管理系统10中输入数据集的名称、目标微服务的名称等信息,以及接收用户数输入的触发一键全量导出数据的操作,以及触发一键发布数据的操作等。通信接口1002,用于向配置环境的服务器发送触发数据导出的第一请求,向代码管理系统20所在的服务器200发送触发数据发布的第二请求,以及向代码管理系统20所在的服务器200发送用于查询数据发布状态的第三请求等。处理器1001,用于根据用户的输入生成第一请求等,并控制通信接口1002向服务器端发起请求。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机10(如手机10中的各个器件)执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机10(如手机10中的各个器件)执行的各个功能或者步骤。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC) 或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元 /模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (13)

1.一种数据发布方法,其特征在于,所述方法包括:
终端设备向配置环境服务器发起数据导出指令,所述数据导出指令与目标微服务相关联;
所述配置环境服务器响应于所述数据导出指令,按照预设的目标配置文件确定与所述目标微服务对应的目标导出执行器和目标数据集,其中,所述目标配置文件用于定义所述目标微服务、所述目标数据集以及所述目标导出执行器之间的对应关系;
所述配置环境服务器使用所述目标导出执行器,将所述目标数据集指示的数据从所述配置环境服务器导出到代码管理服务器;所述目标数据集指示的数据是与所述目标微服务对应的配置数据中的部分数据;
所述代码管理服务器将所述目标数据集指示的数据保存至与所述目标微服务对应的第一仓库中;所述第一仓库为所述代码管理服务器中用于存储所述目标微服务的配置数据的仓库,并且第一仓库与所述代码管理服务器中用于存储所述目标微服务的应用数据的仓库不同;
所述代码管理服务器将所述目标数据集指示的所述第一仓库中的全部配置数据打包为业务数据包,并将所述业务数据包发布到至少一个目标环境服务器中,其中,所述业务数据包中包括所述目标微服务的所有配置数据,不包括所述目标微服务的应用数据。
2.根据权利要求1所述的方法,其特征在于,所述目标数据集还用于定义预设变更类型;
所述方法还包括:
在所述目标数据集指示的数据的变更类型符合所述预设变更类型的情况下,所述至少一个目标环境服务器导入所述目标数据集指示的数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述配置环境服务器从所述数据导出指令中解析出所述目标微服务的名称;
所述配置环境服务器按照所述目标微服务的名称,从与所述目标微服务对应的所述目标配置文件中查找出与所述目标数据集对应的所述目标导出执行器。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述目标数据集中包括多个子数据集,所述目标导出执行器中包括多个子导出执行器,一个所述子数据集对应一个子导出执行器;并且,
所述多个子数据集中的一部分子数据集中的源数据为所述目标微服务的源数据,另一部分子数据集中的源数据为与所述目标微服务不同的微服务的源数据。
5.根据权利要求4所述的方法,其特征在于,所述多个子数据集中的源数据的数据类型包括:数据库脚本、图片、可携带文档格式、表格、文档中的至少一种。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
第一目标环境服务器解析出所述数据包中的所述目标数据集,所述第一目标环境服务器为所述至少一个目标环境服务器中的任意一个;
所述第一目标环境服务器按照与所述目标微服务对应的目标配置表,使用目标导入执行器导入所述目标数据集指示的数据;
其中,所述目标配置表用于定义所述目标微服务、所述目标数据集以及所述目标导入执行器之间的对应关系。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第一目标环境服务器执行与所述目标数据集对应的目标回调操作;
其中,所述目标配置表还用于定义所述目标数据集与目标回调信息之间的对应关系,所述目标数据集中包括多个子数据集,所述目标回调信息中包括多个子回调信息,一个所述子回调操作对应一个所述子数据集。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
所述终端设备向所述代码管理服务器发起数据发布指令,所述数据发布指令与所述目标微服务关联;
其中,所述业务数据包是所述代码管理服务器响应于所述数据发布指令,一键发布到所述至少一个目标环境服务器中的。
9.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述代码管理系统对应的服务器记录所述目标微服务的配置信息对应的发布信息;
其中,所述发布信息中包括以下至少一项:所述目标微服务的名称、所述业务数据包的名称发布时间、发布状态信息以及所述业务数据包中所述目标数据集指示数据的变更类型;并且,
所述发布信息中的包含的所述目标数据集指示数据的变更类型与所述目标数据集中预先定义的预设变更类型的比较结果,作为判断所述业务数据包正确性的判断结果。
10.根据权利要求9所述的方法,其特征在于,所述变更类型为新增数据、变更数据和删减数据中的至少一种。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
所述终端设备接收与所述业务数据包对应的发布查询请求;
所述终端设备向所述代码管理系统对应的服务器发起与所述业务数据包对应的发布查询请求;
所述代码管理系统对应的服务向所述终端设备返回所述发布信息;
所述终端设备通过查询界面展示所述发布信息、发布按钮、回滚按钮和发布日志按钮;
其中,所述发布按钮用于触发将所述业务数据包重新发布至所述至少一个目标环境服务器中,所述回滚按钮用于触发在所述至少一个目标环境服务器中对所述业务数据执行回滚操作,发布日志按钮用于触发所述终端设备显示所述业务数据包的历史发布信息。
12.根据权利要求1至11中任一项所述的方法,其特征在于,
所述目标微服务应用于互联网金融产品或者互联网保险产品。
13.一种数据发布系统,其特征在于,所述系统包括终端设备,配置环境服务器,代码管理服务器,以及至少一个目标环境服务器;
所述终端设备,用于向配置环境服务器发起数据导出指令,所述数据导出指令与目标微服务关联;
所述配置环境服务器,用于响应于所述数据导出指令,按照预设的目标配置文件确定与所述目标微服务对应的目标导出执行器和目标数据集,其中,所述目标配置文件用于定义所述目标微服务、所述目标数据集以及所述目标导出执行器之间的对应关系;
所述配置环境服务器使用所述目标导出执行器,将所述目标数据集指示的数据从所述配置环境服务器导出到代码管理服务器;所述目标数据集指示的数据是与所述目标微服务对应的配置数据中的部分数据;
所述代码管理服务器,还用于将所述目标数据集指示的数据保存至与所述目标微服务对应的第一仓库中;所述第一仓库为所述代码管理服务器中用于存储所述目标微服务的配置数据的仓库,并且第一仓库与所述代码管理服务器中用于存储所述目标微服务的应用数据的仓库不同;
所述代码管理服务器,还用于将所述目标数据集指示的所述第一仓库中的全部配置数据打包为业务数据包,并将所述业务数据包发布到至少一个目标环境服务器中,其中,所述业务数据包中包括所述目标微服务的所有配置数据,不包括所述目标微服务的应用数据。
CN202210749103.2A 2022-06-29 2022-06-29 数据发布方法及系统 Active CN115202711B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210749103.2A CN115202711B (zh) 2022-06-29 2022-06-29 数据发布方法及系统
PCT/CN2023/098320 WO2024001679A1 (zh) 2022-06-29 2023-06-05 数据发布方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210749103.2A CN115202711B (zh) 2022-06-29 2022-06-29 数据发布方法及系统

Publications (2)

Publication Number Publication Date
CN115202711A true CN115202711A (zh) 2022-10-18
CN115202711B CN115202711B (zh) 2023-11-14

Family

ID=83577663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210749103.2A Active CN115202711B (zh) 2022-06-29 2022-06-29 数据发布方法及系统

Country Status (2)

Country Link
CN (1) CN115202711B (zh)
WO (1) WO2024001679A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024001679A1 (zh) * 2022-06-29 2024-01-04 易保网络技术(上海)有限公司 数据发布方法及系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352649A (zh) * 2018-12-24 2020-06-30 北京嘀嘀无限科技发展有限公司 代码处理方法、装置、服务器及可读存储介质
CN111708571A (zh) * 2020-06-17 2020-09-25 珠海宏桥高科技有限公司 微服务部署方法、装置、电子设备及存储介质
CN111966451A (zh) * 2020-07-24 2020-11-20 苏州浪潮智能科技有限公司 一种数据抽取方法、系统、设备以及介质
CN112181439A (zh) * 2020-09-24 2021-01-05 中国建设银行股份有限公司 一种微服务部署方法、装置、电子设备及可读存储介质
CN112363718A (zh) * 2020-11-10 2021-02-12 杭州和利时自动化有限公司 一种基于微服务架构的工业应用集成系统
CN112511608A (zh) * 2020-11-19 2021-03-16 中国平安财产保险股份有限公司 微服务模块注册与测试方法、装置、设备及存储介质
WO2021073085A1 (zh) * 2019-10-14 2021-04-22 上海交通大学 面向微服务的纳秒级电力资源分配方法和系统
CN112860450A (zh) * 2020-12-04 2021-05-28 武汉悦学帮网络技术有限公司 一种请求处理方法及装置
CN113434175A (zh) * 2021-06-29 2021-09-24 平安科技(深圳)有限公司 数据处理方法、装置、存储介质及设备
CN113792077A (zh) * 2021-09-17 2021-12-14 易保网络技术(上海)有限公司 一种数据处理方法、程序产品、可读介质和电子设备
US20220012051A1 (en) * 2014-11-11 2022-01-13 Fair Isaac Corporation Workflow templates for configuration packages
US20220092077A1 (en) * 2020-09-18 2022-03-24 Toshiba Global Commerce Solutions Holdings Corporation Methods and systems providing synchronization of data in a distributed system using microservice architecture in servers, store controllers, terminals and related articles of manufacture

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115202711B (zh) * 2022-06-29 2023-11-14 易保网络技术(上海)有限公司 数据发布方法及系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220012051A1 (en) * 2014-11-11 2022-01-13 Fair Isaac Corporation Workflow templates for configuration packages
CN111352649A (zh) * 2018-12-24 2020-06-30 北京嘀嘀无限科技发展有限公司 代码处理方法、装置、服务器及可读存储介质
WO2021073085A1 (zh) * 2019-10-14 2021-04-22 上海交通大学 面向微服务的纳秒级电力资源分配方法和系统
CN111708571A (zh) * 2020-06-17 2020-09-25 珠海宏桥高科技有限公司 微服务部署方法、装置、电子设备及存储介质
CN111966451A (zh) * 2020-07-24 2020-11-20 苏州浪潮智能科技有限公司 一种数据抽取方法、系统、设备以及介质
US20220092077A1 (en) * 2020-09-18 2022-03-24 Toshiba Global Commerce Solutions Holdings Corporation Methods and systems providing synchronization of data in a distributed system using microservice architecture in servers, store controllers, terminals and related articles of manufacture
CN112181439A (zh) * 2020-09-24 2021-01-05 中国建设银行股份有限公司 一种微服务部署方法、装置、电子设备及可读存储介质
CN112363718A (zh) * 2020-11-10 2021-02-12 杭州和利时自动化有限公司 一种基于微服务架构的工业应用集成系统
CN112511608A (zh) * 2020-11-19 2021-03-16 中国平安财产保险股份有限公司 微服务模块注册与测试方法、装置、设备及存储介质
CN112860450A (zh) * 2020-12-04 2021-05-28 武汉悦学帮网络技术有限公司 一种请求处理方法及装置
CN113434175A (zh) * 2021-06-29 2021-09-24 平安科技(深圳)有限公司 数据处理方法、装置、存储介质及设备
CN113792077A (zh) * 2021-09-17 2021-12-14 易保网络技术(上海)有限公司 一种数据处理方法、程序产品、可读介质和电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
侯阔;殷晓磊;: "微服务架构在大数据管理平台中的应用", 建设科技, no. 19 *
张宸;王惠森;: "基于微服务架构的图书馆机构知识库设计研究", 图书馆学研究, no. 08 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024001679A1 (zh) * 2022-06-29 2024-01-04 易保网络技术(上海)有限公司 数据发布方法及系统

Also Published As

Publication number Publication date
WO2024001679A1 (zh) 2024-01-04
CN115202711B (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
CN108027833B (zh) 用于创建结构化数据语言查询的方法
US8296311B2 (en) Solution search for software support
US10042921B2 (en) Robust and readily domain-adaptable natural language interface to databases
US10482135B2 (en) Facilitating dynamic generation and customization of software applications at client computing devices using server metadata in an on-demand services environment
US20120041921A1 (en) Mechanism for facilitating efficient business rules management and data processing
US10938907B2 (en) Techniques and architectures for managing disparate heterogeneous cloud-based resources
US10650028B2 (en) Relational database instruction validation
US20200249921A1 (en) Structured development for web application frameworks
US20130290406A1 (en) Mechanism for providing a cloud platform for facilitating and supporting user-controlled development and management of user products
EP3018595A1 (en) System and method for reporting multiple objects in enterprise content management
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
WO2024001679A1 (zh) 数据发布方法及系统
US20190147088A1 (en) Reporting and data governance management
US11693859B2 (en) Systems and methods for data retrieval from a database indexed by an external search engine
US10459987B2 (en) Data virtualization for workflows
US20230289331A1 (en) Model generation service for data retrieval
US10817272B2 (en) Generation and usage of language-converted script
US8543549B2 (en) Normalizing data on database restore
US10545962B2 (en) Relational database instruction validation
US10838947B2 (en) Consistency check for foreign key definition
US20240168872A1 (en) Graphical user interface and log analysis tool for analyzing log data to identify errors associated with application execution
US10769164B2 (en) Simplified access for core business with enterprise search
US20230244863A1 (en) System and method for reference validation of spreadsheet
WO2021102743A1 (zh) 工时获取方法、工时获取装置、终端设备及服务器
US20220121846A1 (en) Line based matching of documents

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