CN113421109A - 一种业务核对方法、装置、电子设备和存储介质 - Google Patents

一种业务核对方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113421109A
CN113421109A CN202110529553.6A CN202110529553A CN113421109A CN 113421109 A CN113421109 A CN 113421109A CN 202110529553 A CN202110529553 A CN 202110529553A CN 113421109 A CN113421109 A CN 113421109A
Authority
CN
China
Prior art keywords
checking
script
task
cluster
external data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110529553.6A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110529553.6A priority Critical patent/CN113421109A/zh
Publication of CN113421109A publication Critical patent/CN113421109A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0222During e-commerce, i.e. online transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Computational Linguistics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提出了一种业务核对方法、装置、电子设备和计算机存储介质,应用于核对集群中的任意一台计算机设备,所述核对集群用于对虚拟资产发放场景中的业务数据进行核对,该方法包括:接收触发源消息,根据所述触发源消息,确定是否触发核对任务;所述核对任务包括核对脚本以及与所述核对脚本执行相关的配置参数;在确定触发所述核对任务时,按照所述配置参数确定的脚本执行方式,获取与所述虚拟资产发放场景中业务数据相关的外部数据源,并从所述外部数据源获取所述核对脚本需要用到的参数;基于所述核对脚本需要用到的参数,执行所述核对脚本,得到所述核对任务的核对结果。

Description

