链路生成方法及装置与流程

文档序号:26361005发布日期:2021-08-20 20:37阅读:125来源:国知局
链路生成方法及装置与流程

本说明书实施例涉及计算机技术领域,特别涉及一种链路生成方法。本说明书一个或者多个实施例同时涉及一种链路生成装置,一种计算设备,以及一种计算机可读存储介质。



背景技术:

现有技术中,企业与外部合作机构交互的过程中,对方会提供一到多个接口(api)进行相关的服务,比如银行卡快捷支付相关的扣款、放款、余额查询、签约等,外部合作机构一般也会采用主流的分布式架构,将不同的服务或功能,按照系统的维度进行拆分,比如有专门进行签约的鉴权系统,有负责记账的账务系统,负责个人贷款业务的放款、还款系统和负责企业贷款业务的放款、扣款系统,不同的系统均通过同一套接口对外提供服务,但其稳定性、吞吐量、维护周期等均不相同。由于外部合作机构的内部系统设计往往是黑盒,不会告知服务调用方(企业)自己内部系统的设计方式,因此企业采用的监控、运营策略,一般是建立在接口维度的,若外部合作机构的某个服务出现调用故障,则需要将企业与外部合作机构交互的整个对接接口关停,那么企业也就无法再调用外部合作机构的其他服务进行交互,灵活性较差。



技术实现要素:

有鉴于此,本说明书施例提供了计算机技术领域,特别涉及一种链路生成方法。本说明书一个或者多个实施例同时涉及一种链路生成装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了链路生成方法,包括:

调调用第三方平台,将调用所述第三方平台产生的调用数据记录至调用日志;

对所述调用日志的调用数据进行预处理;

对预处理后的调用数据进行特征标注,获得所述调用数据的初始特征,并基于预设选取规则从所述调用数据的初始特征中选取目标特征;

基于所述初始特征和所述目标特征,确定所述第三方平台的调用链路。

根据本说明书实施例的第二方面,提供了一种链路生成装置,包括:

数据处理模块,被配置为调用第三方平台,并将调用所述第三方平台产生的调用数据记录至调用日志,对所述调用日志的调用数据进行预处理;

特征分析模块,被配置为对预处理后的调用数据进行特征标注,获得所述调用数据的初始特征,基于预设选取规则从所述调用数据的初始特征中选取目标特征,基于所述初始特征和所述目标特征,确定所述第三方平台的调用链路。

根据本说明书实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述链路生成方法的步骤。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述链路生成方法的步骤。

本说明书一个实施例实现了一链路生成方法及装置,其中,所述链路生成方法包括调用第三方平台,将调用所述第三方平台产生的调用数据记录至调用日志,对所述调用日志的调用数据进行预处理;对预处理后的调用数据进行特征标注,获得所述调用数据的初始特征,并基于预设选取规则从所述调用数据的初始特征中选取目标特征;基于所述初始特征和所述目标特征,确定所述第三方平台的调用链路。具体的,所述链路生成方法通过对调用第三方平台时产生的调用数据进行预处理、特征分析、链路规律分析以及学习等,生成与第三方平台关联的调用链路,后续在调用第三方平台出现故障或异常时,可以对该第三方平台的调用链路进行分析,确定出某个故障或异常链路,仅对该链路的服务进行关停或者限流等处理,不影响调用第三方平台的其他调用链路进行项目处理,实现对第三方平台的调用链路的精细化控制,灵活性较强。

附图说明

图1是本说明书一个实施例提供的一种链路生成方法的流程图;

图2是本说明书一个实施例提供的一种链路生成方法中的可视化链路视图;

图3是本说明书一个实施例提供的一种链路生成方法中的可视化链路视图的故障处理示意图;

图4是本说明书一个实施例提供的一种链路生成方法的处理过程流程图;

图5是本说明书一个实施例提供的一种链路生成装置的结构示意图;

图6是本说明书一个实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

流计算:可以很好地对大规模流动数据在不断变化的运动过程中实时地进行分析,捕捉到可能有用的信息,并把结果发送到下一计算节点。

接口(api):api(applicationprogramminginterface,应用程序接口)是一些预先定义的接口(如函数、http接口),或指软件系统不同组成部分衔接的约定;用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。

快捷支付:快捷支付指用户购买商品时,不需开通网银,只需提供银行卡卡号、户名、手机号码等信息,银行验证手机号码正确性后,第三方支付发送手机动态口令到用户手机号上,用户输入正确的手机动态口令,即可完成支付。如果用户选择保存卡信息,则用户下次支付时,只需输入第三方支付的支付密码或者是支付密码及手机动态口令即可完成支付。

