基于业务场景的实时业务监控方法、系统、终端及介质与流程

文档序号:26139362发布日期:2021-08-03 14:22阅读:133来源:国知局
基于业务场景的实时业务监控方法、系统、终端及介质与流程
本发明涉及业务监控
技术领域
,具体地,涉及一种基于业务场景的实时业务监控方法、系统、终端及介质。
背景技术
:在支付业务中,支付请求并发量大,越来越高的支付业务并发量,复杂的业务处理逻辑,需要对每一笔支付单做完整链路的实时监控,并及时发现超时处理的业务支付单;应用系统对接的渠道、商户等各种第三方网络接口比较多,容易发生由于网络、渠道或商户系统维护、甚至突发的不可预期的异常,导致业务处理出现超时的情况,需要及时监控到并发出告警。传统的解决方法是采用不停地轮询扫描业务系统的关系数据库,通过sql查询状态为“处理中”的业务支付单,并计算对应的超时时间,将超时时间超过一定阈值的业务支付单信息发送给告警平台。传统的关系数据库sql查询方式,对数据库本身的要求较高,也难以应对分库分表以及不同业务分类的处理,应对大规模的并发处理性能和效率低下。因此,传统方法存在比较大的问题:1、对大规模数据的联机交易数据库表做轮询sql查询,对关系数据库造成了巨大压力,影响正常联机业务;2、不同类型业务阈值不一样带来的灵活扩展问题;3、效率和性能较低,无法应对大规模的并发量。经过检索发现:申请号为201610921493.1的中国发明专利申请《一种业务监控的方法及系统》,包括:从业务系统中提取业务日志,并根据所述业务日志打印业务日志,所述打印业务日志的过程包括:将从业务系统中提取业务日志依据业务指标进行存储;采集所打印的业务日志,并将所述业务日志推送至分布式发布订阅消息系统;根据所述业务系统的业务指标,通过所述分布式发布订阅消息系统提取业务日志,并进行聚合计算;根据经过聚合计算后的业务日志,扫描得到发生异常的业务指标。该专利技术虽然公开了通过获取“业务日志”、“分布式发布订阅消息系统(kafka)”等信息进行异常监控的相关内容,但是该专利技术中文件是打印日志,分布式发布订阅消息系统提取业务日志,并进行聚合计算扫描得到异常业务指标;但是将这种方式应用于支付业务中,仍然存在如下问题:1、该专利需要对提取的业务日志进行聚合计算得到业务指标;2、该专利是针对业务指标进行扫描得到发生异常的业务指标,监控粒度比较粗。申请号为201410528628.9的中国发明专利申请《一种对异常数据进行处理的方法、装置及监控系统》,涉及了一种对异常数据进行处理的方法,该方法通过“超时”来判断数据异常,但是该专利技术中所采用的通过“超时”来判断数据异常的方法,但是将这种方式应用于支付业务中,仍然存在如下问题:该专利是通过所发送的测试数据所记录的第一时间戳与第二时间戳的差值作为超时时间,不涉及数据本身的业务含义,即支付业务自身的事件状态。申请号为201811373337.1的中国发明专利申请《一种基于flink的数据流多向处理系统》,记载了利用kafka的高扩展性和高可靠性,可将多个数据源的数据准确地收集汇总,与flink的高效组合。但是将这种方式应用于支付业务中,仍然存在如下问题:该专利核心在于与flink进行整合,利用flink实时计算能力和transformation算子进行数据转换和过滤,保证计算和存储的快速性,无法识别业务支付单超时事件。综上所述,现有技术仍然存在影响正常联机业务、扩展灵活性差、效率和性能较低等问题,目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。技术实现要素:本发明针对现有技术中存在的上述不足,提供了一种基于业务场景的实时业务监控方法、系统、终端及介质。根据本发明的一个方面,提供了一种基于业务场景的实时业务监控方法,包括:在业务应用日志埋点,实时采集埋点数据;根据采集的所述埋点数据,将总耗时超过设定阈值的业务单作为业务异常事件进行实时监控,其中,所述总耗时是指该业务单从发起初始状态到最终完成状态这一过程所耗时间。优选地,所述在业务应用日志埋点,实时采集埋点数据,包括:在业务系统埋点应用日志数据,并异步发送到kafka集群主题分区中;采用flink进程根据kafka消费者注册的指定主题,实时并发地消费不同主题分区内的业务单数据,通过filter算子将业务单状态处于初始状态和最终状态的数据筛选出来,得到实时的埋点数据。优选地,所述根据采集的所述埋点数据,将总耗时超过设定阈值的业务单作为业务异常事件进行实时监控,包括:采用redislua脚本对每一项业务单的状态变化日志进行预排序;通过flinkcep模型对每一项预排序后的业务单进行超时模式匹配,得到业务异常事件。优选地,所述采用redislua脚本对每一项业务单的状态变化日志进行预排序,包括:将同一项业务单不同状态下的埋点数据依次输入至redis中,通过lua脚本对不同状态下的埋点数据的先后顺序进行预排序,并在排序逻辑中确定某项埋点数据在hash数据结构中暂时驻留等待或立即发往下游。优选地,所述通过flinkcep库对每一项预排序后的业务单进行超时模式匹配,包括:针对上游发过来的每一项业务单,利用flink进程中cep复杂事件处理模型,进行实时模式匹配;根据cep复杂事件处理模型中预设的开始条件、结束条件以及完全达成开始条件和结束条件的超时阈值,将超过超时阈值的业务单作为业务异常事件。优选地,所述业务异常事件通过以下方式得到:根据业务的开始条件、结束条件以及超时阈值,构建cep复杂事件处理模型,通过cep复杂事件处理模型的静态方法将上游业务事件流转为模型流patternstream;然后针对所述模型流patternstream调用flatselect平面选择方法,从模型流patternstream中进行匹配分流,最后调用getsideoutput方法获取到超时的事件流,得到业务异常事件。优选地,所述cep复杂事件处理模型中:预设的开始条件为:业务事件初始化状态02。预设的结束条件为:业务事件结束状态00或01。预设的超时阈值为:3~5分钟。优选地,所述方法还包括:将所述业务异常事件进行封装,并发送至下游告警平台。根据本发明的另一个方面,提供了一种基于业务场景的实时业务监控系统,包括:应用日志埋点模块,该模块在业务应用日志埋点;实时数据采集模块,该模块通过应用日志埋点模块,实时获取埋点数据;复杂事件处理模块,该模块针对所述埋点数据,根据业务单发起初始状态到处理中状态再到完成最终状态的状态变化过程,将总耗时超过超时阈值的业务单作为业务异常事件进行实时监控。优选地,所述复杂事件处理模块,采用redislua脚本对每一项业务单的状态变化日志进行预排序,并通过flinkcep模型对每一项预排序后的业务单进行超时模式匹配,得到业务异常事件。优选地,所述应用日志埋点模块在业务系统埋点应用日志数据,并异步发送到kafka集群主题分区中;所述实时数据采集模块采用flink进程根据kafka消费者注册的指定主题,实时并发地消费不同主题分区内的业务单数据,通过filter算子将业务单状态处于初始状态和最终状态的数据筛选出来,得到实时的埋点数据。优选地,所述系统还包括:告警平台模块,该模块根据所述复杂事件处理模块输出的业务异常事件,进行实时告警。根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可用于执行上述任一项所述的方法。根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述任一项所述的方法。由于采用了上述技术方案,本发明实施例与现有技术相比,具有如下至少一项的有益效果:本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,通过kafka获取支付业务应用日志,匹配确定总耗时超时的支付单,通过超时情况进行实时监控。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,采用redislua脚本对kafka里每一笔支付单的状态变化日志进行排序、采用flinkcep模型对每一笔做好状态预排序的支付单进行超时模式匹配。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,在高并发的支付业务处理过程中,实时快速监控到超时异常的支付单,并及时输出到告警平台,提前规避可能发生的经济损失。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,在联机交易业务发生的过程中,实时地从大规模并发支付单中找到出现异常的超时支付单,提前预警。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,很容易横向扩展集群规模来支持支付快速的业务规模增量。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,结合实时计算引擎和高性能的cep复杂事件处理模型(cep复杂事件处理库),监控处理效率和性能很高。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,不需要做聚合计算得到业务指标,而是只需要日志本身的业务状态即可。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,针对每一条业务支付单进行处理,监控粒度比较细。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,不需要额外记录第一时间戳、第二时间戳,只需要依赖业务支付单本身的事件状态属性即可。本发明提供的基于业务场景的实时业务监控方法、系统、终端及介质,充分利用flinkcep实时复杂事件处理能力,实现业务支付单的超时事件匹配并输出超时的业务支付单。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1为本发明一实施例中基于业务场景的实时业务监控方法流程图。图2为本发明一优选实施例中基于业务场景的实时业务监控方法流程图。图3为本发明一实施例中基于业务场景的实时业务监控系统组成模块示意图。图4为本发明一优选实施例中基于业务场景的实时业务监控系统的架构图。具体实施方式下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。图1为本发明一实施例提供的基于业务场景的实时业务监控方法流程图。如图1所示,该实施例提供的基于业务场景的实时业务监控方法,可以包括如下步骤:s100,在业务应用日志埋点,并对埋点数据进行实时采集;本步骤中,日志埋点用来获取业务使用的状况参数,比如每个业务状态的停留时长(timeonsite)等等。s200,针对埋点数据,根据业务单从发起初始状态到最终完成状态的状态变化过程,将总耗时超过设定阈值的业务单作为业务异常事件进行实时监控;本步骤中,首先根据业务情况设置一个阈值即超时阈值,如果根据埋点数据确定该业务的总耗时超过设定阈值,则判断该业务为业务异常,后续进行监控和跟踪;如该业务的总耗时没有超过设定阈值,则为正常业务。其中总耗时是指一个业务单从发起初始状态、处理中状态、最终完成状态的整个过程所耗费时间。每一个业务单都有初始状态,在监控中会忽略掉中间状态(即处理中状态),处理中状态可以不做监控。为了更好实现上述的监控,在一优选实施例中,采用redislua脚本对每一项业务单的状态变化日志进行预排序,并通过flinkcep模型对每一项预排序后的业务单进行超时模式匹配,得到业务异常事件。作为一优选实施例,该实施例提供的方法,还可以包括如下步骤:将业务异常事件进行封装,并发送至下游告警平台。在该实施例的s100中,作为一优选实施例,在业务应用日志埋点,并对埋点数据进行实时采集,可以包括如下步骤:s101,在业务系统埋点应用日志数据,并异步发送到kafka(分布式发布订阅消息系统)集群主题分区中;s102,采用flink进程根据kafka消费者注册的指定主题,实时并发地消费不同主题分区内的业务单数据,通过filter算子将业务单状态处于初始状态和最终状态的数据筛选出来,得到实时的埋点数据。在该实施例的s200中,作为一优选实施例,采用redislua脚本对每一项业务单的状态变化日志进行预排序,可以包括如下步骤:将同一项业务单不同状态下的埋点数据依次输入至redis中,通过lua脚本对不同状态下的埋点数据的先后顺序进行预排序,并在排序逻辑中确定某项埋点数据在hash数据结构中暂时驻留等待或立即发往下游。在该实施例的s200中,作为一优选实施例,通过flinkcep库对每一项预排序后的业务单进行超时模式匹配,可以包括如下步骤:s201,针对上游发过来的每一项业务单,利用flink进程中cep复杂事件处理模型,进行实时模式匹配;s201,根据cep复杂事件处理模型中预设的开始条件、结束条件以及完全达成开始条件和结束条件的超时阈值,将超过超时阈值的业务单作为业务异常事件。在该实施例的s200中,作为一优选实施例,得到业务异常事件,具体可以包括如下步骤:根据业务的开始条件、结束条件以及超时阈值构建cep复杂事件处理模型,通过cep复杂事件处理模型的静态方法将上游业务事件流转为模型流patternstream;然后对模型流patternstream调用flatselect平面选择方法从模型流patternstream中进行匹配分流,最后调用getsideoutput方法获取超时的事件流,得到业务异常事件。在该实施例的s202中,作为一优选实施例,cep复杂事件处理模型中,对于预设的开始条件、结束条件以及完全达成开始条件和结束条件的超时阈值,可以包括:预设的开始条件为:业务事件初始化状态02;预设的结束条件为:业务事件结束状态00或01;预设的超时阈值为:3~5分钟。本发明上述实施例提供的基于业务场景的实时业务监控方法,采用业务系统异步埋点业务单状态变化的事件日志的方式,与数据库表查询解耦,不影响正常的业务处理流程;高并发下采用kafka实时数据乱序解决方法,通过lua脚本在redis服务端快速高效排序;随着业务拓展和业务规模快速增长,监控集群能够平滑扩展;支持各种类型业务(例如支付业务)的超时事件排序和超时事件监控。图2为本发明一优选实施例提供的基于业务场景的实时业务监控方法流程图。如图2所示,该优选实施例提供的基于业务场景的实时业务监控方法,可以包括如下步骤:步骤1,在业务系统埋点应用日志数据,并异步发送到kafka集群主题分区中;步骤2,采用flink进程根据kafka消费者注册的指定主题,实时并发地消费不同主题分区内的业务单数据,通过filter算子将业务单状态处于初始状态和最终状态的数据筛选出来分发到下游,得到实时的埋点数据。步骤3,将同一笔业务单不同状态下的埋点数据依次输入至redis中,通过lua脚本对不同状态下的埋点数据的先后顺序进行预排序,在排序逻辑中确定某项埋点数据是在hash数据结构中暂时驻留等待,还是立即发往下游;步骤4,利用flink进程中cep复杂事件处理模型(cep复杂事件处理库),根据业务单主键id进行分组,即针对上游发过来的每一笔业务单,均进行实时模式匹配;步骤5,根据cep复杂事件处理模型中设定好的开始条件和结束条件、以及完全达成开始条件和结束条件的超时阈值(阈值如3分钟或5分钟),将超过超时阈值的业务单数据根据约定进行封装后发给下游告警平台。作为一优选实施例,用于cep复杂事件处理模型中的设定开始条件和结束条件的状态,可以定义为:开始条件:业务事件初始化状态02。结束条件:业务事件结束状态00或01。如表1所示。表1初始状态02中间状态03、04、05最终状态00或01下面结合一具体应用实例,对本发明上述实施例的技术方案进一步详细描述如下。交易支付核心应用系统,位于节点1机器,接收到支付请求,生成支付业务单,单号为p20210409xxxx,该支付单初始化状态为02,通过日志埋点将初始化状态的业务事件发送到kafka集群指定的主题中;支付渠道处理该笔支付业务单,将支付单置为处理中状态03,通过日志埋点将处理中的业务事件发送到kafka集群指定的主题中。交易支付核心应用系统,位于节点2机器,支付渠道处理该笔支付业务单,通过第三方渠道接口回查支付结果,发现支付成功或者支付失败,将支付单状态置为00或01,通过日志埋点将处理中的业务事件发送到kafka集群指定的主题中。正常情况下,状态保持先后顺序02->03->00/01,但是可能由于网络延迟等原因(并发量非常非常大),00/01状态业务事件比02状态业务事件先到达kafka,这样就需要把状态的先后顺序校正过来,避免超高并发量的瞬时误告警,所有业务事件在进入flinkcep处理之前,经过redislua脚本进行处理。经过redislua脚本处理后的业务事件,采用flinkcep做模型匹配,将超过设定阈值的业务事件经过封装后发往下游告警平台指定的kafka集群主题中。通过上述具体应用实例可知,本发明上述实施例提供的技术方案,具有如下技术效果:处理分布式应用下海量高并发场景中支付业务单状态顺序保持一致的能力;对于超时事件的模型匹配,只需要业务事件本身具有的状态属性即可,不需要额外的记录时间戳来计算时间用于判断是否超时;基于flink集群和flinkcep实时复杂事件处理,能够对每一笔支付业务单进行超时监控,而不用额外的计算别的业务指标,能够做到更及时更精准的监控。本发明一实施例提供了一种基于业务场景的实时业务监控系统,如图3所示,可以包括:应用日志埋点模块、实时数据采集模块和复杂事件处理模块;其中:应用日志埋点模块,该模块在业务应用日志埋点;实时数据采集模块,该模块通过应用日志埋点模块,实时获取埋点数据;复杂事件处理模块,该模块针对埋点数据,根据业务单发起初始状态到处理中状态再到完成最终状态的状态变化过程,将总耗时超过超时阈值的业务单作为业务异常事件进行实时监控;其中:采用redislua脚本对每一项业务单的状态变化日志进行预排序,并通过flinkcep模型对每一项预排序后的业务单进行超时模式匹配,得到业务异常事件。作为一优选实施例,该复杂事件处理模块,采用redislua脚本对每一项业务单的状态变化日志进行预排序,并通过flinkcep模型对每一项预排序后的业务单进行超时模式匹配,得到业务异常事件。作为一优选实施例,该应用日志埋点模块,在业务系统埋点应用日志数据,并异步发送到kafka集群主题分区中;所述实时数据采集模块采用flink进程根据kafka消费者注册的指定主题,实时并发地消费不同主题分区内的业务单数据,通过filter算子将业务单状态处于初始状态和最终状态的数据筛选出来,得到实时的埋点数据。作为一优选实施例,该系统还可以包括告警平台模块;其中:告警平台模块,该模块根据复杂事件处理模块输出的业务异常事件,进行实时告警。该实施例提供的基于业务场景的实时业务监控系统,其系统架构图如图4所示。本发明一实施例提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可用于执行上述实施例中任一项的方法。可选地,存储器,用于存储程序;存储器,可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram),如静态随机存取存储器(英文:staticrandom-accessmemory,缩写:sram),双倍数据率同步动态随机存取存储器(英文:doubledataratesynchronousdynamicrandomaccessmemory,缩写:ddrsdram)等;存储器也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(英文:flashmemory)。存储器用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。处理器,用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。处理器和存储器可以是独立结构,也可以是集成在一起的集成结构。当处理器和存储器是独立结构时,存储器、处理器可以通过总线耦合连接。本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述任一项的方法。本发明上述实施例提供的基于业务场景的实时业务监控方法、系统、终端及介质,针对每一笔业务单的业务流程进行超时监控,根据业务单发起初始化状态到处理中状态再到支付完成终态(成功或失败)的状态变化过程,配置超时阈值如3~5分钟,对于总耗时超过超时阈值的业务单进行实时监控。本发明上述实施例提供的基于业务场景的实时业务监控方法、系统、终端及介质,使用分布式消息系统kafka作为日志收集和传输组件,可以高吞吐低延迟的收集并传输超大数据量的实时日志数据;使用高速缓存redis及lua脚本实现的自定义状态排序算法,可以非常快速地对同一笔支付订单的乱序状态进行排序,为下游提供有序的事件流;使用flinkcep复杂事件处理引擎,非常实时准确地从日志数据的不同状态中匹配出超时事件,并实时地将超时事件封装成超时告警消息发送到告警平台。本发明上述实施例提供的基于业务场景的实时业务监控方法、系统、终端及介质,在分布式部署的各个业务应用系统中进行埋点,采用后端异步埋点技术,在不影响业务处理流程的情况下,将支付单的状态变化日志实时采集到分布式消息系统kafka中,利用kafka高吞吐低延迟的特性,能够实时处理大规模的业务并发量,也与业务系统数据库彻底解耦开来。本发明上述实施例提供的基于业务场景的实时业务监控方法、系统、终端及介质,采用redislua脚本对kafka里每一笔业务单的状态变化日志进行排序,由于高并发下支付单的状态变化比较快,而发送到kafka的自然顺序与实际状态变化顺序很可能是不一致的,导致乱序,因此需要预排序,为下一步复杂事件模式匹配做准备。本发明上述实施例提供的基于业务场景的实时业务监控方法、系统、终端及介质,采用flinkcep库对每一笔做好状态预排序的业务单进行超时模式匹配。通过编写好的模式匹配规则,实时匹配每一笔业务单,将超过时间阈值的业务单判定为超时的异常单,并将相关信息封装后发送给告警平台。本发明上述实施例提供的基于业务场景的实时业务监控方法、系统、终端及介质,可以很好的贴合业务场景,对每一笔业务单进行监控并及时发现超时异常的业务单,可以扩展应用于任何具有不同状态先后顺序变化的业务场景。需要说明的是,本发明提供的方法中的步骤,可以利用系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照方法的技术方案实现系统的组成,即,方法中的实施例可理解为构建系统的优选例,在此不予赘述。本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1