CN111158654A - 算法调用方法、装置、服务器及存储介质 - Google Patents

算法调用方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN111158654A
CN111158654A CN201911415273.1A CN201911415273A CN111158654A CN 111158654 A CN111158654 A CN 111158654A CN 201911415273 A CN201911415273 A CN 201911415273A CN 111158654 A CN111158654 A CN 111158654A
Authority
CN
China
Prior art keywords
target
algorithm
rule
service
calling
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
CN201911415273.1A
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 Daily Youxian Technology Co.,Ltd.
Original Assignee
Beijing Missfresh Ecommerce 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 Missfresh Ecommerce Co Ltd filed Critical Beijing Missfresh Ecommerce Co Ltd
Priority to CN201911415273.1A priority Critical patent/CN111158654A/zh
Publication of CN111158654A publication Critical patent/CN111158654A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种算法调用方法、装置、服务器及存储介质,属于互联网技术领域。该方法包括:接收目标业务请求,目标业务请求用于请求为目标业务提供服务;通过规则引擎解析规则文件,确定目标业务对应的目标算法,规则文件中配置有不同业务对应算法的选取规则;调用目标算法为目标业务提供算法服务。通过规则引擎解析目标业务对应的规则文件,从而实现对目标算法的调用,相比于相关技术中的算法调用方式,无需为算法专门开发对应的路由代码,仅需配置规则文件即可以实现对算法的调用,可以避免服务器部署较多的路由代码,导致算法的路由代码较为繁杂的问题,从而提高服务器的稳定性,并有助于简化后续算法维护的流程。

Description