动态构建:不需要预先设定已知的参数或变量,通过自动化的规律发现、机器学习等,构建相关的参数或变量。

链路视图:一种可视化的图形界面或命令行,可以直观的体现系统链路调用过程中的重要节点,比如场景、流量、忙闲、重要程度等。

机器学习:机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

冷启动:电脑的一种启动方式。就是切断电脑的电源,重新启动,一旦冷启动,内存的东西全部丢失,重新检测硬件,进入cmos,再依次启动操作系统。

k-均值:k均值聚类算法(k-meansclusteringalgorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为k组,则随机选取k个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。

meanshift算法:均值漂移聚类算法,是基于密度的非参数聚类算法,其算法思想是假设不同簇类的数据集符合不同的概率密度分布,找到任一样本点密度增大的最快方向,样本密度高的区域对应于该分布的最大值,这些样本点最终会在局部密度最大值收敛,且收敛到相同局部最大值的点被认为是同一簇类的成员。

dbscan:(density-basedspatialclusteringofapplicationswithnoise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法。该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合。

高斯混合模型(gmms):就是用高斯概率密度函数(正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。

在与外部合作机构交互的过程中,外部合作机构会提供一到多个接口(api)进行相关的服务,比如银行卡快捷支付相关的扣款、放款、余额查询、签约等服务,外部合作机构一般也会采用主流的分布式架构,将不同的服务或功能,按照系统的维度进行拆分,比如有专门进行签约的鉴权系统,有负责记账的账务系统,负责个人贷款业务的放款、还款系统,和负责企业贷款业务的放款、扣款系统等,不同的系统均通过同一套接口对外提供服务,但其稳定性、吞吐量、维护周期等均不相同,调用方(即调用外部合作机构的服务的企业)采用的监控、运营策略,一般是建立在接口维度(粗粒度)的,也就是放款、扣款这种维度,而不是个人放款、个人扣款、企业放款、企业扣款这种细粒度。

而出现这种粗粒度管控的原因是:外部合作机构的内部系统设计往往是黑盒的,不会告知调用方自己的内部系统设计方式,同时也会因为外部合作机构的系统优化升级,内部系统架构逐渐发生变化;并且随着调用方接入的外部系统越来越多,不可能人工实时去维护各种外部合作机构的内部系统设计,所以只能按粗粒度的方式,对接口维度进行管理。

当然,为了解决背景技术中的技术问题,一种方案可以白盒化视图,即在与外部合作机构详细沟通,充分了解外部合作机构的应用架构设计(内部系统设计)后,通过参数、配置化的方式,手动构建调用该外部合作机构的所有服务对应的链路视图。但是该方案必须要与每家外部合作机构详细沟通,并拿到对方的应用架构设计,沟通成本非常高;并且对方的应用架构发生变化后,需要手动调整整个调用链路,维护成本高;此外,当出现部分外部合作机构不合作或者信息有误时,就会导致白盒化视图缺失或错误,后者会引发更大的问题,比如进行错误判断、下达错误指令等。

另外一种方案是通过非机器学习的数据统计,进行链路分析,并构建对应的链路参数或配置,也能实现较为简单的功能。但是该方案必须对数据有一定的了解,并满足固定的规则,如果数据特征发生了变化,那么很容易造成数据遗漏;并且需要针对不同的外部合作机构的数据,进行单独的统计规则设定,灵活性和可扩展性较差。

基于此,本说明书实施例提供了一种链路生成方法,该方法提供了一种可以动态构建外部合作机构黑盒(内部系统设计)链路的方案。基于动态策略,在外部合作机构内部系统呈黑盒不可见的情况下,可以自动识别外部合作机构的内部系统架构,通过机器学习等方式,动态构建一套调用外部合作机构的调用链路,为生产应急、链路压测、容量评估以及其他运维手段,提供精细化的指导和帮助,提高其灵活性。比如在调用外部合作机构的某个服务出现故障时,可以仅暂停出现故障的这一个服务对应的调用链路,而不是关停与外部合作机构对接的整个接口,或者是通过多项目错峰调用,降低相互干扰,既能实现对外部合作机构的服务的调用,又能避开外部合作机构的故障服务,提升用户体验。

在本说明书中,提供了一种链路生成方法。本说明书一个或者多个实施例同时涉及一种链路生成装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

参见图1,图1示出了根据本说明书一个实施例提供的一种链路生成方法的流程图,具体包括以下步骤。

步骤102:调用第三方平台,将调用所述第三方平台产生的调用数据记录至调用日志。

其中,第三方平台可以理解为上述的外部合作机构,例如提供支付相关的扣款、放款、余额查询等的银行或者提供购物、订单查询等的购物平台等等。实际应用中,链路生成方法的应用平台不同,其应用平台的需求服务不同的情况下,第三方平台也不同。

举例说明,若本说明书实施例的链路生成方法应用在某付款平台,该付款平台需要调用与其合作的银行为其提供扣款、余额查询等服务,则第三方平台可以理解为与其合作的银行;若本说明书实施例的链路生成方法应用在某信用平台,该信用平台需要调用与其合作的购物平台为其提供用户的购物记录,通过用户的购物记录为用户进行信用评分等服务,则第三方平台可以理解为与其合作的购物平台。

具体的,调用第三方平台,可以理解为通过与第三方平台的交互接口调用第三方平台提供的某项服务进行项目处理,例如上述付款平台通过银行提供的调用接口,调用银行的扣款服务,实现对某个物品的付款操作。并且,将调用第三方平台产生的调用数据记录至调用日志。

具体实施时,调用数据包括调用时间、成功/失败、耗时、第三方编号、接口名称、业务特征和/或返回码等。其中,调用时间可以理解为本次调用第三方平台的时间;成功/失败可以理解为成功调用第三方平台提供的服务或者调用第三方平台提供的服务失败;耗时可以理解为本次调用第三方平台提供的服务的时长;第三方编号可以理解为第三方平台的唯一标识,例如通过字母、数字和/或特殊字符生成的字符串;接口名称可以理解为第三方平台向外提供服务的接口名字;业务特征可以理解为一个动态值,根据项目不同可以不断细化,例如放款、个人/企业放款、个人小额放款/个人大额放款、个人小额场景消费放款/个人大额借款放款等;返回码可以理解为本次调用第三方平台的返回值,每个返回值表示一种含义,例如返回码为00时,可以表示调用成功、返回码为55时,可以表示密码错误、返回码为99时表示系统异常等。

步骤104:对所述调用日志的调用数据进行预处理。

具体的,所述将调用所述第三方平台产生的调用数据记录至调用日志之后,还包括:

将所述调用日志上传至日志系统;

相应地,所述对所述调用日志的调用数据进行预处理,包括:

将所述日志系统中的所述调用日志回流至流计算引擎,根据所述流计算引擎对所述调用日志的调用数据进行预处理。

若本说明书实施例的链路生成方法应用于应用平台,那么日志系统以及流计算引擎均属于应用平台的处理系统。

实际应用中,在将调用第三方平台产生的调用数据记录至调用日志之后,为了保证调用日志的安全存储,会将调用日志上传至日志系统,在日志系统中进行永久性存储。并且若频繁调用第三方平台的情况下,会频繁的产生调用数据,那么若实时对调用数据进行预处理,会极大增加数据处理资源,当调用第三方平台的调用量急剧增加时,调用数据均聚集在预处理阶段,可能会造成系统崩溃。因此,将记录调用数据的调用日志上传至日志系统,后续的预处理阶段可以根据预设时间间隔从日志系统中获取调用日志中的调用数据进行预处理,或者是日志系统根据预设时间间隔自动下发调用日志中的调用数据进行下一阶段的预处理。其中,预设时间间隔可以根据实际应用进行设置,在此不做任何限定;例如预设时间间隔可以设置为20秒或者1分钟等。

具体实施时,将调用日志上传至日志系统之后,再将日志系统中的调用日志回流至流计算引擎,根据流计算引擎对调用日志的调用数据进行预处理。

本说明书实施例中,在将调用第三方平台产生的调用数据记录至调用日志之后,将调用日志上传至日志系统,实现对调用数据的安全永久存储,避免调用数据的丢失;并且将日志系统中的调用日志回流至流计算引擎,根据流计算引擎可以很好的对大规模的调用数据的实时、准确的预处理。

此外,所述根据所述流计算引擎对所述调用日志的调用数据进行预处理,包括:

根据所述流计算引擎按照预设时间维度对所述调用日志的调用数据进行汇总,并删除所述调用日志的调用数据中的抖动数据和噪声数据。

其中,预设时间维度可以根据实际应用进行设置,例如预设时间维度设置为1分钟、2分钟等。

以预设时间维度为1分钟为例,根据所述流计算引擎按照预设时间维度对所述调用日志的调用数据进行汇总,并删除所述调用日志的调用数据中的抖动数据和噪声数据;可以理解为,根据流计算引擎按照1分钟的维度对调用日志的调用数据进行汇总,并删除汇总的调用日志的调用数据中的抖动数据和噪声数据。即流计算引擎将调用日志中的调用数据按照1分钟的维度进行汇总,然后将汇总的每1分钟的调用数据中的抖动数据和噪声数据删除,以保证后续基于调用数据进行特征分析的准确性。

实际应用中,当第三方平台的链路发生通讯异常、周期性维护升级时,容易发生数据抖动,这个时候产生的调用数据需要进行降噪剔除,否则会影响正常的分析。另外,对于未知的异常数据,也可以先行剔除,之后再对剔除掉的异常的调用数据进行单独的分析,以保证数据的完整性。

步骤106:对预处理后的调用数据进行特征标注,获得所述调用数据的初始特征,并基于预设选取规则从所述调用数据的初始特征中选取目标特征。

具体的,作为冷启动的策略,可以进行人工数据打标,或者是通过其他的打标方式对调用数据进行特征打标,例如为数据标注一些显而易见的特征:大额/小额、个人/企业、直连/间连、不同的支付机构等,这些特征大概率对应不同的应用架构(调用链路)。如果后续的聚类分析无法区分,那可以说明调用数据的特征标注有问题或者外部合作机构采用同一套应用架构,具体可根据实际情况调整。

举例说明,若预处理后的某条调用数据为:调用时间:上午十点、调用成功、耗时:3秒、第三方编号:1***、接口名称:***、业务特征:放款、返回码:11,那么对该调用数据进行特征标注可以为:小额、个人、直连、支付机构为1***等。

实际应用中,对预处理后的每条调用数据进行特征标注,以获得每条调用数据的初始特征;然后基于预设选取规则从调用数据的初始特征中选取目标特征。其中,预设选取规则可以根据实际应用进行设置,例如预设选取规则为选取项目突发高峰/低谷、项目异常或特殊时段的特征。例如当业务高峰时,个人放款项目出现耗时增加、成功率下降的情况,但是企业放款项目波动很小;又或者在凌晨12点至1点期间,大概率系统会进行批处理,个人和企业项目出现不用的可用率波动。这些调用数据均可以作为重要的差异化指标,进行特征区分。即通过调用数据中的上述内容(例如耗时、成功率等)从初始特征中选择哪些是目标特征。

步骤108:基于所述初始特征和所述目标特征,确定所述第三方平台的调用链路。

具体的,所述基于所述初始特征和所述目标特征,确定所述第三方平台的调用链路,包括:

将所述初始特征和所述目标特征输入链路生成模型,获得所述第三方平台的调用链路;或者

利用预设聚类算法对所述初始特征和所述目标特征进行分类,并基于分类结果生成所述第三方平台的调用链路。

其中,链路生成模型为预先训练的机器学习模型,具体的,链路生成模型通过如下步骤训练获得:

调用第三方样本平台,将调用所述第三方样本平台产生的调用数据记录至调用日志;

对所述调用日志的调用数据进行预处理;

对预处理后的调用数据进行特征标注,获得所述调用数据的初始特征,并基于预设选取规则从所述调用数据的初始特征中选取目标特征;

利用预设聚类算法对所述初始特征和所述目标特征进行分类,并基于分类结果生成所述第三方样本平台的调用链路;

将所述初始特征和所述目标特征作为训练样本,将所述初始特征和所述目标特征对应的调用链路作为训练标签;

基于所述训练样本以及所述训练标签对链路生成模型进行训练,获得所述链路生成模型。

实际应用中,先对历史调用第三方平台产生的调用数据进行预处理、特征抽取分析以及规则学习等生成对应的调用链路,再基于调用数据的特征以及调用链路形成训练样本,预先训练获得链路生成模型。在后续使用中,可以直接将调用数据的初始特征和目标特征输入链路生成模型,快速且准确的获得第三方平台的调用链路。

而在链路生成模型预先训练之前,则可以利用预设的聚类算法对初始特征和目标特征进行分类,基于对分类结果的分析,生成第三方平台的调用链路。其中,聚类算法包括但不限于k-均值、meanshift、dbscan、高斯混合模型(gmms)等算法。通过上述任意一种聚类算法对初始特征和目标特征进行泛化分类,后续为每一个分类确定一种应用架构链路(调用链路),如果某一个分类数据离散度较高,可以继续往下一层聚类分析,尝试挖掘子节点。例如将放款、扣款、余额查询等特征作为一类,将个人/企业放款、个人/企业扣款等特征作为一类,将个人/企业放款、大额/小额放款等特征作为一类,将个人/企业放款、大额/小额放款、实时/异步放款等特征作为一类等。

具体实施时,对数据进行标签处理(即对数据进行特征标注),分为有层级的标签和无层级的标签。无层级的标签,比如:交易类型、直连、时间段[小时/分钟/秒]、耗时区间[100/200/x毫秒];有层级的标签,比如1级-放款,2级-小额放款,3级-个人小额放款,4级-个人小额消费场景放款。

具体进行训练标签构建时,第一步:将无层级的标签和有层级的标签的第一级标签作为训练样本,通过聚类算法为其打上分类标签,比如标签a/b/c,也就是“聚类分析后产生的调用链路标签”;第二步:将无层级标签和有层级标签的第1级、有层级标签的第2级以及聚类产生的调用链路标签a/b/c,继续通过聚类分析,找到新的调用链路标签a1/b1/c1。以此循环,直到无法分类;后续可以基于上述分类标签,按照层级和顺序,进行链路视图构建。具体的,训练样本通过聚类算法获得的聚类结果本身就是标签,通过递归的方式循环往复,直到熵值区分度不高为止。

具体的,所述基于分类结果生成所述第三方平台的调用链路,包括:

基于分类结果确定每类初始特征和目标特征,并根据每类初始特征和目标特征生成所述第三方平台的调用链路。

实际应用中,将初始特征和目标特征进行分类之后,确定每类初始特征和目标特征,然后为每类初始特征和目标特征生成一个对应的第三方平台的调用链路。

本说明书实施例中,为分类后的每类初始特征和目标特征生成其对应的第三方平台的调用链路,以实现基于上述方法生成第三方平台的完整的调用链路。

此外,所述根据每类初始特征和目标特征生成所述第三方平台的调用链路之后,还包括:

将每类初始特征和目标特征作为训练样本,将根据每类初始特征和目标特征生成的对应调用链路作为训练标签;

基于所述训练样本以及所述训练标签对所述链路生成模型进行训练,更新所述链路生成模型。

具体的,在根据每类初始特征和目标特征生成所述第三方平台的调用链路之后,可以基于每类初始特征和目标特征,和与其对应的调用链路对链路生成模型进行更新,使得链路生成模型可以实时的基于其新的数据进行学习,极大的提升后续链路生成模型应用的准确性。

实际应用中,所述更新所述链路生成模型之后,还包括:

调用目标第三方平台,获取调用所述目标第三方平台的调用数据,并确定所述目标第三方平台的调用数据的数据特征;

将所述数据特征输入所述链路生成模型,获得所述目标第三方平台的调用链路。

其中,目标第三方平台可以理解为与上述第三方平台不同的外部合作机构。

具体实施时,在对链路生成模型更新后,再次调用其他第三方平台的情况下,基于调用其他第三方平台时产生的调用数据的数据特征,通过更新后的链路生成模型,可以更加快速且准确获得其他第三方平台的调用链路。

本说明书另一实施例中,所述根据每类初始特征和目标特征生成所述第三方平台的调用链路,包括:

将每类初始特征和目标特征按照预设特征层次生成所述第三方平台的调用链路。

其中,预设特征层次可以根据实际需求进行设置,本说明书对此不做任何限定,例如预设特征层次为1层,那么将每类初始特征和目标特征按照预设特征层次生成所述第三方平台的调用链路则可以为:调用方-第三方平台;若预设特征层次为2层,第三方平台的调用链路则可以为调用方-第三方平台-系统1,若预设特征层次为3层,第三方平台的调用链路则可以为调用方-第三方平台-系统1-系统11等。

沿用上例,若分类后的初始特征和目标特征为:放款、扣款、余额查询;个人/企业放款、个人/企业扣款;个人/企业放款、大额/小额放款;个人/企业放款、大额/小额放款、实时/异步放款。第一层为:放款、扣款、余额查询;第二层为:个人/企业放款、个人/企业扣款;第三层为:个人/企业放款、大额/小额放款;第四层为:个人/企业放款、大额/小额放款、实时/异步放款;那么将每类初始特征和目标特征按照4个特征层次生成所述第三方平台的调用链路则可以为:

调用方(例如**科技);

第一层:可以实现放款、扣款、余额查询的第三方平台(例如机构1);

第二层:第三方平台中可以实现个人/企业放款、个人/企业扣款的系统(例如机构1中可以提供某项服务的系统1);

第三层:第三方平台中可以实现个人/企业放款、大额/小额放款的系统(例如机构1中可以提供某项服务的系统11);

第四层:第三方平台中可以实现个人/企业放款、大额/小额放款、实时/异步放款的系统(例如机构1中可以提供某项服务的系统111)。

本说明书实施例中,在基于每类初始特征和目标特征生成第三方平台的调用链路时,可以基于预设特征层次为其生成个性化的调用链路,满足用户体验。

本说明书另一实施例中,所述确定所述第三方平台的调用链路之后,还包括:

基于所述调用链路以及所述调用链路中节点之间的关联关系生成预设形状的可视化链路视图。

参见图2,图2示出了本说明书一个实施例提供的一种链路生成方法中的可视化链路视图。

图2中展示的是基于调用链路以及调用链路中节点之间的关联关系生成的可视化链路视图,其中,**科技、机构接口名称a、系统a、系统b、系统c、系统a1、系统a2、系统c1、系统c2、系统c11均为调用链路中的节点,每个节点与其他节点之间的连线,即为两个节点之间的关系。

具体的,**科技存在多个系统,例如系统a、系统...等。实际应用中,当**科技要完成某个项目时,**科技中的系统a会调用内部系统...,内部系统...再通过外部合作机构的接口a调用其内部系统提供的服务,完成项目内容。其系统a、系统b、系统c、系统a1、系统a2、系统c1、系统c2、系统c11均可以提供不同的服务,因此,想要使用哪个服务就要走不同的调用链路。

图2中,**科技-机构接口名称a为一条调用链路、**科技-机构接口名称a-系统a为一条调用链路、**科技-机构接口名称a-系统a-系统a1为一条调用链路、**科技-机构接口名称a-系统a-系统a2为一条调用链路、**科技-机构接口名称a-系统b为一条调用链路、**科技-机构接口名称a-系统c为一条调用链路、**科技-机构接口名称a-系统c-系统c1为一条调用链路、**科技-机构接口名称a-系统c-系统c2为一条调用链路、**科技-机构接口名称a-系统c-系统c1-系统c11为一条调用链路。

本说明书实施例中,可以基于调用链路生成可视化链路视图,用户可以基于可视化链路视图更加直观的了解到服务调用过程,为生产应急、链路压测、容量评估以及其他运维调整提供较好的帮助。此外,除了展示出调用链路的可视化视图之外,还可以进行调用链路重要性、交易量、稳定性、新/老等标注,提供更多的数据展示,辅助做出更好的决策。

本说明书另一实施例中,所述获得所述目标第三方平台的调用链路之后,还包括:

在调用所述目标第三方平台失败的情况下,确定所述目标第三方平台的调用链路;

对所述目标第三方平台的调用链路进行故障检测,获取故障调用链路,并对所述故障调用链路进行故障处理。

具体的,在调用目标第三方平台失败的情况下,可以确定出目标第三方平台的调用链路,然后目标第三方平台的调用链路中的每个分支调用链路进行检测,以确定故障调用链路,并对所述故障调用链路进行故障处理。

参见图3,图3示出了本说明书一个实施例提供的一种链路生成方法中的可视化链路视图的故障处理示意图。

例如图3中为目标第三方平台的调用链路示意图,当调用方调用目标第三方平台失败之后,可以对该调用链路中的每个分支链路进行故障检测,确定出故障链路,例如确定出图3中的**科技-机构接口名称a-系统c-系统c1-系统c11的调用出现了故障,则可以关停系统**科技-机构接口名称a-系统c-系统c1-系统c11这条链路,等到**科技-机构接口名称a-系统c-系统c1-系统c11的链路逐步恢复后,再开启该系统c11的服务。

具体实施时,当目标第三方平台的调用链路出现故障,则对该调用链路中的所有链路进行故障检测发现故障,然后通过故障处置策略(关停链路或者降低流量)处置故障,当链路逐步恢复后,再开启故障链路的服务。

本说明书实施例中,通过这种精细化的动态处理策略,可以发现某一个项目对应的链路故障,进行精准的处理,避免直接关停第三方平台的接口的整个服务。并且本说明书实施例的链路生成方法通过实时计算,提升整个特征计算、机器学习、链路视图构建的速度,对应大部分稳定的项目来说,可以采用th或t1离线数据的方式进行,这样对资源的占用和消耗更小。

本说明书实施例提供的所述链路生成方法通过对调用第三方平台时产生的调用数据进行预处理、特征分析、链路规律分析以及学习等,生成与第三方平台关联的调用链路,后续在调用第三方平台出现故障时,可以对该第三方平台的调用链路进行分析,确定出某个故障链路,仅对故障链路的服务进行关停或者限流等处理,不影响调用第三方平台的其他调用链路进行项目处理,实现对第三方平台的调用链路的精细化控制,灵活性较强。并且通过实时计算,对整个特征计算、机器学习、链路视图构建的时效、通用性均有提升,还可以针对链路故障进行实时处置,提升整个应急响应时效。

此外,本方案通过机器学习的非参数聚类技术,不要求预先知道聚类的类别个数,对聚类的形状也不做限制,避免了人工与机构沟通、对方应用架构发生变化后的调整等沟通和维护成本,并且不管对方是否配合、信息是否有误,均能够正确识别,可信度、可用率极高。再者,本方案通过机器学习的非参数聚类技术,避免通过统计分析的方式,对数据无需事先了解、特征变化无需特别关注,并针对不同的机构采用通用的方案,其灵活性、可扩展性好。

参见图4,图4示出了本说明书一个实施例提供的一种链路生成方法的处理过程流程图,具体包括以下步骤。

步骤402:外部链路调用开始。

具体的,外部链路调用开始,可以理解为通过外部合作机构的接口调用外部合作机构的服务链路。

步骤404:记录调用日志,并上报日志系统。

其中,调用日志中包括调用数据,调用时间、成功/失败、耗时、机构编号、api名字、业务特征1/2/3、返回码等,其中业务特征1...n,是一个动态值,根据业务不同可以不断细化,比如:放款、个人/企业放款、个人小额放款/个人大额放款、个人小额场景消费放款/个人大额借款放款等。

步骤406:调用日志回流到流计算引擎。

具体的,流计算引擎按照分钟维度汇总调用数据后,开始进行数据的预处理,剔除抖动或噪声数据等。然后将预处理后的调用数据存储至在线分析系统,为后续特征分析、学习提供实时数据支持。

步骤408:进行特征分析。

具体的,在线分析系统对调用数据进行特征标注,并在特征标注后的初始特征中选取重要特征。其中,重要特征,在系统运行正常时,特征指标趋同,重点观察在业务突发高峰/低谷、业务异常或特殊时段时的特征表现,比如当业务高峰时,个人放款业务出现耗时增加、成功率下降的情况,但企业放款业务波动很小;又或者在凌晨12点至1点期间,大概率系统会进行批处理,个人和企业业务出现不同的可用率波动。这些数据均可以作为重要的差异化指标,实现重要特征区分。

步骤410:进行链路规律分析、学习。

具体的,在线分析系统通过聚类分析,例如采用k-均值、meanshift、dbscan、高斯混合模型(gmms)等聚类算法,对步骤408分析出的特征进行泛化分类,后续为每一个分类生成一种新的应用架构链路(即调用链路)。

步骤412:结果分析存入在线分析系统。

具体的,基于应用架构链路以及上述分析出的特征进行分析结果模型训练,然后将训练后的分析结果模型存储在线分析系统。

步骤414:构建可视化视图。

具体的,基于应用架构链路构建可视化视图。

实际应用中,再次调用外部链路时,可以继续基于新的调用日志中的调用数据对可视化链路视图进行丰富或者修改等,通过上述方法循环往复,以构建更加准确和完整的可视化链路视图。

步骤416:动态处置。

具体的,在调用外部链路失败的情况下,对应用架构链路中的故障进行检测,尝试该故障链路的关闭或降低流量,等到链路逐步恢复后,再开启服务。

实际应用中,上述方案具体通过四个模块完成,具体包括:日志记录回流计算引擎模块(模块一)、特征分析和链路规则学习模块(模块二)、构建可视化视图模块(模块三)、动态处置模块(模块四)。

其中,日志记录回流计算引擎模块执行步骤402-步骤406,主要解决链路调用日志结构化、实时上报至日志系统,并回流到流计算引擎,为后续特征分析、学习提供实时数据支持。其中,调用日志结构化可以理解通用日志打印格式“2020-**-2614:42:51aabbccddee调用a机构的b服务,结果success,耗时300ms,交易场景为个人小额放款,code=abcde”,这种格式偏自然语言,需要进行切割、枚举翻译等,转换为k/v结构,例如:[instid=a,api=b,result=s,rt=300ms,transcode=abcde],这样结构化的数据才可用于机器处理。

特征分析和链路规则学习模块执行步骤408-步骤412,主要解决链路调用日志结构化数据,进行特征抽取分析以及规则学习的问题;对按照机构维度特征进行必要的标注并穷举,并且通过聚类算法对抽取特征进行泛化分类,为每一个分类生成对应一种新的应用架构链路。构建可视化视图模块执行步骤414,负责可视化链路视图的构建,数据来源于特征分析和链路规则学习模块聚类分析后的链路特征模型,核心参数包括:机构编号、业务名称、聚类结果最终构建可视化链路视图。动态处置模块执行步骤416,负责链路出现问题后的动态处置,比如当发现故障仅出现某一个链路时,那么尝试该链路业务关闭或降低流量,等到链路逐步恢复后,再开启业务。

本说明书提供的所述链路生成方法的技术创新有四点,其一是结构化日志记录回流计算,其二是特征分析和链路规则学习,其三是可视化视图构建,其四是故障链路的动态处理。具体的,结构化日志记录回流计算:将链路调用日志结构化、实时上报至日志系统,并回流到流计算引擎,为后续特征分析、学习提供实时数据支持。特征分析和链路规则学习:解决调用日志结构化数据进行特征抽取分析以及规则学习的问题,对数据进行降噪后,对按照机构维度特征进行必要的标注并穷举,通过聚类算法对标注后的特征进行泛化分类,为每一个分类生成一种新的应用架构链路。可视化视图构建:数据来源于聚类分析后的链路特征模型,核心参数包括:机构编号、业务名称、聚类结果。故障链路动态处理:链路出现问题后的动态处置,比如当发现故障仅出现某一个链路时,那么尝试该链路业务关闭或降低流量,等到链路逐步恢复后,再开启业务,实现精细化控制。

与上述方法实施例相对应,本说明书还提供了链路生成装置实施例,图5示出了本说明书一个实施例提供的一种链路生成装置的结构示意图。如图5所示,该装置包括:

数据处理模块502,被配置为调用第三方平台,并将调用所述第三方平台产生的调用数据记录至调用日志,对所述调用日志的调用数据进行预处理;

特征分析模块504,被配置为对预处理后的调用数据进行特征标注,获得所述调用数据的初始特征,基于预设选取规则从所述调用数据的初始特征中选取目标特征,基于所述初始特征和所述目标特征,确定所述第三方平台的调用链路。

可选地,所述特征分析模块504,进一步被配置为:

将所述初始特征和所述目标特征输入链路生成模型,获得所述第三方平台的调用链路;或者

利用预设聚类算法对所述初始特征和所述目标特征进行分类,并基于分类结果生成所述第三方平台的调用链路。

可选地,所述特征分析模块504,进一步被配置为:

基于分类结果确定每类初始特征和目标特征,并根据每类初始特征和目标特征生成所述第三方平台的调用链路。

可选地,所述装置,还包括:

模型更新模块,被配置为:

将每类初始特征和目标特征作为训练样本,将根据每类初始特征和目标特征生成的对应调用链路作为训练标签;

基于所述训练样本以及所述训练标签对所述链路生成模型进行训练,更新所述链路生成模型。

可选地,所述装置,还包括:

链路获得模块,被配置为:

调用目标第三方平台,获取调用所述目标第三方平台的调用数据,并确定所述目标第三方平台的调用数据的数据特征;

将所述数据特征输入所述链路生成模型,获得所述目标第三方平台的调用链路。

可选地,所述装置,还包括:

视图生成模块,被配置为:

基于所述调用链路以及所述调用链路中节点之间的关联关系生成预设形状的可视化链路视图。

可选地,所述特征分析模块504,进一步被配置为:

将每类初始特征和目标特征按照预设特征层次生成所述第三方平台的调用链路。

可选地,所述装置,还包括:

日志上传模块,被配置为:

将所述调用日志上传至日志系统;

相应地,所述数据处理模块502,进一步被配置为:

将所述日志系统中的所述调用日志回流至流计算引擎,根据所述流计算引擎对所述调用日志的调用数据进行预处理。

可选地,所述数据处理模块502,进一步被配置为:

根据所述流计算引擎按照预设时间维度对所述调用日志的调用数据进行汇总,并删除所述调用日志的调用数据中的抖动数据和噪声数据。

可选地,所述装置,还包括:

故障处理模块,被配置为:

在调用所述目标第三方平台失败或异常的情况下,确定所述目标第三方平台的调用链路;

对所述目标第三方平台的调用链路进行故障检测,获取故障调用链路,并对所述故障调用链路进行故障处理。

可选地,所述调用数据包括调用时间、成功/失败、耗时、第三方编号、接口名称、业务特征和/或返回码。

本说明书实施例提供的所述链路生成装置通过对调用第三方平台时产生的调用数据进行预处理、特征分析、链路规律分析以及学习等,生成与第三方平台关联的调用链路,后续在调用第三方平台出现故障时,可以对该第三方平台的调用链路进行分析,确定出某个故障链路,仅对故障链路的服务进行关停或者限流等处理,不影响调用第三方平台的其他调用链路进行项目处理,实现对第三方平台的调用链路的精细化控制,灵活性较强。

上述为本实施例的一种链路生成装置的示意性方案。需要说明的是,该链路生成装置的技术方案与上述的链路生成方法的技术方案属于同一构思,链路生成装置的技术方案未详细描述的细节内容,均可以参见上述链路生成方法的技术方案的描述。

图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。

计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。

其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述链路生成方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的链路生成方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述链路生成方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述链路生成方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的链路生成方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述链路生成方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1