CN111552580A - 分布式微服务决策方法、装置、设备及计算机存储介质 - Google Patents
分布式微服务决策方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN111552580A CN111552580A CN202010379142.9A CN202010379142A CN111552580A CN 111552580 A CN111552580 A CN 111552580A CN 202010379142 A CN202010379142 A CN 202010379142A CN 111552580 A CN111552580 A CN 111552580A
- Authority
- CN
- China
- Prior art keywords
- data acquisition
- micro
- acquisition component
- target
- parameter
- 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
Links
Images
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4016—Transaction verification involving fraud or risk level assessment in transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及金融科技领域,并公开了一种分布式微服务决策方法,包括如下步骤:接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;根据所述入参信息将所述规则引擎所需的目标入参进行分组;根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参;将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。本发明还公开了一种分布式微服务决策装置、设备及计算机存储介质。本发明提高了分布式系统的吞吐率,提高了微服务决策中参数获取代码的复用率。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及分布式微服务决策方法、装置、设备及计算机存储介质。
背景技术
近年来,互联网金融科技(Fintech)的飞速发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域。
金融业务的数据量和业务量指数增长,这种情况下,对处理金融业务的金融业务的系统性能提出了更高要求;目前通常使用分布式架构和微服务架构执行金融业务,微服务中涉及到规则引擎,规则引擎执行时需要获取相关的参数,当前通过RPC(RemoteProcedure Call,远程过程调用)获取参数,每一个RPC通过一个单独的线程调用,微服务相关参数的获取需要的线程就非常多,而单个分布式节点所提供的线程数有限,且线程的销毁与创建的消耗都会比较大,系统的吞吐率上不去;此外,微服务请求涉及到的参数较多,大量参数的代码比较多,非常难阅读,且代码复用率低。
发明内容
本发明的主要目的在于提出一种分布式微服务决策方法、装置、设备及计算机存储介质,旨在当前微服务系统吞吐率低,代码难以复用。
为实现上述目的,本发明提供一种分布式微服务决策方法,所述分布式微服务决策方法包括如下步骤:
接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
根据所述入参信息将所述规则引擎所需的目标入参进行分组,根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参;
将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。
可选地,所述根据所述入参信息将所述规则引擎所需的目标入参进行分组的步骤,包括:
获取所述入参信息的参数来源信息和/或参数获取规则;
按照所述参数来源信息和/或所述参数获取规则将所述规则引擎所需的目标入参进行分组。
可选地,所述根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参的步骤,包括:
针对每个分组分别调用一个预定义的数据获取组件;
获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类;
执行各所述数据获取组件类对应的参数获取任务,获取目标入参。
可选地,所述获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类的步骤,包括:
获取各所述数据获取组件的执行时间,将最长的执行时间作为目标执行时间;
将每个数据获取组件分别与其他一个或多个数据获取组件进行组合,获得数据获取组件子集;
统计所述数据获取组件子集中各数据获取组件的执行时间之和,获取执行时间之和与所述目标执行时间接近的预设数量的目标数据获取组件子集;
将各所述目标数据获取组件子集取并集,判断所述并集中是否包含不重复的全部数据获取组件;
若所述并集中包含不重复的全部数据获取组件,则将每个所述目标数据获取组件子集作为一个数据获取组件类。
可选地,所述获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类的步骤,包括:
获取各所述数据获取组件的执行时间,统计各所述数据获取组件的执行时间,获得执行总时长,获取所述微服务请求的业务响应时长;
若所述执行总时长小于或等于所述业务响应时长,则将所有的所述数据获取组件组合形成一个数据获取组件类;
若所述执行总时长大于所述业务响应时长,则按照所述业务响应时长将各所述数据获取组件进行组合,形成至少两个数据获取组件类。
可选地,所述执行各所述数据获取组件类对应的参数获取任务,获取目标入参的步骤,包括:
若仅形成一个数据获取组件类,则串行执行该数据获取组件类包含的各个数据获取组件,获取目标入参;
若形成两个以上的数据获取组件类,则并行执行所述数据获取组件类,获取目标入参,其中,在执行每一个数据获取组件类的过程中,均串行执行该数据获取组件类包含的各个数据获取组件。
可选地,所述根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参的步骤之后,所述方法包括:
若预设时间间隔没有获取到目标入参,则关闭所述数据获取组件。
可选地,所述将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果的步骤之后,所述方法包括:
若所述处理结果异常,则将所述规则引擎中的目标入参进行降级或设置为空,执行所述规则引擎获得所述微服务请求对应的处理结果。
此外,为实现上述目的,本发明还提供一种分布式微服务决策装置,所述分布式微服务决策装置包括:
请求接收模块,用于接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
信息获取模块,用于在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
入参获取模块,用于根据所述入参信息将所述规则引擎所需的目标入参进行分组,根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参;
输入获得模块,用于将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。
此外,为实现上述目的,本发明还提供一种分布式微服务决策设备,所述分布式微服务决策设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式微服务决策对应的计算机程序,所述分布式微服务决策对应的计算机程序被所述处理器执行时实现如上所述的分布式微服务决策方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有分布式微服务决策对应的计算机程序,所述分布式微服务决策对应的计算机程序被处理器执行时实现如上所述的分布式微服务决策方法的步骤。
本发明提供一种分布式微服务决策方法、装置、设备及计算机存储介质,本发明本实施例中接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;根据所述入参信息将所述规则引擎所需的目标入参进行分组,根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参;将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。本发明实施例中根据入参信息将规则引擎所需的目标入参进行分组,通过预先定义数据获取组件获取分组对应的目标入参,这样不需要每个目标入参都通过一个线程获取,减少了线程的占用率,提高了分布式系统的吞吐率,此外,由于通过数据获取组件获取一个类型的入参,不需要每一个目标入参都设置相应的代码,提高了代码的复用率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明分布式微服务决策方法第一实施例的流程示意图;
图3为本发明分布式微服务决策方法第二实施例的流程示意图;
图4为本发明分布式微服务决策装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例分布式微服务决策设备可以是PC机或服务器设备,其上运行有Java虚拟机。如图1所示,该分布式微服务决策设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作网络通信模块、用户接口模块以及分布式微服务决策对应的计算机程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的分布式微服务决策对应的计算机程序,并执行下述分布式微服务决策方法中的操作。
随着金融环境的剧烈变化以及人们悄然转变的消费习惯,金融行业的业务变化愈加频繁和剧烈,因此开始使用规则引擎,规则引擎将复杂多变的业务规则从应用的代码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中。使得业务规则的变更不需要应用程序的变更、重启服务器就可以在线上环境理解生效。所以规则引擎在金融行业应用广泛;规则引擎中的执行,一般有如下几个步骤:1、获取规则引擎需要的输入参数;2、将所述输入参数输入至规则引擎;3、把规则引擎的输出参数返回给调用规则引擎的调用方。
为了说明本发明分布式微服务决策方法的实施例步骤,先对几个概念进行说明,具体地:
1、规则引擎:规则引擎(Rule Engine)由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。使用规则引擎可以把复杂、冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植,规则引擎通常允许在不重新启动系统或部署新的可执行代码的情况下更改规则。
2、系统性能:系统性能可以用响应时间和吞吐量表示;响应时间是提交请求和返回该请求的响应之间使用的时间;吞吐量是对单位时间内完成的量的量度。这些响应时间和吞吐量之间的关系很复杂,有时可能以响应时间为代价而得到较高的吞吐量,而有时候又要以吞吐量为代价得到较好的响应时间,还有时一个单独的更改可能对两者都有提高。
3、分布式系统:分布式系统(distributed system)是建立在网络之上的软件系统,分布式系统是多个处理机通过通信线路互联而构成的松散耦合的系统,从系统中某台处理机来看,其余的处理机和相应的资源都是远程的,只有它自己的资源才是本地的。由于分布式系统是建立在网络之上的,网络超负荷会导致系统性能的降低,增加系统的响应时间。
4、微服务,微服务的概念和分布式比较相似,微服务是一种架构风格。简单来说微服务就是很小的服务,微服务仅关注于完成一件任务并很好地完成该任务,这个服务可以单独部署运行。各个微服务之间是松耦合的,服务之间可以通过RPC来相互交互。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器。
5、RPC(Remote Procedure Call,远程过程调用):RPC允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节,即程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同;但是一般RPC调用耗时由于网络传输效率低于内存传输,所以耗时会比本地调用高一个数量级。
基于上述硬件结构和上述概念说明,提出本发明分布式微服务决策方法实施例。
参照图2,图2为本发明分布式微服务决策方法第一实施例的流程示意图,所述分布式微服务决策方法包括:
步骤S10,接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息。
本实施例中分布式微服务决策方法应用于金融行业的金融机构(银行机构、保险机构、证券机构等)的分布式系统中,分布式系统中包含微服务决策设备,微服务决策设备是指搭载分布式微服务决策方法对应计算机程序的硬件平台,微服务决策设备上运行有JVM(Java Virtual Machine,Java虚拟机),微服务决策设备需要具有较高的系统性能,以满足金融业务的并发性和访问速度要求。
微服务决策设备接收微服务请求,微服务请求的触发方式不作具体限定,即,微服务请求可以是用户主动触发的,例如,用户在微服务决策设备上点击“微服务”按键触发微服务请求;或者微服务请求还可以是微服务决策设备自动触发的,例如,微服务决策设备在检测到符合预设的触发条件时,自动触发微服务请求。
微服务决策设备在接收微服务请求时,微服务决策设备判断微服务请求是否要调用规则引擎,在微服务请求需要调用规则引擎时,微服务决策设备获取规则引擎关联的入参信息,其中,入参信息包括但不仅限于:参数名称、参数类型、参数来源信息和参数获取规则等等。
步骤S20,根据所述入参信息将所述规则引擎所需的目标入参进行分组。
微服务决策设备按照入参信息确定规则引擎所需的目标入参,微服务决策设备根据入参信息将规则引擎所需的目标入参进行分组,具体地:
步骤a1,获取所述入参信息的参数来源信息和/或参数获取规则;
步骤a2,按照所述参数来源信息和/或所述参数获取规则将所述规则引擎所需的目标入参进行分组。
即,微服务决策设备获取入参信息的参数来源信息和/或参数获取规则,微服务决策设备按照参数来源信息和/或参数获取规则将规则引擎所需的目标入参进行分组;本实施例中的分组不带有特定的业务含义,分组仅仅表示一组输入参数通过同一个数据获取组件获取。分组的原则是:1、输入数据来源于一个微服务请求的返回,形成一个分组;2、输入参数的获取方式相同,应用于不同的规则中,实现逻辑基本一致。
比如,规则引擎系统内部有一个黑名单数据库表,转入规则、转出规则都需要从数据库中查询操作中相应的卡号(收款方或者付款方)是否在黑名单中,微服务决策设备将两种场景下的“收款方卡号是否命中黑名单”参数或“付款方卡号是否命中黑名单”参数作为一个分组,通过通过一个通用的检查卡号是否命中黑名单的数据获取组件获取该分组中的目标入参达到代码重用的目的。
如表1所示,表1为一个支付场景,支付平台进行支付前,调用反欺诈系统进行安全检查,反欺诈系统执行相应规则引擎,规则引擎所需的目标入参进行分组,微服务决策设备设置的分组包括:
分组1的参数来自支付平台支付请求,原始报文。这种类型是一个很典型的场景:直接或者少量转换请求报文后,透传到规则输入参数中。这类参数的设置,不需要查询数据存储器以及微服务RPC请求,直接在内存转换,实现逻辑都是一致的。
分组2中的参数,都是设置冠军挑战随机变量的。各个规则的冠军挑战水随机变量基本逻辑一致。
分组3中的参数都来自同一个数据库。
分组4的参数来自于黑名单系统,并处理返回值,把处理后的返回值设置到相应的规则输入参数中。
表1
步骤S30,根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参。
微服务决策设备将分组对应的入参信息数据接口,通过数据接口中预定义的数据获取组件执行参数获取任务,获取分组对应的目标入参。
步骤S40,将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。
微服务决策设备将获取到的目标入参输入至规则引擎中,运行规则引擎获得微服务请求对应的处理结果。本实施例中根据入参信息将规则引擎所需的目标入参进行分组,通过预先定义数据获取组件获取分组对应的目标入参,这样不需要每个目标入参都通过一个线程获取,减少了线程的占用率,提高了分布式系统的吞吐率,此外,由于通过数据获取组件获取一个类型的入参,不需要每一个目标入参都设置相应的代码,提高了代码的复用率。
进一步地,参照图3,基于本发明分布式微服务决策方法第一实施例,提出本发明分布式微服务决策方法第二实施例。
本实施例是第一实施例中步骤S30的细化,本实施例与上述实施例的区别在于,包括:
步骤S31,为每个分组分配一个预定义的数据获取组件。
微服务决策设备为每个分组分配一个预定义的数据获取组件,数据获取组件是数据接口中预先定义的用于执行数据获取操作的代码。
步骤S32,获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类。
微服务决策设备获取各数据获取组件的执行时间(其中,数据获取组件的执行时间是数据获取组件编写、测试或者日常使用中,多次执行获取到的平均执行时间),微服务决策设备将各数据获取组件按照各自的执行时间进行组合,形成数据获取组件类,有不同的方式实现:
实现方式一:
步骤b1,获取各所述数据获取组件的执行时间,统计各所述数据获取组件的执行时间,获得执行总时长,获取所述微服务请求的业务响应时长;
步骤b2,若所述执行总时长小于或等于所述业务响应时长,则将所有的所述数据获取组件组合形成一个数据获取组件类;
步骤b3,若所述执行总时长大于所述业务响应时长,则按照所述业务响应时长将各所述数据获取组件进行组合,形成至少两个数据获取组件类。
即,微服务决策设备获取各数据获取组件的执行时间,统计各数据获取组件的执行时间,获得执行总时长,微服务决策设备获取微服务请求的业务响应时长,其中,业务响应时长是指微服务的最长响应时间,例如,业务响应时长为100ms,微服务决策设备比较执行总时长和业务响应时长的大小关系;若执行总时长小于或等于业务响应时长,微服务决策设备则将所有的所述数据获取组件组合形成一个数据获取组件类;若执行总时长大于业务响应时长,微服务决策设备则按照业务响应时长将各数据获取组件进行组合,形成至少两个数据获取组件类。
具体地,本实施例中执行总时长大于业务响应时长时,微服务决策设备首先判断各数据获取组件对应的参数获取任务是否存在前后顺序,若各数据获取组件对应的参数获取任务存在前后顺序,则按照数据获取组件之间的前后顺序排列各数据获取组件,并将排序完成之后的各数据获取组件进行划分,形成若干个数据获取组件类,其中,每个数据获取组件类中的各数据获取组件的执行时间总和小于或等于业务响应时长;若各数据获取组件对应的参数获取任务不存在前后顺序,则将各个数据获取组件按照执行时间进行组合,形成若干个数据获取组件类。其中,数据获取组件按照执行时间进行组合的具体方式不作限定,只需要保证形成的数据获取组件类中各个数据获取组件的执行时间之和小于或等于业务响应时长,此外,微服务决策设备可以结合空闲线程数量进行灵活组合,这样可以实现响应时间和吞吐量兼顾。
例如,有a、b、c、d,e个数据获取组件,所有平均耗时总和大于业务响应时长(100ms),a、b、c、d,e个数据获取组件平均耗时分别为10ms、20ms、30ms、40ms和50ms。如果所有数据获取组件作为一个数据获取组件类串行执行,将执行总时长为150ms=10ms+20ms+30ms+40ms+50ms,需要150ms才能获取所有数据,执行总时长显然大于业务响应时长,为提高响应效率,减少等待时间,微服务决策设备把a+d和b+c形成两个数据获取组件类:c1,c2;微服务决策设备将c1,c2,e作为三个组合后的数据获取组件类并行执行,这样获取所有数据的耗时将是c1、c2、e中的最大耗时50ms,这样获取所有数据的响应时间从150ms降低为到50ms,降低2倍,原来的1/3。
实现方式二:
步骤c1,获取各所述数据获取组件的执行时间,将最长的执行时间作为目标执行时间;
步骤c2,将每个数据获取组件分别与其他一个或多个数据获取组件进行组合,获得数据获取组件子集;
步骤c3,统计所述数据获取组件子集中各数据获取组件的执行时间之和,获取执行时间之和与所述目标执行时间接近的预设数量的目标数据获取组件子集;
步骤c4,将各所述目标数据获取组件子集取并集,判断所述并集中是否包含不重复的全部数据获取组件;
步骤c5,若所述并集中包含不重复的全部数据获取组件,则将每个所述目标数据获取组件子集作为一个数据获取组件类。
即,微服务决策设备获取各数据获取组件的执行时间,将最长的执行时间作为目标执行时间;微服务决策设备将每个数据获取组件分别与其他一个或多个数据获取组件进行组合,获得数据获取组件子集;微服务决策设备统计数据获取组件子集中各数据获取组件的执行时间之和,获取执行时间之和与目标执行时间接近的预设数量(预设数量可以根据数据获取组件的个数,或者根据空余线程数灵活设置)的目标数据获取组件子集;微服务决策设备将各目标数据获取组件子集取并集,判断并集中是否包含不重复的全部数据获取组件;若并集中包含不重复的全部数据获取组件,则将每个目标数据获取组件子集作为一个数据获取组件类。若并集中包含重复数据获取组件,则减少预设数量,若并集中没有包含全部的数据获取组件,则增大预设数量,若并集中包含重复数据获取组件且并集中没有包含全部的数据获取组件,则将重复的第一数据获取组件替换为没有包含的第二数据获取组件,使得并集中包含不重复的全部数据获取组件,最终形成数据获取组件类。
步骤S33,执行各所述数据获取组件类对应的参数获取任务,获取目标入参。
微服务决策设备将数据获取组件类添加到线程中,运行线程执行参数获取任务,获取目标入参,具体地:
步骤d1,若仅形成一个数据获取组件类,则串行执行该数据获取组件类包含的各个数据获取组件,获取目标入参;
步骤d2,若形成两个以上的数据获取组件类,则并行执行所述数据获取组件类,获取目标入参,其中,在执行每一个数据获取组件类的过程中,均串行执行该数据获取组件类包含的各个数据获取组件。
即,若仅形成一个数据获取组件类,微服务决策设备则串行执行该数据获取组件类包含的各个数据获取组件,获取目标入参;若形成两个以上的数据获取组件类,微服务决策设备则并行执行所述数据获取组件类,获取目标入参,其中,在执行每一个数据获取组件类的过程中,均串行执行该数据获取组件类包含的各个数据获取组件微服务决策设备,也就是说,微服务决策设备将每个数据获取组件类添加到一个线程中,微服务决策设备将数据获取组件类添加到线程中;若线程的数量为一个,微服务决策设备则通过串行执行该数据获取组件类包含的各个数据获取组件,获取目标入参;若线程的数量大于或等于两个,则并行执行数据获取组件类,获取目标入参,其中,在执行每一个数据获取组件类的过程中,均串行执行该数据获取组件类包含的各个数据获取组件。本实施例中并行执行数据获取组件类是为了提高计算效率,而每一个数据获取组件类中包含的数据获取组件串行执行是为了提高吞吐量,从而通过我们的机制可以在计算效率和吞吐量中找到一个平衡点,同时兼顾这两个性能。
本实施例中微服务决策设备将规则引擎所需的目标入参进行分组,同一个分组的目标参数可以快速获取,这样不需要每个目标入参都通过一个线程获取,减少了线程的占用率,与此同时,微服务决策设备将数据获取组件按照各自的执行时间进行组合,形成数据获取组件类,微服务决策设备将每个数据获取组件类添加到一个对应的线程中,这样一个线程执行一个数据获取组件类,减少了时间的浪费,使得表示系统性能的响应时间和吞吐量兼顾。
进一步地,基于本发明分布式微服务决策方法上述实施例,提出本发明分布式微服务决策方法第三实施例。
本实施例是第一实施例中步骤S30之后的步骤,本实施例中分布式微服务决策方法还包括以下步骤:
若预设时间间隔没有获取到目标入参,则关闭所述数据获取组件。
若预设时间间隔(预设时间间隔可以根据具体的场景设置,例如预设时间间隔设置为200ms)没有获取到目标入参,微服务决策设备关闭数据获取组件;本实施例中在通过数据获取组件没有获取到目标入参时,关闭数据获取组件,减少规则引擎的等待时间,提高微服务决策效率。
进一步地,基于本发明分布式微服务决策方法上述实施例,提出本发明分布式微服务决策方法第四实施例。
本实施例是第一实施例中步骤S40之后的步骤,本实施例与上述实施例的区别在于:
若所述处理结果异常,则将所述规则引擎中的目标入参进行降级或设置为空,执行所述规则引擎获得所述微服务请求对应的处理结果。
微服务决策设备判断处理结果是否异常,若处理结果异常,微服务决策设备则将规则引擎中的目标入参进行降级或设置为空,执行所述规则引擎获得微服务请求对应的处理结果;微服务决策设备确定处理结果异常,微服务决策设备关闭对应参数的取数,或者将目标入参设置降级值或者空。这样配置后,减少无效参数的获取,提高整个规则输入参数数据准备的效率。
参照图4,本发明还提供一种分布式微服务决策装置,所述分布式微服务决策装置包括:
请求接收模块10,用于接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
信息获取模块20,用于在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
入参获取模块30,用于根据所述入参信息将所述规则引擎所需的目标入参进行分组,根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参;
输入获得模块40,用于将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。
在一实施例中,所述信息获取模块20,用于:
获取单元,用于获取所述入参信息的参数来源信息和/或参数获取规则;
组合单元,用于按照所述参数来源信息和/或所述参数获取规则将所述规则引擎所需的目标入参进行分组。
在一实施例中,所述入参获取模块30,还用于:
调用子模块,用于针对每个分组分别调用一个预定义的数据获取组件;
组合形成子模块,用于获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类;
任务执行子模块,用于执行各所述数据获取组件类对应的参数获取任务,获取目标入参。
在一实施例中,所述组合形成子模块,包括:
时间获取单元,用于获取各所述数据获取组件的执行时间,将最长的执行时间作为目标执行时间;
组件组合单元,用于将每个数据获取组件分别与其他一个或多个数据获取组件进行组合,获得数据获取组件子集;
时间统计单元,用于统计所述数据获取组件子集中各数据获取组件的执行时间之和,获取执行时间之和与所述目标执行时间接近的预设数量的目标数据获取组件子集;
第一判断单元,用于将各所述目标数据获取组件子集取并集,判断所述并集中是否包含不重复的全部数据获取组件;
组件类确定单元,用于若所述并集中包含不重复的全部数据获取组件,则将每个所述目标数据获取组件子集作为一个数据获取组件类。
在一实施例中,所述组合形成子模块,包括:
时间获取单元,用于获取各所述数据获取组件的执行时间,统计各所述数据获取组件的执行时间,获得执行总时长,获取所述微服务请求的业务响应时长;
第一组合单元,用于若所述执行总时长小于或等于所述业务响应时长,则将所有的所述数据获取组件组合形成一个数据获取组件类;
第二组合单元,用于若所述执行总时长大于所述业务响应时长,则按照所述业务响应时长将各所述数据获取组件进行组合,形成至少两个数据获取组件类。
在一实施例中,所述任务执行子模块,包括:
串行执行单元,用于若仅形成一个数据获取组件类,则串行执行该数据获取组件类包含的各个数据获取组件,获取目标入参;
并行执行单元,用于若形成两个以上的数据获取组件类,则并行执行所述数据获取组件类,获取目标入参,其中,在执行每一个数据获取组件类的过程中,均串行执行该数据获取组件类包含的各个数据获取组件。
在一实施例中,所述的分布式微服务决策装置,包括:
关闭模块,用于若预设时间间隔没有获取到目标入参,则关闭所述数据获取组件。
在一实施例中,所述的分布式微服务决策装置,包括:
设置执行模块,用于若所述处理结果异常,则将所述规则引擎中的目标入参进行降级或设置为空,执行所述规则引擎获得所述微服务请求对应的处理结果。
本实施例中根据入参信息将规则引擎所需的目标入参进行分组,通过预先定义数据获取组件获取分组对应的目标入参,这样不需要每个目标入参都通过一个线程获取,减少了线程的占用率,提高了分布式系统的吞吐率,此外,由于通过数据获取组件获取一个类型的入参,不需要每一个目标入参都设置相应的代码,提高了代码的复用率。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有分布式微服务决策对应的计算机程序,所述分布式微服务决策对应的计算机程序被处理器执行时实现如上所述的分布式微服务决策方法的步骤。
其中,在所述处理器上运行的分布式微服务决策对应的计算机程序被执行时所实现的方法可参照本发明分布式微服务决策方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种分布式微服务决策方法,其特征在于,所述分布式微服务决策方法包括如下步骤:
接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
根据所述入参信息将所述规则引擎所需的目标入参进行分组;
根据所述分组调用预定义的数据获取组件执行参数获取任务,获取所述分组对应的目标入参;
将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。
2.如权利要求1所述的分布式微服务决策方法,其特征在于,所述根据所述入参信息将所述规则引擎所需的目标入参进行分组的步骤,包括:
获取所述入参信息的参数来源信息和/或参数获取规则;
按照所述参数来源信息和/或所述参数获取规则将所述规则引擎所需的目标入参进行分组。
3.如权利要求1所述的分布式微服务决策方法,其特征在于,所述根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参的步骤,包括:
针对每个分组分别调用一个预定义的数据获取组件;
获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类;
执行各所述数据获取组件类对应的参数获取任务,获取目标入参。
4.如权利要求3所述的分布式微服务决策方法,其特征在于,所述获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类的步骤,包括:
获取各所述数据获取组件的执行时间,将最长的执行时间作为目标执行时间;
将每个数据获取组件分别与其他一个或多个数据获取组件进行组合,获得数据获取组件子集;
统计所述数据获取组件子集中各数据获取组件的执行时间之和,获取执行时间之和与所述目标执行时间接近的预设数量的目标数据获取组件子集;
将各所述目标数据获取组件子集取并集,判断所述并集中是否包含不重复的全部数据获取组件;
若所述并集中包含不重复的全部数据获取组件,则将每个所述目标数据获取组件子集作为一个数据获取组件类。
5.如权利要求3所述的分布式微服务决策方法,其特征在于,所述获取各所述数据获取组件的执行时间,将所述数据获取组件按照各自的执行时间进行组合,形成数据获取组件类的步骤,包括:
获取各所述数据获取组件的执行时间,统计各所述数据获取组件的执行时间,获得执行总时长,获取所述微服务请求的业务响应时长;
若所述执行总时长小于或等于所述业务响应时长,则将所有的所述数据获取组件组合形成一个数据获取组件类;
若所述执行总时长大于所述业务响应时长,则按照所述业务响应时长将各所述数据获取组件进行组合,形成至少两个数据获取组件类。
6.如权利要求3所述的分布式微服务决策方法,其特征在于,所述执行各所述数据获取组件类对应的参数获取任务,获取目标入参的步骤,包括:
若仅形成一个数据获取组件类,则串行执行该数据获取组件类包含的各个数据获取组件,获取目标入参;
若形成两个以上的数据获取组件类,则并行执行所述数据获取组件类,获取目标入参,其中,在执行每一个数据获取组件类的过程中,均串行执行该数据获取组件类包含的各个数据获取组件。
7.如权利要求1所述的分布式微服务决策方法,其特征在于,所述根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参的步骤之后,所述方法包括:
若预设时间间隔没有获取到目标入参,则关闭所述数据获取组件。
8.如权利要求1-7任意一项所述的分布式微服务决策方法,其特征在于,所述将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果的步骤之后,所述方法包括:
若所述处理结果异常,则将所述规则引擎中的目标入参进行降级或设置为空,执行所述规则引擎获得所述微服务请求对应的处理结果。
9.一种分布式微服务决策装置,其特征在于,所述分布式微服务决策装置包括:
请求接收模块,用于接收微服务请求,在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
信息获取模块,用于在所述微服务请求需要调用规则引擎时,获取所述规则引擎关联的入参信息;
入参获取模块,用于根据所述入参信息将所述规则引擎所需的目标入参进行分组,根据所述分组调用预定义数据获取组件执行参数获取任务,获取所述分组对应的目标入参;
输入获得模块,用于将获取到的目标入参输入至所述规则引擎中,获得所述微服务请求对应的处理结果。
10.一种分布式微服务决策设备,其特征在于,所述分布式微服务决策设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式微服务决策对应的计算机程序,所述分布式微服务决策对应的计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的分布式微服务决策方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分布式微服务决策对应的计算机程序,所述分布式微服务决策对应的计算机程序被处理器执行时实现如权利要求1至8中任一项所述的分布式微服务决策方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010379142.9A CN111552580A (zh) | 2020-05-07 | 2020-05-07 | 分布式微服务决策方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010379142.9A CN111552580A (zh) | 2020-05-07 | 2020-05-07 | 分布式微服务决策方法、装置、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111552580A true CN111552580A (zh) | 2020-08-18 |
Family
ID=72006062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010379142.9A Pending CN111552580A (zh) | 2020-05-07 | 2020-05-07 | 分布式微服务决策方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552580A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383639A (zh) * | 2020-12-02 | 2021-02-19 | 北京达佳互联信息技术有限公司 | 微服务均衡方法及装置 |
CN113242278A (zh) * | 2021-04-19 | 2021-08-10 | 中国电影科学技术研究所 | 基于电影云端制作异构网络的通信方法、装置和电子设备 |
CN113094398B (zh) * | 2021-04-20 | 2024-04-05 | 深圳力维智联技术有限公司 | 一种基于区块链技术的数据链路追踪的方法 |
-
2020
- 2020-05-07 CN CN202010379142.9A patent/CN111552580A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383639A (zh) * | 2020-12-02 | 2021-02-19 | 北京达佳互联信息技术有限公司 | 微服务均衡方法及装置 |
CN112383639B (zh) * | 2020-12-02 | 2022-02-22 | 北京达佳互联信息技术有限公司 | 微服务均衡方法及装置 |
CN113242278A (zh) * | 2021-04-19 | 2021-08-10 | 中国电影科学技术研究所 | 基于电影云端制作异构网络的通信方法、装置和电子设备 |
CN113242278B (zh) * | 2021-04-19 | 2023-04-14 | 中国电影科学技术研究所 | 基于电影云端制作异构网络的通信方法、装置和电子设备 |
CN113094398B (zh) * | 2021-04-20 | 2024-04-05 | 深圳力维智联技术有限公司 | 一种基于区块链技术的数据链路追踪的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284197B (zh) | 基于智能合约的分布式应用平台及实现方法 | |
CN111552580A (zh) | 分布式微服务决策方法、装置、设备及计算机存储介质 | |
CN109067890B (zh) | 一种基于docker容器的CDN节点边缘计算系统 | |
US7877091B2 (en) | Method and system for executing a container managed application on a processing device | |
CN110780870B (zh) | 一种业务执行方法、装置、设备及存储介质 | |
US10901573B2 (en) | Generating predictive action buttons within a graphical user interface | |
CN112015578B (zh) | 基于事前同步处理和事后异步处理的风控系统和方法 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
TWI726976B (zh) | 應用app的資源載入方法、業務功能實現方法及裝置 | |
CN103176892A (zh) | 一种页面监控方法及系统 | |
CN115794262A (zh) | 任务处理方法、装置、设备、存储介质以及程序产品 | |
WO2022199292A1 (zh) | 小程序恶意行为检测 | |
CN111741120A (zh) | 一种流量镜像方法、装置及设备 | |
CN109783159A (zh) | 基于配置信息的应用启动方法和装置 | |
CN114371884A (zh) | Flink计算任务的处理方法、装置、设备和存储介质 | |
US20150032789A1 (en) | Dynamic object oriented remote instantiation | |
CN113626001A (zh) | 一种基于脚本的api动态编排方法及装置 | |
CN113434152A (zh) | 软件开发方法、系统及可读存储介质 | |
US8074208B2 (en) | System and method for generating safe and efficient component relationships in wireless applications | |
CN111131471B (zh) | 一种业务系统的运行方法、装置和电子设备 | |
Ben Lahmar et al. | Middleware for task resolution and adaptation in pervasive environments | |
CN116560665B (zh) | 数据生成和处理的方法和装置、信用卡营销规则引擎系统 | |
US20230359976A1 (en) | Real-Time Prediction Method, Electronic Device And Non-transitory Computer-Readable Storage Medium | |
CN114969822A (zh) | 一种请求调用防御方法及相关设备 | |
CN112257106A (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 |