算法调用方法、装置、服务器及存储介质
技术领域
本申请实施例涉及互联网技术领域,特别涉及一种算法调用方法、装置、服务器及存储介质。
背景技术
在互联网技术领域,通常通过推荐和搜索等主要场景来引导用户行为,这些场景的良好运行依赖于后台服务器对算法的调度和运行。
相关技术中,通过为不同的算法提供对应的路由代码来实现算法调度,比如,当服务器接收到对应的业务请求时,通过判断该业务请求对应的目标算法,并通过与该目标算法关联的路由代码,来调用目标算法,从而通过运行该目标算法为业务请求提供算法服务。
但是,相关技术中的算法调用方法,随着在线上运行的算法数量的增加,需要开发较多的路由代码来实现对应的算法调用,导致算法的路由代码较为繁杂的问题,不利于服务器运行的稳定性。
发明内容
本申请实施例提供了一种算法调用方法、装置、服务器及存储介质。所述技术方案如下:
一方面,本申请实施例提供了一种算法调用方法,所述方法包括:
接收目标业务请求,所述目标业务请求用于请求为目标业务提供服务;
通过规则引擎解析规则文件,确定所述目标业务对应的目标算法,所述规则文件中配置有不同业务对应算法的选取规则;
调用所述目标算法为所述目标业务提供算法服务。
另一方面,本申请实施例提供了一种算法调用装置,所述装置包括:
第一接收模块,用于接收目标业务请求,所述目标业务请求用于请求为目标业务提供服务;
解析模块,用于通过规则引擎解析规则文件,确定所述目标业务对应的目标算法,所述规则文件中配置有不同业务对应算法的选取规则;
调用模块,用于调用所述目标算法为所述目标业务提供算法服务。
另一方面,本申请实施例提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的算法调用方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的算法调用方法。
另一方面,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述方面所述的算法调用方法。
采用本申请实施例提供的算法调用方法,当服务器接收到目标业务请求时,通过规则引擎解析规则文件,确定所请求目标业务对应的目标算法,从而调用目标算法为目标业务提供算法服务。通过规则引擎解析目标业务对应的规则文件,从而实现对目标算法的调用,相比于相关技术中的算法调用方式,无需为算法专门开发对应的路由代码,仅需配置规则文件即可以实现对算法的调用,可以避免服务器部署较多的路由代码,导致算法的路由代码较为繁杂的问题,从而提高服务器的稳定性,并有助于简化后续算法维护的流程。
附图说明
图1示出了本申请一个示例性实施例提供的实施环境的示意图;
图2示出了本申请一个示例性实施例示出的算法调用方法的流程图;
图3示出了本申请另一个示例性实施例示出的算法调用方法的流程图;
图4示出了本申请一个示例性实施例示出的规则引擎解析规则文件过程的示意图;
图5示出了本申请另一个示例性实施例示出的算法调用方法的流程图;
图6示出了本申请一个示例性实施例提供的算法调用装置的结构框图;
图7示出了本申请一个示例性实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
相关技术中,由于开发人员在开发算法时,会针对该算法开发对应的路由代码,当服务器接收到目标业务请求时,可以根据该目标业务请求确定对应的目标算法,从而通过该目标算法对应的路由代码对目标算法进行调用,从而实现在线上加载和运行目标算法,以便为目标业务提供对应的算法服务。
显然,相关技术中的算法调用方法,需要开发人员针对每一个算法均开发对应的路由代码,开发工作量较大,且随着线上运行的算法数量的增多,会导致服务器中设置的路由代码越来越繁杂的问题,使得线上问题越来越难以定位,服务器稳定性下降,相应的,服务器中算法的维护难度较高。
参考图1,其示出了本申请一个示例性实施例提供的实施环境示意图。该实施环境中包括业务服务器101、分流平台102和算法服务器103。
业务服务器101中设置有规则引擎,并且存储有各个业务对应的规则文件;业务服务器101是具有接收业务请求、解析规则文件、调用算法以及运行算法等功能的设备,其可以是一台服务器,若干台服务器构成的服务器集群或云计算中心。本申请实施例中,业务服务器101可以接收目标客户端发送的目标业务请求,并根据该目标业务请求确定对应的规则文件,通过解析该规则文件,实现对目标业务请求对应的目标算法的调用,从而为目标业务请求提供算法服务。可选的,业务服务器101可以向分流平台102发送分流请求,以便分流平台102根据该分流请求对请求进行算法分流。
业务服务器101通过无线网络或有线网络与分流平台102相连。
分流平台102是具有接收和处理分流请求功能的设备,其可以是一台服务器,若干台服务器构成的服务器集群或云计算中心。本申请实施例中,分流平台102中配置有业务与分流比例之间的对应关系;可选的,分流平台102可以接收业务服务器101发送的分流请求,从而根据配置的对应关系,向业务服务器101反馈算法分流结果。
算法服务器103通过无线网络或有线网络与业务服务器101相连。
算法服务器103中存储有各个业务请求对应的多种算法。本申请实施例中,算法服务器103可以接收业务服务器101发送的目标算法调用请求,并将目标算法发送给业务服务器101。可选的,算法服务器103可以是本地存储算法的设备,即无需将各个算法部署在对应的业务服务器101中;也可以是第三方存储算法的设备,该第三方存储算法的设备指该算法为其他用户或公司研发的算法,并对外提供一个算法调用接口,供业务服务器101进行调用。
请参考图2,其示出了本申请一个示例性实施例示出的算法调用方法的流程图。本实施例以该方法应用于图1所示实施环境中的业务服务器101来举例说明。该方法包括:
步骤201,接收目标业务请求,目标业务请求用于请求为目标业务提供服务。
其中,目标业务可以是搜索业务,也可以是推荐业务,本申请实施例对目标业务不构成限定。示意性的,目标业务请求可以是搜索“苹果”,推荐“短视频”等。
在一种可能的实施方式中,用户在应用程序的搜索框中输入搜索关键词之后,可以点击搜索控件,即服务器接收到目标业务请求(搜索关键词)。
可选的,服务器可以接收来自不同应用程序发送的目标业务请求,比如,搜索类应用、阅读类应用、生活类应用等。
步骤202,通过规则引擎解析规则文件,确定目标业务对应的目标算法,规则文件中配置有不同业务对应算法的选取规则。
其中,服务器中存储有不同业务对应的规则文件,该规则文件由开发人员进行配置。
在一种可能的实施方式中,当服务器接收到目标业务请求之后,可以根据该目标业务请求中包含的信息来确定对应的规则文件,由于规则文件中配置有不同业务对应算法的选取规则,因此,服务器可以通过规则引擎解析对应的规则文件,来确定目标业务对应的目标算法。比如,若目标业务请求为搜索业务,则可以通过规则引擎解析搜索业务对应的规则文件,来确定搜索业务对应的算法。
可选的,可以使用分布式文档存储数据库(Mongo Data Base,Mongo DB)来存储规则文件。
可选的,规则文件的编写格式可以采用JS对象简谱纲要(JavaScript ObjectNotation,JSON)格式。
步骤203,调用目标算法为目标业务提供算法服务。
在一种可能的实施方式中,当服务器确定出目标业务请求对应的目标算法之后,则可以调用该目标算法,并在线上运行,以实现对目标业务提供算法服务。
示意性的,若目标业务请求为搜索“苹果”,则规则引擎通过解析对应的规则文件,调用目标算法在线上运行,从而可以实现将“苹果”的搜索结果呈现在用户界面中。
综上所述,本申请实施例中,当服务器接收到目标业务请求时,通过规则引擎解析规则文件,确定所请求目标业务对应的目标算法,从而调用目标算法为目标业务提供算法服务。通过规则引擎解析目标业务对应的规则文件,从而实现对目标算法的调用,相比于相关技术中的算法调用方式,无需为算法专门开发对应的路由代码,仅需配置规则文件即可以实现对算法的调用,可以避免服务器部署较多的路由代码,导致算法的路由代码较为繁杂的问题,从而提高服务器的稳定性,并有助于简化后续算法维护的流程。
在一种可能的实施方式中,规则文件中配置有主控规则、流程规则、分流规则以及算法规则等,因此,规则引擎需要对上述多个规则进行解析,才可以实现对目标算法的调用。
请参考图3,其示出了本申请另一个示例性实施例示出的算法调用方法的流程图。本实施例以该方法应用于图1所示的业务服务器101来举例说明。该方法包括:
步骤301,接收目标业务请求,目标业务请求用于请求为目标业务提供服务。
本步骤的实施方式可以参考步骤201,本实施例在此不做赘述。
步骤302,根据目标业务请求,确定目标主控规则,目标主控规则对应的业务为目标业务。
在一种可能的实施方式中,当服务器接收到目标业务请求时,首先需要确定该目标业务请求对应的业务场景(即目标业务),从而根据该目标业务确定对应的主控规则。比如,若业务场景为搜索场景,则对应的目标主控规则即为搜索主控规则,若业务场景为推荐场景,则对应的目标主控规则为推荐主控规则。
示意性的,如图4所示,当服务器接收到用户的目标业务请求(搜索)时,即确定对应的主控规则为主控A。
可选的,不同的业务场景对应不同的主控规则。
可选的,主控规则中还包括该目标业务请求对应的业务板块,比如,搜索板块、推荐板块等。
示意性的,主控规则可以是:
“business”:“ir”,//业务板块:搜索
“expkey”:“missfresh-search”,//业务场景:搜索场景
“engine”:“MFSearchEngine”//引擎:搜索引擎
步骤303,通过规则引擎解析目标主控规则,确定目标业务对应的目标流程规则,目标流程规则对应的目标流程属于目标业务。
在一种可能的实施方式中,当服务器确定出目标主控规则之后,则可以通过解析该主控规则,来确定目标业务对应的目标流程规则。比如,若目标业务为搜索,其对应的目标流程可以包括召回、排序等流程,其中,需要先进行召回,之后再进行排序。
示意性的,如图4所示,规则引擎解析主控规则,确定目标流程规则,即由主控A指向流程A。
步骤304,通过规则引擎解析目标流程规则,确定目标流程对应的目标分流规则,目标分流规则用于指示目标流程对应算法的分流策略。
在一种可能的应用场景下,对于同一目标业务一般会提供多种算法,通过在线上同时运行这些算法,以便根据运行不同算法产生的服务结果,来比较评估这些算法,从而对算法进行调整优化,为了可以同时运行这些算法,需要给每一个算法分配对应的流量,因此,在规则文件中配置有目标分流规则,用于指示目标流程对应算法的分流策略。
在一种可能的实施方式中,规则引擎通过解析目标流程规则,可以确定出目标流程对应的目标分流规则。示意性的,若目标流程为召回,则对应的目标分流规则即召回分流规则,若目标流程为排序,则对应的目标分流规则为排序分流规则。
可选的,同一目标业务可能对应多次召回,比如,第一次召回、第二次召回,则每一次召回可以分别对应不同的召回分流规则。
示意性的,分流规则可以是:
Figure BDA0002351021730000071
示意性的,如图4所示,若目标流程为召回,其对应的分流规则可以为分流规则B,即由流程A指向召回规则B。
步骤305,通过规则引擎解析目标分流规则,得到目标算法对应的目标算法标识。
在一种可能的实施方式中,规则引擎通过解析目标分流规则,可以得到目标算法对应的目标算法标识,比如,目标算法标识可以是上述分流规则中所示的“A”“B”“C”“D”等。
可选的,目标算法标识也可以是其它的表示形式,比如,“a”、“b”、“c”、“d”等。
在一种可能的实施方式中,由于每一个目标流程会对应多个目标算法,为了确定当前的目标业务请求对应的目标算法,因此,在规则引擎解析目标分流规则之前,还需要通过分流平台来获得与目标算法标识对应的目标字符串。
示意性的,在图3的基础上,如图5所示,步骤305可以包括步骤305A、步骤305B以及步骤305C。
步骤305A,向分流平台发送分流请求,分流请求中包括目标流程的流程标识以及目标业务请求中的请求参数,分流平台用于根据请求参数以及目标流程对应的分流比例,确定目标业务请求对应的目标字符串。
其中,目标流程的流程标识可以是一段特定的字符串,由服务器根据目标流程的相关信息生成。比如,“ejrtyymj”即为某一召回流程对应的流程标识。
其中,目标业务请求中的请求参数可以包括:用户身份标识信息(user Id)、应用版本(app version)以及平台(plateform)等。
在一种可能的实施方式中,分流平台中预先配置有业务请求、各个流程对应的分流比例以及字符串的对应关系。其中,分流比例可以是每一个流程对应的多个算法分别对应的分流比例,比如,召回流程对应5个算法,其对应的分流比例为100%,则算法A对应的分流比例可以是20%,算法B对应的分流比例可以是30%,算法C对应的分流比例可以是20%,算法D对应的分流比例可以是10%,算法C对应的分流比例可以是20%。
在一种可能的实施方式中,服务器可以将目标流程对应的流程标识以及目标业务请求中的请求参数,确定为分流请求,并发送给分流平台,以便分流平台能够根据该请求参数以及目标流程对应的分流比例,来确定目标业务请求对应的目标字符串。示意性的,若分流平台根据分流请求确定出由目标算法A为该目标业务提供算法服务,则分流平台会将与该算法A对应的目标字符串(“g8w77slv”)发送给服务器。
步骤305B,接收分流平台发送的目标字符串。
在一种可能的实施方式中,服务器接收到分流平台发送的目标字符串。即,服务器接收到“g8w77slv”。
步骤305C,通过规则引擎解析目标分流规则,确定目标字符串对应的目标算法标识,目标分流规则中包括字符串与算法标识之间的对应关系。
在一种可能的实施方式中,目标分流规则中配置有字符串与算法标识的对应关系,当服务器接收到分流平台发送的目标字符串之后,可以通过规则引擎解析目标分流规则,即根据目标字符串获取对应的目标算法标识。
示意性的,若目标字符串为“g8w77slv”,则根据步骤304中的目标分流规则,可以确定目标算法对应的目标算法标识为“A”。
步骤306,根据目标算法标识,通过规则引擎解析目标流程对应的目标算法规则,确定目标算法。
其中,目标算法规则中配置有该目标流程对应的多个算法分别对应的算法名称。
示意性的,目标算法规则可以是:
Figure BDA0002351021730000091
在一种可能的实施方式中,当服务器确定出目标算法标识之后,可以通过规则引擎解析目标算法规则,确定出与目标算法标识对应的算法名称。示意性的,若目标算法标识为“A”,则根据上述目标算法规则,则可以确定目标业务请求对应的目标算法为“MFSearchPreRecallEngine”。
示意性的,如图4所示,若规则引擎解析召回规则B之后,确定出该目标业务请求对应的目标算法为B1,即由召回规则B指向算法B1
步骤307,通过规则引擎解析目标流程规则,确定目标算法对应的目标调用方式,目标调用方式包括本地调用和远程调用中的至少一种。
由于目标算法可能存储在本地服务器中,也可能存储在远程服务器中,且不同的存储位置对应的调用方式也不相同,因此,在一种可能的实施方式中,当服务器确定出目标算法之后,则需要解析目标流程规则,来确定该目标算法对应的目标调用方式。
示意性的,目标流程规则中与算法调用方式相关的规则可以为:
Figure BDA0002351021730000092
Figure BDA0002351021730000101
其中,算法对应的调用方式可以分为本地调用和远程调用。可选的,远程调用可以包括分布式服务框架(dubbo)泛化调用和超文本传输协议(HyperText TransferProtocol,HTTP)调用。
在一种可能的实施方式中,当服务器确定出目标算法之后,则解析对应的目标流程规则,以确定目标算法对应的目标调用方式。示意性的,若算法A对应的目标流程规则指示“service_type”:“local”,则算法A对应的目标调用方式为本地调用。
步骤308,根据目标调用方式调用目标算法,并通过目标算法为目标业务提供算法服务。
在一种可能的实施方式中,若目标调用方式为本地调用,则可以通过开源对象(Spring bean)管理机制来调用目标算法,比如:“Spring get bean”;若目标调用方式为dubbo泛化调用,则可以通过远程dubbo服务器中暴露的算法接口,来调用目标算法;HTTP调用方式与dubbo泛化调用方式类似,也是通过远程服务器上暴露的算法接口来实现对目标算法的调用。
本实施例中,由于规则文件中配置有主控规则、流程规则、分流规则以及算法规则,规则引擎可以按照一定的顺序解析目标业务请求对应的规则文件,可以实现对目标算法的调用。此外,开发人员预先在分流平台上配置业务请求、分流比例以及字符串的对应关系,则在解析规则文件的过程中,可以由分流平台来确定目标算法对应的目标字符串,并反馈给服务器,实现算法分流,可以减少服务器的运算操作。
在一种可能的应用场景下,若业务为搜索业务,包括召回流程和排序流程,当服务器通过规则引擎解析规则文件,确定召回流程对应的算法A,通过运行该算法A完成召回服务,即得到召回结果之后,需要再次解析该规则文件,确定排序流程对应的算法B,通过运行该算法B对召回结果进一步排序,并将最终排序后的搜索结果反馈在用户界面中。
可选的,召回流程可以包含多次召回,或多次排序,且每次召回或排序时均需要解析规则文件,分别确定其对应的目标算法。
在一种可能的实施方式中,由于服务器是通过解析规则文件来调用目标算法,因此,开发人员仅需对规则文件进行相应修改,即可以在线配置目标业务请求对应的目标算法。
示意性的,在线配置规则文件的过程可以包括以下步骤:
一、接收算法回滚操作,算法回滚操作用于指示将第一算法恢复为第二算法;根据算法回滚操作,将目标算法规则中的第一算法修改为第二算法。
其中,算法回滚指用已开发过的算法替换正在运行的算法,即将第一算法恢复为第二算法。
在一种可能的实施方式中,若开发人员需要进行算法回滚操作,则仅需将规则文件中的第一算法名称替换为第二算法名称,即服务器接收到算法回滚操作,将目标算法规则中的第一算法修改为第二算法。
示意性的,目标业务请求对应的目标算法为recall:E:MFSearchAccurateEngine,即第一算法为MFSearchAccurateEngine,若需要用第二算法替换第一算法,则仅需将目标算法规则中的MFSearchAccurateEngine替换为第二算法对应的名称,则后续解析规则文件时,算法E对应的即是第二算法。
二、接收算法增删操作,算法增删操作用于指示增删目标流程对应的算法;根据算法增删操作,修改目标算法规则以及目标分流规则。
在一种可能的实施方式中,若需要增加或删除某一算法,即增加或删除目标流程对应的算法,则仅需增加或删除该算法在目标分流规则和目标算法规则中的相关内容。
示意性的,若原召回流程对应的算法包括算法A至算法E,现在需要增加算法F,则仅需在目标分流规则中增加算法F对应的目标字符串与目标算法标识的对应关系,在目标算法规则中增加算法F对应的目标算法标识与算法名称的对应关系,通过上述两个步骤,即可以实现目标流程对应的目标算法的增加操作。算法删除操作与算法增加操作类似,本实施例在此不做赘述。
本申请实施例中,通过配置规则文件,可以实现在线替换目标业务请求对应的目标算法,无需开发算法对应的路由代码,可以避免对服务器进行启停操作,减少了不必要的操作流程,可以提高服务器的稳定性。
在一种可能的应用场景下,由于调用目标算法需要实时依赖于规则引擎对规则文件的解析,而规则文件是由开发人员进行编写的,且规则文件可能会不定期进行修改等,为了保证算法调用的稳定性,因此,需要对规则文件进行规则校验,以保证规则引擎可以顺利解析该规则文件。
一、每隔预定时间间隔,通过规则引擎对规则文件进行规则校验,规则校验包括格式校验以及内容校验中的至少一种。
在一种可能的实施方式中,由于规则引擎是基于Spring框架开发的,因此,可以通过Spring定时任务来对规则文件进行规则校验。示意性的,规则引擎每隔5分钟扫描一次规则文件。
可选的,Spring定时任务的时长可以是系统默认值,也可以由开发人员进行自定义设置。
示意性的,格式校验可以包括,对规则文件的编写格式进行校验,比如:检测规则文件是否符合JSON格式编写规范;判断算法规则中使用的算法名称是否与该规则文件的目标流程对应,比如:若目标流程对应的是召回,则其对应的算法规则中应该为“召回(recall)”;判断分流规则中是否存在“default”。内容校验可以包括,检测算法规则中的bean是否存在;检测是否可以调用到对应的算法等,本申请实施例对规则校验的详细内容不构成限定。
二、若规则校验未通过校验,则进行告警提示。
其中,告警提示可以是短信提示、语音提示中的至少一种,或其它形式,本实施例对告警提示的形式不构成限定。
在一种可能的实施方式中,若校验结果指示规则校验未通过,服务器可以进行告警提示,比如,发送短信到开发人员的终端中,以便开发人员可以及时了解到规则文件存在问题,可以及时进行修正。
本实施例中,通过Spring定时任务对规则文件进行校验,可以实时检测规则文件是否存在问题,并在校验未通过时,进行告警提示,以便开发人员可以及时了解到规则文件存在问题,进行及时修正。
此外,在一种可能的应用场景下,开发人员也可以自行开发对应的解析逻辑,通过规则文件对外暴露的HTTP接口,调用该规则文件,通过解析逻辑实现对该规则文件的规则校验。
请参考图6,其示出了本申请一个实施例提供的算法调用装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为业务服务器的全部或一部分。该装置包括:
第一接收模块601,用于接收目标业务请求,所述目标业务请求用于请求为目标业务提供服务;
解析模块602,用于通过规则引擎解析规则文件,确定所述目标业务对应的目标算法,所述规则文件中配置有不同业务对应算法的选取规则;
调用模块603,用于调用所述目标算法为所述目标业务提供算法服务。
可选的,所述规则文件中包括至少一条主控规则、流程规则、分流规则和算法规则;
可选的,所述解析模块602,包括:
第一确定单元,用于根据所述目标业务请求,确定目标主控规则,所述目标主控规则对应的业务为所述目标业务;
第一解析单元,用于通过所述规则引擎解析所述目标主控规则,确定所述目标业务对应的目标流程规则,所述目标流程规则对应的目标流程属于所述目标业务;
第二解析单元,用于通过所述规则引擎解析所述目标流程规则,确定所述目标流程对应的目标分流规则,所述目标分流规则用于指示所述目标流程对应算法的分流策略;
第三解析单元,用于通过所述规则引擎解析所述目标分流规则,得到所述目标算法对应的目标算法标识;
第四解析单元,用于根据所述目标算法标识,通过所述规则引擎解析所述目标流程对应的目标算法规则,确定所述目标算法。
可选的,所述第三解析单元,还用于:
向分流平台发送分流请求,所述分流请求中包括所述目标流程的流程标识以及所述目标业务请求中的请求参数,所述分流平台用于根据所述请求参数以及所述目标流程对应的分流比例,确定所述目标业务请求对应的目标字符串;
接收所述分流平台发送的所述目标字符串;
通过所述规则引擎解析所述目标分流规则,确定所述目标字符串对应的所述目标算法标识,所述目标分流规则中包括字符串与算法标识之间的对应关系
可选的,所述解析模块602还用于通过所述规则引擎解析所述目标流程规则,确定所述目标算法对应的目标调用方式,所述目标调用方式包括本地调用和远程调用中的至少一种;
所述调用模块,包括:
调用单元,用于根据所述目标调用方式调用所述目标算法,并通过所述目标算法为所述目标业务提供算法服务。
可选的,所述装置还包括:
第二接收模块,用于接收算法回滚操作,所述算法回滚操作用于指示将第一算法恢复为第二算法;根据所述算法回滚操作,将所述目标算法规则中的所述第一算法修改为所述第二算法;
或,
第三接收模块,用于接收算法增删操作,所述算法增删操作用于指示增删所述目标流程对应的算法;根据所述算法增删操作,修改所述目标算法规则以及所述目标分流规则。
可选的,所述装置还包括:
校验模块,用于每隔预定时间间隔,通过所述规则引擎对所述规则文件进行规则校验,所述规则校验包括格式校验以及内容校验中的至少一种;
提示模块,用于若所述规则校验未通过校验,则进行告警提示。
可选的,所述规则引擎基于Spring框架,且所述规则引擎支持dubbo泛化调用、Spring定时任务、Spring bean管理机制。
综上所述,本申请实施例中,当服务器接收到目标业务请求时,通过规则引擎解析规则文件,确定所请求目标业务对应的目标算法,从而调用目标算法为目标业务提供算法服务。通过规则引擎解析目标业务对应的规则文件,从而实现对目标算法的调用,相比于相关技术中的算法调用方式,无需为算法专门开发对应的路由代码,仅需配置规则文件即可以实现对算法的调用,可以避免服务器部署较多的路由代码,导致算法的路由代码较为繁杂的问题,从而提高服务器的稳定性,并有助于简化后续算法维护的流程。
请参考图7,其示出了本申请一个示例性实施例提供的服务器700的结构框图。该服务器700包括中央处理单元(Central Processing Unit,CPU)701、包括随机存取存储器(Random Access Memory,RAM)702和只读存储器(Read-Only Memory,ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。该服务器700还包括帮助服务器的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。
所述基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中所述显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。所述基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。所述大容量存储设备707及其相关联的计算机可读存储介质为服务器700提供非易失性存储。也就是说,所述大容量存储设备707可以包括诸如硬盘或者紧凑型光盘只读储存器(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读存储介质(未示出)。
不失一般性,所述计算机可读存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读存储指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(DigitalVersatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元701执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元701执行该一个或多个程序实现上述各个方法实施例提供的方法。
根据本申请的各种实施例,所述服务器700还可以通过诸如因特网等网络连接到网络上的远程服务器运行。也即服务器700可以通过连接在所述系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程服务器系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由服务器所执行的步骤。
本领域技术人员可以理解,图7中示出的结构并不构成对服务器700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的算法调用方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的算法调用方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种算法调用方法,其特征在于,所述方法包括:
接收目标业务请求,所述目标业务请求用于请求为目标业务提供服务;
通过规则引擎解析规则文件,确定所述目标业务对应的目标算法,所述规则文件中配置有不同业务对应算法的选取规则;
调用所述目标算法为所述目标业务提供算法服务。
2.根据权利要求1所述的方法,其特征在于,所述规则文件中包括至少一条主控规则、流程规则、分流规则和算法规则;
所述通过规则引擎解析规则文件,确定所述目标业务对应的目标算法,包括:
根据所述目标业务请求,确定目标主控规则,所述目标主控规则对应的业务为所述目标业务;
通过所述规则引擎解析所述目标主控规则,确定所述目标业务对应的目标流程规则,所述目标流程规则对应的目标流程属于所述目标业务;
通过所述规则引擎解析所述目标流程规则,确定所述目标流程对应的目标分流规则,所述目标分流规则用于指示所述目标流程对应算法的分流策略;
通过所述规则引擎解析所述目标分流规则,得到所述目标算法对应的目标算法标识;
根据所述目标算法标识,通过所述规则引擎解析所述目标流程对应的目标算法规则,确定所述目标算法。
3.根据权利要求2所述的方法,其特征在于,所述通过所述规则引擎解析所述目标分流规则,得到所述目标算法对应的目标算法标识,包括:
向分流平台发送分流请求,所述分流请求中包括所述目标流程的流程标识以及所述目标业务请求中的请求参数,所述分流平台用于根据所述请求参数以及所述目标流程对应的分流比例,确定所述目标业务请求对应的目标字符串;
接收所述分流平台发送的所述目标字符串;
通过所述规则引擎解析所述目标分流规则,确定所述目标字符串对应的所述目标算法标识,所述目标分流规则中包括字符串与算法标识之间的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标算法标识,通过所述规则引擎解析所述目标流程对应的目标算法规则,确定所述目标算法之后,所述方法还包括:
通过所述规则引擎解析所述目标流程规则,确定所述目标算法对应的目标调用方式,所述目标调用方式包括本地调用和远程调用中的至少一种;
所述调用所述目标算法为所述目标业务提供算法服务,包括:
根据所述目标调用方式调用所述目标算法,并通过所述目标算法为所述目标业务提供算法服务。
5.根据权利要求2至4任一所述的方法,其特征在于,所述方法还包括:
接收算法回滚操作,所述算法回滚操作用于指示将第一算法恢复为第二算法;根据所述算法回滚操作,将所述目标算法规则中的所述第一算法修改为所述第二算法;
或,
接收算法增删操作,所述算法增删操作用于指示增删所述目标流程对应的算法;根据所述算法增删操作,修改所述目标算法规则以及所述目标分流规则。
6.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
每隔预定时间间隔,通过所述规则引擎对所述规则文件进行规则校验,所述规则校验包括格式校验以及内容校验中的至少一种;
若所述规则校验未通过校验,则进行告警提示。
7.根据权利要求1至4任一所述的方法,其特征在于,所述规则引擎基于开源Spring框架,且所述规则引擎支持分布式服务框架dubbo泛化调用、Spring定时任务、Spring对象bean管理机制。
8.一种算法调用装置,其特征在于,所述装置包括:
第一接收模块,用于接收目标业务请求,所述目标业务请求用于请求为目标业务提供服务;
解析模块,用于通过规则引擎解析规则文件,确定所述目标业务对应的目标算法,所述规则文件中配置有不同业务对应算法的选取规则;
调用模块,用于调用所述目标算法为所述目标业务提供算法服务。
9.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的算法调用方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的算法调用方法。
CN201911415273.1A 2019-12-31 2019-12-31 算法调用方法、装置、服务器及存储介质 Pending CN111158654A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911415273.1A CN111158654A (zh) 2019-12-31 2019-12-31 算法调用方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911415273.1A CN111158654A (zh) 2019-12-31 2019-12-31 算法调用方法、装置、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN111158654A true CN111158654A (zh) 2020-05-15

Family

ID=70560089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911415273.1A Pending CN111158654A (zh) 2019-12-31 2019-12-31 算法调用方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111158654A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112330519A (zh) * 2020-11-17 2021-02-05 珠海大横琴科技发展有限公司 一种数据处理的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109995713A (zh) * 2017-12-30 2019-07-09 华为技术有限公司 一种微服务框架中的服务处理方法及相关设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109995713A (zh) * 2017-12-30 2019-07-09 华为技术有限公司 一种微服务框架中的服务处理方法及相关设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112330519A (zh) * 2020-11-17 2021-02-05 珠海大横琴科技发展有限公司 一种数据处理的方法和装置

Similar Documents

Publication Publication Date Title
US11847480B2 (en) System for detecting impairment issues of distributed hosts
CN110569035A (zh) 软件开发项目的代码编译方法、装置、设备和存储介质
CN111190753B (zh) 分布式任务处理方法、装置、存储介质和计算机设备
US9940115B2 (en) Mobile application deployment for distributed computing environments
CN112702195A (zh) 网关配置方法、电子设备及计算机可读存储介质
CN113326523A (zh) 一种隐私计算方法、装置及电子设备
CN116644250B (zh) 页面检测方法、装置、计算机设备和存储介质
CN113821254A (zh) 接口数据处理方法、装置、存储介质及设备
CN111158654A (zh) 算法调用方法、装置、服务器及存储介质
WO2023151397A1 (zh) 应用程序部署方法、装置、设备及介质
CN116661936A (zh) 页面数据的处理方法、装置、计算机设备及存储介质
CN112732265A (zh) 一种数据处理方法和相关装置
CN113468446B (zh) 一种支持识别第三方二维码数据的方法、系统及设备
CN112817782B (zh) 一种数据采集上报方法、装置、电子设备和存储介质
CN115390944A (zh) 一种算法服务调用方法、装置、电子设备及存储介质
CN113031960B (zh) 代码编译方法、装置、服务器及存储介质
CN112817635B (zh) 一种模型处理方法和数据处理系统
CN116680203B (zh) 面向多租户的SaaS平台的测试方法、装置、设备和介质
CN113315676B (zh) 一种断链检测的方法、装置及电子设备
CN110956269B (zh) 数据模型的生成方法、装置、设备以及计算机存储介质
CN117955807A (zh) 系统检测方法、装置、电子设备及计算机可读存储介质
CN117648107A (zh) 灰度分发方法、装置、计算机设备、存储介质
CN114461180A (zh) 一种微服务框架下的数据开发系统和方法
CN114756446A (zh) 一种接口调试方法和装置
CN117255028A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211202

Address after: Room 084, No. 1-309, 3rd floor, commercial building, No. 9 Wangjing street, Chaoyang District, Beijing 100102

Applicant after: Beijing Daily Youxian Technology Co.,Ltd.

Address before: 100102 room 801, 08 / F, building 7, yard 34, Chuangyuan Road, Chaoyang District, Beijing

Applicant before: BEIJING MISSFRESH E-COMMERCE Co.,Ltd.

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200515