一种业务核对方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务核对方法、装置、电子设备和计算机存储介质。
背景技术
在电商行业中,经常会涉及虚拟资产发放场景,比如发放现金红包、优惠券、虚拟货币、积分等。正确准时的发放资产,对用户来说,可以带来切实优惠,提升购物体验;对企业而言,事关商业信誉和公司口碑。但是由于存在不可控因素,发生资损事故是不可避免的,因此如何第一时间发现故障、及时止损、降低影响显得尤为重要。目前大型电商企业的软件架构都是采用分布式实现,导致执行一次完整的业务操作需要调用许多外部业务***,只要其中有一个业务***出现问题,轻则性能降低,重则数据异常、软件崩溃。另外,互联网黑产频繁攻击生产***,一旦业务代码存在逻辑漏洞,不及时发现,将会造成严重的资产损失。
针对上述场景中存在的数据异常问题,相关技术中,往往采用数据核对平台对数据进行核对,常见的核对方式包括上下游数据核对、定时数据库核对。上下游数据核对指的是上游业务***变更某条数据之后会触发数据核对平台相应的核对规则,比如检查下游业务***收到的数据是否一致。定时数据库核对指的是定时执行结构化查询语言(Structured Query Language,SQL)脚本,检查关键数据是否有异常。相关技术中,数据核对平台的核对规则比较简单,已经无法满足复杂的核对需求,因此,需要提供一种能够满足复杂的核对需求的业务核对方法。
发明内容
本申请提供一种业务核对方法、装置、电子设备和计算机存储介质;可以解决相关技术中因为数据核对平台的核对规则比较简单,无法满足复杂的核对需求的问题。
本申请的技术方案是这样实现的:
本申请实施例提供了一种业务核对方法,应用于核对集群中的任意一台计算机设备,所述核对集群用于对虚拟资产发放场景中的业务数据进行核对,所述方法包括:
接收触发源消息,根据所述触发源消息,确定是否触发核对任务;所述核对任务包括核对脚本以及与所述核对脚本执行相关的配置参数;
在确定触发所述核对任务时,按照所述配置参数确定的脚本执行方式,获取与所述虚拟资产发放场景中业务数据相关的外部数据源,并从所述外部数据源获取所述核对脚本需要用到的参数;
基于所述核对脚本需要用到的参数,执行所述核对脚本,得到所述核对任务的核对结果。
在一些实施例中,所述方法还包括:
预先将所述外部数据源的连接对象存储至所述核对集群中每台计算机设备的本地缓存中;
在执行所述核对脚本时,从所述本地缓存中获取所述外部数据源的连接对象。
在一些实施例中,所述方法还包括:
预先将所述外部数据源的连接对象存储至缓存Redis中;
在执行所述核对脚本时,从所述缓存Redis中获取所述外部数据源的连接对象。
在一些实施例中,所述方法还包括:
在确定本地缓存中的数据被修改后,将修改后的数据通过数据库操作日志Binlog封装成消息对象,以广播形式发送给所述核对集群中的每台计算机设备。
在一些实施例中,所述方法还包括:
通过轮询方式监控所述核对集群中的公共数据储存源,在确定所述公共数据储存源的数据被修改后,更新本地缓存中的对应数据;所述公共数据储存源包括缓存Redis和/或数据库。
在一些实施例中,所述从所述外部数据源获取所述核对脚本需要用到的参数,包括:
在确定触发所述核对任务时,获取所述核对任务;
通过所述核对任务的核对脚本调用所述外部数据源,获取所述核对脚本需要用到的参数。
在一些实施例中,所述外部数据源可以包括以下至少一项:缓存、远程服务接口、数据库。
本申请实施例还提出了一种业务核对装置,应用于核对集群中的任意一台计算机设备,所述核对集群用于对虚拟资产发放场景中的业务数据进行核对,所述装置包括触发模块和执行模块,其中,
触发模块,用于接收触发源消息,根据所述触发源消息,确定是否触发核对任务;所述核对任务包括核对脚本以及与所述核对脚本执行相关的配置参数;
执行模块,用于在确定触发所述核对任务时,按照所述配置参数确定的脚本执行方式,获取与所述虚拟资产发放场景中业务数据相关的外部数据源,并从所述外部数据源获取所述核对脚本需要用到的参数;基于所述核对脚本需要用到的参数,执行所述核对脚本,得到所述核对任务的核对结果。
本申请实施例提供一种电子设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的业务核对方法。
本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的业务核对方法。
本申请实施例提出了一种业务核对方法、装置、电子设备和计算机存储介质,所述方法可以应用于核对集群中的任意一台计算机设备,所述核对集群用于对虚拟资产发放场景中的业务数据进行核对,该方法包括:接收触发源消息,根据所述触发源消息,确定是否触发核对任务;所述核对任务包括核对脚本以及与所述核对脚本执行相关的配置参数;在确定触发所述核对任务时,按照所述配置参数确定的脚本执行方式,获取与所述虚拟资产发放场景中业务数据相关的外部数据源,并从所述外部数据源获取所述核对脚本需要用到的参数;基于所述核对脚本需要用到的参数,执行所述核对脚本,得到所述核对任务的核对结果。
可以看出,本申请实施例通过引入外部数据源,例如,缓存、远程服务接口和数据库中的至少一种,使得在执行核对任务相关的核对脚本时,可以从外部数据源中获取需要用到的必要参数;这样,能够丰富核对逻辑,确保深层次、多维度的业务数据核对,满足复杂的核对需求;进一步地,由于外部数据源与虚拟资产发放场景中的业务数据相关,因而,基于核对任务的核对结果,可以及时有效地发现业务数据是否异常;进而,在虚拟资产发放场景中,可以有效降低发生资损事故的风险。
附图说明
图1a是本申请实施例中的一种业务核对方法的流程示意图;
图1b为本申请实施例中确定核对脚本的类型的结构示意图;
图2a为本申请实施例中的业务核对流程的结构示意图;
图2b为本申请实施例中核对集群对应的软件架构的结构示意图;
图3为本申请实施例的业务核对装置的组成结构示意图;
图4为本申请实施例的电子设备的结构示意图。
具体实施方式
以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本申请实施例中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其它要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,I和/或J,可以表示:单独存在I,同时存在I和J,单独存在J这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括I、J、R中的至少一种,可以表示包括从I、J和R构成的集合中选择的任意一个或多个元素。
例如,本申请实施例提供的业务核对方法包含了一系列的步骤,但是本申请实施例提供的业务核对方法不限于所记载的步骤,同样地,本申请实施例提供的业务核对装置包括了一系列单元,但是本申请实施例提供的业务核对装置不限于包括所明确记载的单元,还可以包括为获取相关任务数据、或基于任务数据进行处理时所需要设置的单元。
本申请实施例可以应用于终端设备和服务器组成的计算机***中,并可以与众多其它通用或专用计算***环境或配置一起操作。这里,终端设备可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***,等等,服务器可以是小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
终端设备、服务器等电子设备可以通过程序模块的执行实现相应的功能。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
在本申请的一些实施例中,业务核对方法可以利用业务核对装置中的处理器实现,上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(DigitalSignal Processing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。
图1a是本申请实施例中的一种业务核对方法的流程示意图,该方法可以应用于核对集群中的任意一台计算机设备;其中,核对集群用于对虚拟资产发放场景中的业务数据进行核对,如图1a所示,该方法包括如下步骤:
步骤100:接收触发源消息,根据触发源消息,确定是否触发核对任务;核对任务包括核对脚本以及与核对脚本执行相关的配置参数。
本申请实施例中,触发源消息表示可以对核对集群中任意一台计算机设备上的核对任务进行触发的信息;这里,核对任务可以是开发人员或用户事先配置好的;即,当核对集群中的任意一台计算机设备在接收到触发源消息时,便会根据触发源消息,确定是否触发对应的核对任务。
这里,触发源消息可以分为定时调度和消息触发这两种类型;可以根据触发源消息的类型可以确定核对任务的类型;在确定触发源消息为定时调度时,确定核对任务的类型为定时任务;在确定触发源消息为消息触发时,确定核对任务的类型为MQ任务。
示例性地,还可以根据触发源消息的类型可以确定核对任务的执行方式。在确定触发源消息为定时调度时,可以通过设置Cron参数实现对核对任务的定时执行;在确定触发源消息为消息触发时,核对任务的执行方式可以自由配置为延迟执行时间和采样率的组合式,比如实时每条执行,实时10%采样执行,延迟1秒每条执行、延迟1秒50%采样执行等。
示例性地,在确定触发源消息为消息触发时,每当核对集群中的任意一台计算机设备监听到上游应用产生的消息数据后,便可根据上述任意一种执行方式执行核对任务的核对流程。鉴于虚拟资产发放场景中有些时候不希望对上游应用发送的每条消息数据都进行核对,可以在创建核对任务时配置消息采样参数,按照特定时间间隔接收上游应用发送的消息数据。对于部分场景存在上下游数据延迟、即时式核对反而会引发误报的问题,可以在创建核对任务时配置消息延迟参数,将在收到消息数据后,延迟特定时间后再执行核对任务的核对逻辑。
这里,与核对脚本执行相关的配置参数除了包括上述消息采样参数、消息延迟参数外,还可以包括核对脚本的名称、核对脚本的执行时间等与核对脚本操作相关的参数;本申请实施例对此不作限制。
示例性地,上游应用发送的消息数据可以包括MQ消息、数据库Binlog消息、应用日志消息中的至少一种,也可以包括其它类型的消息;本申请实施例对此不作限制。
步骤101:在确定触发核对任务时,按照配置参数确定的脚本执行方式,获取与虚拟资产发放场景中业务数据相关的外部数据源,并从外部数据源获取核对脚本需要用到的参数。
示例性地,外部数据源表示除核对集群支持的常规数据库表数据源之外的其它类型的数据源;外部数据源可以包括以下至少一项:缓存、远程服务接口、数据库。
在一些实施例中,上述方法还可以包括:在确定触发核对任务时,获取核对任务;通过核对任务的核对脚本调用外部数据源,获取核对脚本需要用到的参数。
示例性地,核对脚本的类型可以根据核对任务的类型进行确定;在根据触发源消息,确定触发核对任务时,可以进一步确定核对任务的类型;进而,根据核对任务的类型确定对应的核对脚本;图1b为本申请实施例中确定核对脚本的类型的结构示意图,如图1b所示,在确定核对任务的类型为定时任务时,定时任务的核对脚本可以为SQL脚本或Groovy脚本;在确定核对任务的类型为MQ任务时,MQ任务的核对脚本可以为Groovy脚本。
示例性地,定时任务由计算机设备的***根据定时时刻自行触发,定时任务的核对脚本均没有外部入参数据。在当前时刻为定时时刻,确定触发核对任务时,获取核对任务;并通过定时任务的核对脚本调用外部数据源,获取核对逻辑中需要用到的数据参数。
示例性地,MQ任务的核对脚本存在外部入参数据,该外部入参数据即为经过数据转换后的MQ消息,示例性地,还可以自定义增删属性,对核对脚本中的参数执行增删操作,便于后续核对脚本的执行。
示例性地,SQL脚本适合查询单一数据库表的简单场景;比如查询用户发奖信息表的红包金额字段,检查是否有大于上限值100元的异常记录,只需要一条简单的SQL语句就可以完成。
示例性地,Groovy脚本适合核对复杂核对逻辑以及核对过程的场景,该脚本需要引入外部数据源中的数据;比如,“每个用户发奖情况记录在外部数据源的数据库中,活动发奖金额的上限值记录在外部数据源的缓存中”,此时,需要定时统计所有用户发奖的总金额是否超过缓存中设定的上限值。由于SQL只能查询单一数据库表(跨两个数据库表查询也是无能为力的),因而,缓存中的数据是查不到的;然而,Groovy脚本可以先调用预先配置的外部数据源的数据库并书写SQL语句统计所有用户发奖的总金额。然后再调用预先配置的外部数据源的缓存并书写查询命令获得发奖金额的上限值,最后再将这两个值进行比较,若总金额大于上限值,说明业务数据有异常,需要及时修复异常。这里,总金额以及上限值为核对任务的核对脚本需要用到的参数。
本申请实施例中,在根据触发源消息,确定触发核对任务时,可以获取核对任务,并通过核对任务的核对脚本调用外部数据源(例如,缓存、远程服务接口和数据库中的至少一种),进而,从外部数据源中获取核对任务的核对脚本需要用到的参数。
步骤102:基于核对脚本需要用到的参数,执行核对脚本,得到核对任务的核对结果。
示例性地,在根据上述步骤确定核对脚本需要用到的参数后,可以基于该参数,执行核对脚本,得到核对任务的核对结果;并将核对结果中的关键数据,比如脚本入参、脚本返回值、执行时间、成功、失败、执行日志、错误异常等通过Elasticsearch集群进行保存;这里,为避免数据存储量过大影响核对效率,可以设置关键数据的有效期,例如,关键数据默认3个月过期。
在一些实施例中,上述方法还可以包括:预先将外部数据源的连接对象存储至核对集群中每台计算机设备的本地缓存中;在执行核对脚本时,从本地缓存中获取外部数据源的连接对象。
本申请实施例中,连接对象用于在执行核对脚本时,实现对外部数据源的调用;这里,通过将连接对象存储至本地缓存,可以快速查找连接对象,进而,通过连接对象调用外部数据源,获取核对脚本需要用到的参数。
示例性地,Groovy脚本在执行时需要调用外部数据源,由于调用频次可能很高,为提高脚本执行效率,可以采取本地缓存的方式。这样,每当Groovy脚本需要调用外部数据源,首先在核对集群中每台计算机设备的哈希表中检索是否有外部数据源的连接对象,若不存在,则以外部数据源身份标识号(Identity document,ID)为键(key)在本地缓存中查找具体的配置信息,再根据配置信息初始化外部数据源的连接对象,并将其加入哈希表中,方便下次调用。
在一些实施例中,上述方法还可以包括:预先将外部数据源的连接对象存储至缓存Redis中;在执行核对脚本时,从缓存Redis中获取外部数据源的连接对象。
示例性地,还可以采用缓存Redis存储外部数据源的配置信息替代本地缓存存储;每当核对集群中的每台计算机设备需要调用外部数据源时,首先检索本地哈希表是否存在外部数据源的连接对象,若不存在,统一访问缓存Redis,获取外部数据源的配置信息自行初始化,并置入本地哈希表中。由于读取缓存Redis是网络操作,耗时相比读取本地缓存较久,不过鉴于读取外部数据源配置信息仅是一次性操作,且在配置信息未修改的情况,不需要再次读取缓存Redis,实际效率差异不大。
在一些实施例中,上述方法还可以包括:在确定本地缓存中的数据被修改后,将修改后的数据通过数据库操作日志Binlog封装成消息对象,以广播形式发送给核对集群中的每台计算机设备。
示例性地,可以采用Binlog技术进行集群数据同步。当本地缓存的数据库表的数据发生增、删、改等修改操作时,可以将修改后的数据通过数据库操作日志Binlog封装成消息对象,以广播形式发送给集群中的每台计算机设备,然后每台计算机设备根据具体消息内容更新本地缓存,从而快速准确的达到集群数据一致。
在一些实施例中,上述方法还可以包括:通过轮询方式监控核对集群中的公共数据储存源,在确定公共数据储存源的数据被修改后,更新本地缓存中的对应数据;公共数据储存源包括缓存Redis和/或数据库。
示例性地,可以基于轮询的集群数据同步技术,替换上述基于数据库操作日志Binlog的集群同步技术。核对集群中的其它计算机设备开启单独线程定时查询缓存Redis或数据库中的数据,当检测到Redis或数据库中的数据发生修改后,根据其它计算机设备中每个计算机设备对应的缓存Redis或数据库中的数据,立即更新本地对应数据,从而达到集群数据的一致性。
本申请实施例提出了一种业务核对方法、装置、电子设备和计算机存储介质,方法可以应用于核对集群中的任意一台计算机设备,核对集群用于对虚拟资产发放场景中的业务数据进行核对,该方法包括:接收触发源消息,根据触发源消息,确定是否触发核对任务;核对任务包括核对脚本以及与核对脚本执行相关的配置参数;在确定触发核对任务时,按照配置参数确定的脚本执行方式,获取与虚拟资产发放场景中业务数据相关的外部数据源,并从外部数据源获取核对脚本需要用到的参数;基于核对脚本需要用到的参数,执行核对脚本,得到核对任务的核对结果。可以看出,本申请实施例通过引入外部数据源,例如,缓存、远程服务接口和数据库中的至少一种,使得在执行与核对任务相关的核对脚本时,可以从外部数据源中获取需要用到的必要参数;这样,能够丰富核对逻辑,确保深层次、多维度的业务数据核对,满足复杂的核对需求;进一步地,由于外部数据源与虚拟资产发放场景中的业务数据相关,因而,基于核对任务的核对结果,可以及时有效地发现业务数据是否异常;进而,在虚拟资产发放场景中,可以有效降低发生资损事故的风险。
示例性地,上述方法还可以包括:在确定核对任务的类型为定时任务时,采用统一读取任务数据库的方式获取核对任务;在确定核对任务的类型为MQ任务时,采用本地缓存的方式获取核对任务。
示例性地,对于定时任务,由于执行频率较低,可以采用每次执行时,统一读取任务数据库的方式获取该定时任务,这样既保证了执行效率,又不用考虑分布式部署下的脚本同步问题。
示例性地,对于MQ任务,由于消息触发的频率不确定,在某些大流量场景下,上游应用每秒产生的消息数据条数能达到几万,若仍采用实时读取任务数据库的方式,会因为数据库***本身软硬件限制,导致核对集群达到性能瓶颈,甚至引发数据库宕机。鉴于本机内存访问速度远超磁盘访问和网络访问,本申请实施例没有采用本机磁盘存储核对任务,也没有采用分布式文件存储***,例如,Hadoop分布式文件***(Hadoop DistributedFile System,HDFS),或者缓存Redis,而是采用本地缓存存储MQ任务;例如,可以选用Caffeine缓存库。每当有上游应用的消息数据到来,将会读取本地缓存中以此消息主题命名的缓存键(key),获取到此消息主题下的核对任务,然后以线程池方式并发执行核对脚本的核对逻辑。在分布式多机部署下,采用本地缓存存储核对任务,可能带来数据不一致的问题,比如用户修改了核对任务中核对脚本的内容,若不采取集群同步操作,将会导致此台计算机设备执行的是最新核对脚本,而核对集群中的其它计算机设备仍在执行旧核对脚本。为了解决数据不一致问题,可以采用Binlog技术进行集群数据同步;这里的同步方式与上述本地缓存中数据的同步方式相同,此处不再赘述。
示例性地,对于定时任务,本申请实施例底层基于Quartz框架构建,并且采用Redis实现分布式锁,确保核对脚本同一时刻仅会被一台计算机设备执行,防止多台计算机设备重复执行核对任务引发误报。对于MQ任务,在执行Groovy脚本时,会依次完成Groovy脚本的编译、加载、运行过程。但是在大流量、高频次场景下,若Groovy脚本每次执行都需要进行Groovy类的编译步骤,势必会带来极大的性能损耗。因此,本申请实施例在编译Groovy脚本前,首先通过MD5信息摘要算法(MD5 Message-Digest Algorithm)计算Groovy脚本的MD5值,以此作为键(key)在本地缓存中尝试读取对应的值(value),若存在则说明此脚本未有更改,value即为此脚本编译后的class对象,若不存在则说明此脚本是首次运行或者发生修改,需要重新进行编译。另外与定时任务类似,需要确保一条消息数据仅有一台计算机设备执行核对任务。
在本申请实施例中,核对集群将作为统一的消费者组订阅目标主题,每当该主题发送一条消息数据,核对集群中仅有一台计算机设备能收到消息、触发对应的核对逻辑,从而确保单机执行。不管是SQL脚本还是Groovy脚本,脚本安全性对于核对集群的稳定性至关重要。由于脚本可以由用户自行编写,算法的时间、空间复杂度无法控制,万一脚本执行存在死循环、内存溢出(Out Of Memory,OOM)、网络调用超时等情况,将导致严重的性能问题。
为避免出现上述性能问题,本申请实施例基于线程执行各个脚本,设置内存参数Xss限制每个线程的堆栈大小,强制终止执行时间超过阈值的脚本线程,防止其无限占用***资源。另外,外部数据源的集群数据同步措施与上述本地缓存中数据的同步方式相同,此处不再赘述。
为了能够更加体现本申请的目的,在本申请上述实施例的基础上,进行进一步的举例说明。图2a为本申请实施例中的业务核对流程的结构示意图;如图2a所示,该结构可以包括:核对触发源模块、任务获取模块、任务执行模块、结果存储模块、展示模块以及报警模块。
其中,核对触发源模块包括上述触发源消息,可以用于确定在什么情况下需要触发核对任务(核对任务可以由用户事先配置好),比如到某个时间点(定时任务),或者核对集群中的任意一台计算机设备收到某条上游应用发送的消息数据(MQ任务)。
数据处理模块用于在确定需要执行的核对任务为MQ任务后,对上游应用发送的消息数据进行数据处理操作,将其转换成统一的数据格式。
任务获取模块,即,根据触发源消息,比如当前时间上游应用发送的MQ消息的主题,找到对应需要执行的一个或多个核对任务(核对脚本和配置参数)。
任务执行模块,即,将核对任务(核对脚本和配置参数)放入任务执行模块,由于核对任务包括的信息中有部分参数会决定是否执行核对脚本,比如脚本执行时间,如果不在规定时间内,核对任务即使被触发,也不会真正去执行核对脚本;如果在规定时间内,核对任务若被触发,会正常执行核对脚本,得到核对任务的核对结果;进一步地,假设MQ任务包括一个采样率参数(主要目的是防止高频率的上游消息压垮本平台,每秒钟几万条MQ消息,计算机处理不过来会宕机),若采样率参数为10%,则表示有10%的概率会执行核对脚本。
结果存储模块用于保存核对结果中的关键数据,鉴于需要对关键数据做实时动态的数据分析、全文检索等操作,可以采用Elasticsearch集群存储海量的关键数据,并将常用检索字段编入索引,关键数据默认3个月过期。
由于结果存储模块可以将每次核对结果中的关键数据存储于Elasticsearch集群中,因而,展示模块用于根据Elasticsearch集群中海量的关键数据,进行实时动态的统计分析,采用JavaScript实现的开源可视化库ECharts绘制成功率、失败率、单次任务耗时、单位时间执行次数等图表,便于开发人员直观掌握业务数据的健康情况。
报警模块可以支持用户自行设置收件人、内容、通知形式、报警间隔、报警阈值等报警参数,通过结合用户配置的报警参数和脚本执行结果,自定义发送报警信息。由于核对集群底层采用MQ消息队列技术,使得任务执行模块和报警模块实现低耦合;即,任务执行模块专注于脚本执行,不用另外负担具体的报警发送功能,仅需要向报警模块发送消息数据,报警模块监听到新的消息数据会采取对应的报警操作。
图2b为本申请实施例中核对集群对应的软件架构的结构示意图,如图2b所示,核对集群可以采用分布式多机部署,拆分为五个部分,分别为:网络控制台(web console)模块、网络服务(web service)模块、代理(agent)模块、平台数据库模块和Elasticsearch集群。
其中,网络控制台模块涵盖前端页面以及对应的后端控制器(Controller)接口,实现面向用户的网页展示和传递操作请求的功能。网络服务模块承担实现和传递网络控制台模块的页面请求、计算统计数据等职责,譬如将网页增删改脚本内容、报警配置等操作落实置数据库层面、传递核对任务的手动触发请求至代理模块、读取Elasticsearch集群并计算绘制图表所需的统计数据。
代理模块是整个软件架构的核心模块,完成脚本执行相关的操作;代理模块包括上述任务获取模块、任务执行模块以及结果存储模块;平台数据库模块用于存储脚本信息、数据源配置、用户权限等数据,除此之外,还需要向代理模块发送数据库增删查时产生的Binlog消息,维持代理模块中集群数据一致性。Elasticsearch集群用于存储脚本核对结果的关键数据,支持快速查询、定时清理。
本申请实施例将单体应用拆分为分布式应用,主要目的是为了提高水平扩展能力和业务功能隔离。单机应用受限于硬件瓶颈,无法支撑庞大的业务需求,而应用拆分后,在具备数据同步措施的前提下,可以通过增加计算机设备数量提高各模块的服务能力。业务功能隔离旨在提高核对平台的可用性,防止异常脚本拖累整个***,尽可能缩小意外事故的影响范围。
图3为本申请实施例的业务核对装置的组成结构示意图,该装置应用于核对集群中的任意一台计算机设备,核对集群用于对虚拟资产发放场景中的业务数据进行核对,该装置包括:触发模块300和执行模块301,其中:
触发模块300,用于接收触发源消息,根据触发源消息,确定是否触发核对任务;核对任务包括核对脚本以及与核对脚本执行相关的配置参数;
执行模块301,用于在确定触发核对任务时,按照配置参数确定的脚本执行方式,获取与虚拟资产发放场景中业务数据相关的外部数据源,并从外部数据源获取核对脚本需要用到的参数;基于核对脚本需要用到的参数,执行核对脚本,得到核对任务的核对结果。
在一些实施例中,执行模块301,还用于:
预先将外部数据源的连接对象存储至核对集群中每台计算机设备的本地缓存中;
在执行核对脚本时,从本地缓存中获取外部数据源的连接对象。
在一些实施例中,执行模块301,还用于:
预先将外部数据源的连接对象存储至缓存Redis中;
在执行核对脚本时,从缓存Redis中获取外部数据源的连接对象。
在一些实施例中,执行模块301,还用于:
在确定本地缓存中的数据被修改后,将修改后的数据通过数据库操作日志Binlog封装成消息对象,以广播形式发送给核对集群中的每台计算机设备。
在一些实施例中,执行模块301,还用于:
通过轮询方式监控核对集群中的公共数据储存源,在确定公共数据储存源的数据被修改后,更新本地缓存中的对应数据;公共数据储存源包括缓存Redis和/或数据库。
在一些实施例中,执行模块301,用于从外部数据源获取对核对脚本进行核对的参数,包括:
在确定触发核对任务时,获取核对任务;
通过核对任务的核对脚本调用外部数据源,获取核对脚本需要用到的参数。
在一些实施例中,外部数据源可以包括以下至少一项:缓存、远程服务接口、数据库。
在实际应用中,上述触发模块300和执行模块301均可以由位于电子设备中的处理器实现,该处理器可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质。
具体来讲,本实施例中的一种业务核对方法对应的计算机程序指令可以被存储在光盘、硬盘、U盘等存储介质上,当存储介质中的与一种业务核对方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种业务核对方法。
基于前述实施例相同的技术构思,参见图4,其示出了本申请提供的电子设备400,可以包括:存储器401和处理器402;其中,
存储器401,用于存储计算机程序和数据;
处理器402,用于执行存储器中存储的计算机程序,以实现前述实施例的任意一种业务核对方法。
在实际应用中,上述存储器401可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM、快闪存储器(flash memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器402提供指令和数据。
上述处理器402可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的业务核对设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个计算机设备,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

Claims (10)

1.一种业务核对方法,其特征在于,应用于核对集群中的任意一台计算机设备,所述核对集群用于对虚拟资产发放场景中的业务数据进行核对,所述方法包括:
接收触发源消息,根据所述触发源消息,确定是否触发核对任务;所述核对任务包括核对脚本以及与所述核对脚本执行相关的配置参数;
在确定触发所述核对任务时,按照所述配置参数确定的脚本执行方式,获取与所述虚拟资产发放场景中业务数据相关的外部数据源,并从所述外部数据源获取所述核对脚本需要用到的参数;
基于所述核对脚本需要用到的参数,执行所述核对脚本,得到所述核对任务的核对结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先将所述外部数据源的连接对象存储至所述核对集群中每台计算机设备的本地缓存中;
在执行所述核对脚本时,从所述本地缓存中获取所述外部数据源的连接对象。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先将所述外部数据源的连接对象存储至缓存Redis中;
在执行所述核对脚本时,从所述缓存Redis中获取所述外部数据源的连接对象。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定本地缓存中的数据被修改后,将修改后的数据通过数据库操作日志Binlog封装成消息对象,以广播形式发送给所述核对集群中的每台计算机设备。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过轮询方式监控所述核对集群中的公共数据储存源,在确定所述公共数据储存源的数据被修改后,更新本地缓存中的对应数据;所述公共数据储存源包括缓存Redis和/或数据库。
6.根据权利要求1所述的方法,其特征在于,所述从所述外部数据源获取所述核对脚本需要用到的参数,包括:
在确定触发所述核对任务时,获取所述核对任务;
通过所述核对任务的核对脚本调用所述外部数据源,获取所述核对脚本需要用到的参数。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述外部数据源可以包括以下至少一项:缓存、远程服务接口、数据库。
8.一种业务核对装置,其特征在于,应用于核对集群中的任意一台计算机设备,所述核对集群用于对虚拟资产发放场景中的业务数据进行核对,所述装置包括:
触发模块,用于接收触发源消息,根据所述触发源消息,确定是否触发核对任务;所述核对任务包括核对脚本以及与所述核对脚本执行相关的配置参数;
执行模块,用于在确定触发所述核对任务时,按照所述配置参数确定的脚本执行方式,获取与所述虚拟资产发放场景中业务数据相关的外部数据源,并从所述外部数据源获取所述核对脚本需要用到的参数;基于所述核对脚本需要用到的参数,执行所述核对脚本,得到所述核对任务的核对结果。
9.一种电子设备,其特征在于,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
CN202110529553.6A 2021-05-14 2021-05-14 一种业务核对方法、装置、电子设备和存储介质 Pending CN113421109A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110529553.6A CN113421109A (zh) 2021-05-14 2021-05-14 一种业务核对方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110529553.6A CN113421109A (zh) 2021-05-14 2021-05-14 一种业务核对方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN113421109A true CN113421109A (zh) 2021-09-21

Family

ID=77712328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110529553.6A Pending CN113421109A (zh) 2021-05-14 2021-05-14 一种业务核对方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113421109A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003414A (zh) * 2021-12-30 2022-02-01 太平金融科技服务(上海)有限公司深圳分公司 业务回访处理方法、装置、计算机设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059364A1 (en) * 2006-09-01 2008-03-06 Tidwell Lisa C Systems and methods for performing a financial trustworthiness assessment
US20150073949A1 (en) * 2013-09-10 2015-03-12 Clearwater Analytics, Llc System and method for performing reconciliation of an account using at least three sets of records
CN105989059A (zh) * 2015-02-09 2016-10-05 阿里巴巴集团控股有限公司 数据记录核对方法及装置
CN110263071A (zh) * 2019-05-31 2019-09-20 口碑(上海)信息技术有限公司 业务数据核对方法、装置、设备及***架构
CN110442608A (zh) * 2019-07-31 2019-11-12 中国工商银行股份有限公司 信息处理方法、装置、电子设备、介质及***
CN112347110A (zh) * 2019-08-07 2021-02-09 腾讯科技(深圳)有限公司 一种数据差异确定方法、装置、设备及存储介质
CN112419018A (zh) * 2020-01-03 2021-02-26 上海哔哩哔哩科技有限公司 分布式环境下的通用数据对账方法、服务器及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059364A1 (en) * 2006-09-01 2008-03-06 Tidwell Lisa C Systems and methods for performing a financial trustworthiness assessment
US20150073949A1 (en) * 2013-09-10 2015-03-12 Clearwater Analytics, Llc System and method for performing reconciliation of an account using at least three sets of records
CN105989059A (zh) * 2015-02-09 2016-10-05 阿里巴巴集团控股有限公司 数据记录核对方法及装置
CN110263071A (zh) * 2019-05-31 2019-09-20 口碑(上海)信息技术有限公司 业务数据核对方法、装置、设备及***架构
CN110442608A (zh) * 2019-07-31 2019-11-12 中国工商银行股份有限公司 信息处理方法、装置、电子设备、介质及***
CN112347110A (zh) * 2019-08-07 2021-02-09 腾讯科技(深圳)有限公司 一种数据差异确定方法、装置、设备及存储介质
CN112419018A (zh) * 2020-01-03 2021-02-26 上海哔哩哔哩科技有限公司 分布式环境下的通用数据对账方法、服务器及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003414A (zh) * 2021-12-30 2022-02-01 太平金融科技服务(上海)有限公司深圳分公司 业务回访处理方法、装置、计算机设备和存储介质
CN114003414B (zh) * 2021-12-30 2022-04-01 太平金融科技服务(上海)有限公司深圳分公司 业务回访处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US10152382B2 (en) Method and system for monitoring virtual machine cluster
US9712410B1 (en) Local metrics in a service provider environment
CN107016480B (zh) 任务调度方法、装置及***
US20130061095A1 (en) Software failure detection
US9800455B1 (en) Log monitoring system
US20130246358A1 (en) Online verification of a standby database in log shipping physical replication environments
US9374417B1 (en) Dynamic specification auditing for a distributed system
CN111245897B (zh) 数据处理方法、装置、***、存储介质及处理器
JP6252309B2 (ja) 監視漏れ特定処理プログラム,監視漏れ特定処理方法及び監視漏れ特定処理装置
CN113421109A (zh) 一种业务核对方法、装置、电子设备和存储介质
CN109885431A (zh) 用于备份数据的方法和装置
Nascimento et al. Shuttle: Intrusion recovery for paas
CN112445860B (zh) 一种处理分布式事务的方法和装置
Zhou et al. A runtime verification based trace-oriented monitoring framework for cloud systems
US11770295B2 (en) Platform for establishing computing node clusters in different environments
Umer et al. Predicting machine behavior from Google cluster workload traces
CN115373886A (zh) 服务群组容器停机方法、装置、计算机设备和存储介质
WO2021096346A1 (en) A computer-implemented system for management of container logs and its method thereof
US12020039B2 (en) Compute instance warmup operations
CN113031960B (zh) 代码编译方法、装置、服务器及存储介质
US20230066698A1 (en) Compute instance warmup operations
US11875306B1 (en) System and method for agentless application inventory detection
CN112231326B (zh) 一种检测Ceph对象的方法和服务器
US11899525B2 (en) Reproduction of graph data during query evaluation
US20240134734A1 (en) Determining false positive and active event data

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