CN111767157B - 基于服务网格的请求处理方法和装置 - Google Patents

基于服务网格的请求处理方法和装置 Download PDF

Info

Publication number
CN111767157B
CN111767157B CN201910726279.4A CN201910726279A CN111767157B CN 111767157 B CN111767157 B CN 111767157B CN 201910726279 A CN201910726279 A CN 201910726279A CN 111767157 B CN111767157 B CN 111767157B
Authority
CN
China
Prior art keywords
service
application
dynamic
rule
service grid
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.)
Active
Application number
CN201910726279.4A
Other languages
English (en)
Other versions
CN111767157A (zh
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 Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke 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 Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910726279.4A priority Critical patent/CN111767157B/zh
Publication of CN111767157A publication Critical patent/CN111767157A/zh
Application granted granted Critical
Publication of CN111767157B publication Critical patent/CN111767157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了基于服务网格的请求处理方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用服务网格代理获取与应用相关的动态应用规则;根据应用发起的调用请求,确定调用请求对应的被调用服务,并从动态应用规则中筛选出与被调用服务匹配的目标规则;根据目标规则对被调用服务直接或者间接发起调用,并接收被调用服务返回的请求数据。该实施方式借助动态规则引擎从服务网格代理获取动态应用规则,并根据动态应用规则中的目标规则发起调用,从而可以通过动态规则引擎,实现应用与服务网格代理之间的高效配合,提高请求处理的效率。

Description

基于服务网格的请求处理方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于服务网格的请求处理方法和装置。
背景技术
信息化时代的来临,微服务架构(即,支持大规模微服务部署的一套整体架构,包含大量服务治理功能,其中,微服务是指包含一组独立功能的服务)应运而生。由于传统的微服务架构大多采用集成各种程序库的方式,需要应用集成微服务相关库,并在应用中做一定代码或配置变更,服务治理与应用业务逻辑耦合较紧。为了解决这些问题,服务网格(即,新一代的微服务架构,将服务治理逻辑放在服务网格代理实现,能够代理应用请求)技术逐渐兴起。
采用服务网格技术,应用所有的请求都会经过服务网络代理,因此应用不再关注服务治理相关逻辑,只专注业务逻辑即可。但是,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:一、现有的服务网格方案完全脱离业务应用的配合,有些功能难以实现,因此需要给业务打补丁,以补充网格的功能,但是这些补充缺乏统一性;二、现有的服务网格方案中,所有网络流量必然经过两层代理,并且在代理里还有很多逻辑要检查和执行,造成不小的延迟。
发明内容
有鉴于此,本发明实施例提供一种基于服务网格的请求处理方法和装置,能够通过动态规则引擎,实现应用与服务网格代理之间的高效配合,提高请求处理的效率。
为实现上述目的,根据本发明实施例的第一方面,提供了一种基于服务网格的请求处理方法。
本发明实施例的一种基于服务网格的请求处理方法,包括:触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用所述服务网格代理获取与所述应用相关的动态应用规则;根据所述应用发起的调用请求,确定所述调用请求对应的被调用服务,并从所述动态应用规则中筛选出与所述被调用服务匹配的目标规则;根据所述目标规则对所述被调用服务直接或者间接发起调用,并接收所述被调用服务返回的请求数据。
可选地,所述触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用所述服务网格代理获取与所述应用相关的动态应用规则,包括:启动所述应用,触发所述应用的动态规则引擎,并建立所述动态规则引擎与所述服务网格代理之间的连接,使得所述服务网格代理在服务网格控制面中查询与所述应用相关的动态应用规则;在所述服务网格代理将查询到的所述动态应用规则返回至所述动态规则引擎后,利用所述动态规则引擎加载所述动态应用规则。
可选地,所述方法还包括:根据规则变更需求,接收所述服务网格代理从所述服务网格控制面中获取的变更后的动态应用规则,并利用所述动态规则引擎加载所述变更后的动态应用规则。
可选地,所述根据所述目标规则对所述被调用服务直接或者间接发起调用,并接收所述被调用服务返回的请求数据,包括:根据所述目标规则,判断是否可以直接调用所述被调用服务;若是,则直接向所述被调用服务发起调用请求,并接收所述被调用服务直接返回的请求数据;若否,则通过所述服务网格代理向所述被调用服务发起调用请求,并接收所述被调用服务通过所述服务网格代理返回的请求数据。
可选地,在根据所述目标规则对所述被调用服务直接或者间接发起调用之前,所述方法还包括:基于权限控制原则、路由控制原则或流量控制原则中至少一项进行检查,若检查通过,则对所述被调用服务直接或者间接发起调用。
可选地,在接收所述被调用服务返回的请求数据之后,所述方法还包括:根据所述应用发起的调用请求,判断是否需要上报观测数据,若是,则将所述观测数据上报存储;其中,所述观测数据包括与调用请求相关的监控数据、跟踪数据或者日志数据。
为实现上述目的,根据本发明实施例的第二方面,提供了一种基于服务网格的请求处理装置。
本发明实施例的一种基于服务网格的请求处理装置,包括:获取模块,用于触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用所述服务网格代理获取与所述应用相关的动态应用规则;筛选模块,用于根据所述应用发起的调用请求,确定所述调用请求对应的被调用服务,并从所述动态应用规则中筛选出与所述被调用服务匹配的目标规则;调用模块,用于根据所述目标规则对所述被调用服务直接或者间接发起调用,并接收所述被调用服务返回的请求数据。
可选地,所述获取模块还用于:启动所述应用,触发所述应用的动态规则引擎,并建立所述动态规则引擎与所述服务网格代理之间的连接,使得所述服务网格代理在服务网格控制面中查询与所述应用相关的动态应用规则;在所述服务网格代理将查询到的所述动态应用规则返回至所述动态规则引擎后,利用所述动态规则引擎加载所述动态应用规则。
可选地,所述装置还包括变更模块,用于:根据规则变更需求,接收所述服务网格代理从所述服务网格控制面中获取的变更后的动态应用规则,并利用所述动态规则引擎加载所述变更后的动态应用规则。
可选地,所述调用模块还用于:根据所述目标规则,判断是否可以直接调用所述被调用服务;若是,则直接向所述被调用服务发起调用请求,并接收所述被调用服务直接返回的请求数据;若否,则通过所述服务网格代理向所述被调用服务发起调用请求,并接收所述被调用服务通过所述服务网格代理返回的请求数据。
可选地,所述调用模块还用于:基于权限控制原则、路由控制原则或流量控制原则中至少一项进行检查,若检查通过,则对所述被调用服务直接或者间接发起调用。
可选地,所述装置还包括上报模块,用于:根据所述应用发起的调用请求,判断是否需要上报观测数据,若是,则将所述观测数据上报存储;其中,所述观测数据包括与调用请求相关的监控数据、跟踪数据或者日志数据。
为实现上述目的,根据本发明实施例的第三方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的基于服务网格的请求处理方法。
为实现上述目的,根据本发明实施例的第四方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明实施例的基于服务网格的请求处理方法。
上述发明中的一个实施例具有如下优点或有益效果:因为在应用中设置动态规则引擎,能够借助动态规则引擎建立与服务网格代理之间的连接,接着利用服务网格代理获取动态应用规则,并根据调用请求从动态应用规则中筛选出目标规则,然后可以利用目标规则直接或者间接发起调用,所以克服了现有技术中服务网格完全脱离与应用间配合的问题,进而达到通过动态规则引擎,实现应用与服务网格代理之间的高效配合的技术效果,提高了请求处理的效率,加强了用户体验。此外,本发明实施例的基于服务网格的请求处理方法中,首先通过服务网格代理,从服务网格控制面中查询与该应用相关的动态应用规则,从而可以根据调用请求,快速筛选出目标规则,提高请求的处理效率。还有,本发明实施例的基于服务网格的请求处理方法中,能够根据规则变更需求,对加载的动态应用规则进行实时变更,提高本方案的实用性。另外,本发明实施例的基于服务网格的请求处理方法中,能够根据具体的调用请求判断是否需要通过服务网格代理发起调用,从而可以解决现有技术中必须经过两层代理的问题,降低延迟率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的基于服务网格的请求处理方法的主要步骤的示意图;
图2是根据本发明实施例的服务网格方案的示意图;
图3是根据本发明实施例的加载动态应用规则的方法的主要流程的示意图;
图4是根据本发明实施例的变更动态应用规则的方法的主要流程的示意图;
图5是根据本发明实施例的应用直连的实例示意图;
图6是根据本发明实施例的基于服务网格的请求处理方法的主要流程的示意图;
图7是根据本发明实施例的基于服务网格的请求处理装置的主要模块的示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的基于服务网格的请求处理方法的主要步骤的示意图。作为本发明的一个可参考实施例,如图1所示,本发明实施例的基于服务网格的请求处理方法的主要步骤可以包括步骤S101至步骤S103。
步骤S101:触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用服务网格代理获取与应用相关的动态应用规则。
与现有的服务网格方案相比,本发明实施例提供的服务网格方案具有服务网格控制面和服务网格代理之外,还包括动态规则引擎,该动态规则引擎能够将程序库和业务逻辑集成在一起。图2是根据本发明实施例的服务网格方案的示意图。从图2中可以看出,本发明实施例的服务网格方案中,在应用中设置动态规则引擎部分,并且可以通过动态规则引擎建立与服务网格代理之间的连接,这样就可以通过服务网格代理从服务网格控制面中获取到该应用相关的动态应用规则。
因此,本发明实施例中的动态规则引擎可以动态执行各种规则,达到服务网格代理和应用的更好配合。此外,与传统微服务的功能库相比,动态规则引擎并不提供大量的服务治理功能,只是提供一种根据规则动态执行的框架,因而避免了传统微服务方式业务集成复杂,使用复杂,更新复杂等技术问题。还有,动态规则引擎会从服务网格代理中获取各种规则,并根据规则在业务应用发送请求各阶段插入动态代码逻辑,而且可插入的动态代码逻辑既可以包含策略类,又可以包含调用链、监控之类信息的提取或补齐,甚至可以直接将过滤好的健康实例地址直接反馈给业务方直接跳过代理发起调用。
从上述描述可以看出,可以通过动态规则引擎获取到与应用相关的动态应用规则,作为本发明的又一个可参考实施例,获取与应用相关的动态应用规则可以包括:启动应用,触发应用的动态规则引擎,并建立动态规则引擎与服务网格代理之间的连接,使得服务网格代理在服务网格控制面中查询与应用相关的动态应用规则;在服务网格代理将查询到的动态应用规则返回至动态规则引擎后,利用动态规则引擎加载动态应用规则。
图3是根据本发明实施例的加载动态应用规则的方法的主要流程的示意图。从图3可以看出,应用启动时,动态规则引擎连接到服务网格代理,拉取动态应用规则,具体实现过程为:在应用启动的时候,可以自动触发该应用的动态规则引擎,这样就可以促使动态规则引擎与服务网格代理建立连接,之后服务网格代理会连接服务网格控制面,并从服务网格控制面中查询该应用的动态应用规则,然后服务网格代理将查询到的动态应用规则返回至动态规则引擎中,最后动态规则引擎加载这些动态应用规则。因此,本发明实施例在应用中设置动态规则引擎,能够借助动态规则引擎建立与服务网格代理之间的连接,接着利用服务网格代理获取动态应用规则,最后,动态规则引擎可以加载获取到的动态应用规则。这样,在该应用发起调用请求时,可以直接利用预先加载的动态应用规则执行调用。在后续描述中,会详细介绍根据动态应用规则,执行调用请求的过程。
本发明实施例的动态规则引擎还可以通过定期拉取或者事件通知机制更新动态应用规则。因此,作为本发明的再一个可参考实施例,基于服务网格的请求处理方法还可以包括:根据规则变更需求,接收服务网格代理从服务网格控制面中获取的变更后的动态应用规则,并利用动态规则引擎加载变更后的动态应用规则。此处的规则变更需求可以包括:定期更新需求以及运维人员主动变更。为了便于理解,本发明实施例通过运维人员变更需求对动态应用规则进行变更的实例。
图4是根据本发明实施例的变更动态应用规则的方法的主要流程的示意图。如图4所示,运维人员首先提出变更需求,然后服务网格控制面会根据提出的变更需求进行规则变更,得到变更后的动态应用规则,并向服务网格代理推送规则变更事件,接着服务网格代理向动态规则引擎推送规则变更事件,最后动态规则引擎可以加载变更后的动态应用规则。其中,规则变更事件中可以包括变更后的动态应用规则。因此,本发明实施例的基于服务网格的请求处理方法中,能够根据规则变更需求,对加载的动态应用规则进行实时变更,提高本方案的实用性。
步骤S102:根据应用发起的调用请求,确定调用请求对应的被调用服务,并从动态应用规则中筛选出与被调用服务匹配的目标规则。
上文详细介绍了动态应用规则的获取以及更新,在步骤S102和步骤S103具体解释根据动态应用规则处理应用发起的调用请求。首先,需要根据具体的调用请求,确定此次调用请求对应的被调用服务,并且需要从动态应用规则中筛选出与被调用服务匹配的目标规则,例如,被调用服务是A,那么目标规则就是调用A需要遵循的应用规则。
步骤S103:根据目标规则对被调用服务直接或者间接发起调用,并接收被调用服务返回的请求数据。
通过步骤S102筛选出目标规则之后,在步骤S103中,根据筛选的目标规则和服务网格代理,发起调用,然后接收被调用服务返回的请求数据。作为本发明实施例的另一个可参考实施例,根据目标规则对被调用服务直接或者间接发起调用,并接收被调用服务返回的请求数据,可以包括:根据目标规则,判断是否可以直接调用被调用服务;若是,则直接向被调用服务发起调用请求,并接收被调用服务直接返回的请求数据;若否,则通过服务网格代理向被调用服务发起调用请求,并接收被调用服务通过服务网格代理返回的请求数据。
本发明实施例中,发起调用时,首先判断是否可以直接调用被调用服务,也就是说不经过服务网格代理,直接对被调用服务发起调用,如果可以,则也可以直接接收被调用服务直接返回的请求数据,这样就可以避免现有服务网格方案中必须经过两层代理的问题,从而可以降低延迟率,并且这样处理还体现了本发明实施例的方案中根据实际情况具体分析,提高了实用性。当然,如果判断不可以直接调用被调用服务,那么需要通过服务网格代理向被调用服务发起调用请求,然后接收被调用服务通过服务网格代理返回的请求数据。
此外,本发明实施例中,在根据目标规则对被调用服务发起调用之前,基于服务网格的请求处理方法还可以包括:基于权限控制原则、路由控制原则或流量控制原则中至少一项进行检查,若检查通过,则对被调用服务发起调用。本发明实施例中在发起调用之前,利用权限控制原则、路由控制原则或流量控制原则中至少一项进行检查,若检查通过,则对被调用服务发起调用。其中,权限控制是判断该应用是否可以调用被调用服务,若是,则权限检查通过;路由控制原则是判断分配的路由线路,根据分配的路由线路进行调用;流量控制原则是对流量进行控制,若流量超过预设流量值,则说明检查不通过。本发明实施例中在发起调用之前进行检查,若检查通过,才对被调用服务发起调用,可以考虑到各种场景,使方案更贴切实际,提高方案的实用性,也进一步提高用户体验。
还有,本发明实施例中,在接收被调用服务返回的请求数据之后,基于服务网格的请求处理方法还可以包括:根据应用发起的调用请求,判断是否需要上报观测数据,若是,则将观测数据上报存储;其中,观测数据包括与调用请求相关的监控数据、跟踪数据或者日志数据。本发明实施例中,在接收到返回数据之后,可以根据发起的调用请求,判断是否需要将此次请求过程中产生的观测数据上传,其中观测数据可以包括监控数据、跟踪数据或者日志数据,将观测数据上传可以方便用户进行查询或者其他操作,能够进一步提高用户体验。
为了方便理解,提供三个典型应用进行解释说明。典型应用一:自动传递调用链请求头,即判断是否开启了调用链,如果开启则下发调用链传递规则,动态规则引擎在请求上下文中将调用链请求头传递。典型应用二:熔断回调,即如果开启了熔断回调,发生熔断时触发业务的熔断回调逻辑。典型应用三:应用直连,即默认动态规则引擎将所有请求转交给服务网格代理处理,但是如果配置了应用直连,动态规则引擎与服务网格代理进行通讯,获取目标服务满足策略的可用端点列表以及负载均衡策略,则应用直接进行负载均衡选点发起与对端的连接,图5是根据本发明实施例的应用直连的实例示意图。
图6是根据本发明实施例的基于服务网格的请求处理方法的主要流程的示意图。如图6所示,本发明实施例的基于服务网格的请求处理方法的主要流程可以包括:
步骤S601:启动应用,触发应用的动态规则引擎;
步骤S602:建立动态规则引擎与服务网格代理之间的连接,使得服务网格代理在服务网格控制面中查询与应用相关的动态应用规则;
步骤S603:在服务网格代理将查询到的动态应用规则返回至动态规则引擎后,利用动态规则引擎加载动态应用规则;
步骤S604:根据应用发起的调用请求,确定调用请求对应的被调用服务,并从动态应用规则中筛选出与被调用服务匹配的目标规则;
步骤S605:基于权限控制原则、路由控制原则或流量控制原则中至少一项进行检查;
步骤S606:判断检查是否通过,若是,则执行步骤S607,若否,则执行步骤S612;
步骤S607:根据目标规则,判断是否可以直接调用被调用服务,若是,则执行步骤S608,若否,则执行步骤S609;
步骤S608:直接向被调用服务发起调用请求,并接收被调用服务直接返回的请求数据;
步骤S609:通过服务网格代理向被调用服务发起调用请求,并接收被调用服务通过服务网格代理返回的请求数据;
步骤S610:根据应用发起的调用请求,判断是否需要上报观测数据,若是,则执行步骤S611;
步骤S611:将观测数据上报存储,其中,观测数据包括与调用请求相关的监控数据、跟踪数据或者日志数据;
步骤S612:确认此次调用请求失败。
需要注意的是,上述步骤S601至步骤S603分析了动态应用规则的加载过程,本发明实施例的方法还可以包括动态应用规则的更新过程,具体实现为:根据规则变更需求,接收服务网格代理从服务网格控制面中获取的变更后的动态应用规则,并利用动态规则引擎加载变更后的动态应用规则。
根据本发明实施例的基于服务网格的请求处理的技术方案,因为在应用中设置动态规则引擎,能够借助动态规则引擎建立与服务网格代理之间的连接,接着利用服务网格代理获取动态应用规则,并根据调用请求从动态应用规则中筛选出目标规则,然后可以利用目标规则直接或者间接发起调用,所以克服了现有技术中服务网格完全脱离与应用间配合的问题,进而达到通过动态规则引擎,实现应用与服务网格代理之间的高效配合的技术效果,提高了请求处理的效率,加强了用户体验。此外,本发明实施例的基于服务网格的请求处理方法中,首先通过服务网格代理,从服务网格控制面中查询与该应用相关的动态应用规则,从而可以根据调用请求,快速筛选出目标规则,提高请求的处理效率。还有,本发明实施例的基于服务网格的请求处理方法中,能够根据规则变更需求,对加载的动态应用规则进行实时变更,提高本方案的实用性。另外,本发明实施例的基于服务网格的请求处理方法中,能够根据具体的调用请求判断是否需要通过服务网格代理发起调用,从而可以解决现有技术中必须经过两层代理的问题,降低延迟率。
图7是根据本发明实施例的基于服务网格的请求处理装置的主要模块的示意图。如图7所示,本发明实施例的基于服务网格的请求处理装置700主要包括以下模块:获取模块701、筛选模块702和调用模块703。
其中,获取模块701可用于触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用服务网格代理获取与应用相关的动态应用规则;筛选模块702可用于根据应用发起的调用请求,确定调用请求对应的被调用服务,并从动态应用规则中筛选出与被调用服务匹配的目标规则;调用模块703可用于根据目标规则对被调用服务直接或者间接发起调用,并接收被调用服务返回的请求数据。
本发明实施例中,获取模块701还可用于:启动应用,触发应用的动态规则引擎,并建立动态规则引擎与服务网格代理之间的连接,使得服务网格代理在服务网格控制面中查询与应用相关的动态应用规则;在服务网格代理将查询到的动态应用规则返回至动态规则引擎后,利用动态规则引擎加载动态应用规则。
本发明实施例中,基于服务网格的请求处理装置还可以包括变更模块(图中未示出),可用于:根据规则变更需求,接收服务网格代理从服务网格控制面中获取的变更后的动态应用规则,并利用动态规则引擎加载变更后的动态应用规则。
本发明实施例中,调用模块703还可用于:根据目标规则,判断是否可以直接调用被调用服务;若是,则直接向被调用服务发起调用请求,并接收被调用服务直接返回的请求数据;若否,则通过服务网格代理向被调用服务发起调用请求,并接收被调用服务通过服务网格代理返回的请求数据。
本发明实施例中,调用模块703还可用于:基于权限控制原则、路由控制原则或流量控制原则中至少一项进行检查,若检查通过,则对被调用服务直接或者间接发起调用。
本发明实施例中,基于服务网格的请求处理装置还可以包括上报模块(图中未示出),可用于:根据应用发起的调用请求,判断是否需要上报观测数据,若是,则将观测数据上报存储;其中,观测数据可以包括与调用请求相关的监控数据、跟踪数据或者日志数据。
从以上描述可以看出,本发明实施例的基于服务网格的请求处理装置因为在应用中设置动态规则引擎,能够借助动态规则引擎建立与服务网格代理之间的连接,接着利用服务网格代理获取动态应用规则,并根据调用请求从动态应用规则中筛选出目标规则,然后可以利用目标规则直接或者间接发起调用,所以克服了现有技术中服务网格完全脱离与应用间配合的问题,进而达到通过动态规则引擎,实现应用与服务网格代理之间的高效配合的技术效果,提高了请求处理的效率,加强了用户体验。此外,本发明实施例的基于服务网格的请求处理方法中,首先通过服务网格代理,从服务网格控制面中查询与该应用相关的动态应用规则,从而可以根据调用请求,快速筛选出目标规则,提高请求的处理效率。还有,本发明实施例的基于服务网格的请求处理方法中,能够根据规则变更需求,对加载的动态应用规则进行实时变更,提高本方案的实用性。另外,本发明实施例的基于服务网格的请求处理方法中,能够根据具体的调用请求判断是否需要通过服务网格代理发起调用,从而可以解决现有技术中必须经过两层代理的问题,降低延迟率。
图8示出了可以应用本发明实施例的基于服务网格的请求处理方法或基于服务网格的请求处理装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的基于服务网格的请求处理方法一般由服务器805执行,相应地,基于服务网格的请求处理装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、筛选模块和调用模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用服务网格代理获取与应用相关的动态应用规则的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用服务网格代理获取与应用相关的动态应用规则;根据应用发起的调用请求,确定调用请求对应的被调用服务,并从动态应用规则中筛选出与被调用服务匹配的目标规则;根据目标规则对被调用服务直接或者间接发起调用,并接收被调用服务返回的请求数据。
根据本发明实施例的技术方案,因为在应用中设置动态规则引擎,能够借助动态规则引擎建立与服务网格代理之间的连接,接着利用服务网格代理获取动态应用规则,并根据调用请求从动态应用规则中筛选出目标规则,然后可以利用目标规则直接或者间接发起调用,所以克服了现有技术中服务网格完全脱离与应用间配合的问题,进而达到通过动态规则引擎,实现应用与服务网格代理之间的高效配合的技术效果,提高了请求处理的效率,加强了用户体验。此外,本发明实施例的基于服务网格的请求处理方法中,首先通过服务网格代理,从服务网格控制面中查询与该应用相关的动态应用规则,从而可以根据调用请求,快速筛选出目标规则,提高请求的处理效率。还有,本发明实施例的基于服务网格的请求处理方法中,能够根据规则变更需求,对加载的动态应用规则进行实时变更,提高本方案的实用性。另外,本发明实施例的基于服务网格的请求处理方法中,能够根据具体的调用请求判断是否需要通过服务网格代理发起调用,从而可以解决现有技术中必须经过两层代理的问题,降低延迟率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种基于服务网格的请求处理方法,其特征在于,包括:
触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用所述服务网格代理获取与所述应用相关的动态应用规则;所述动态规则引擎将程序库和业务逻辑集成在一起,且所述动态规则引擎仅提供一种根据规则动态执行的框架;
根据所述应用发起的调用请求,确定所述调用请求对应的被调用服务,并从所述动态应用规则中筛选出与所述被调用服务匹配的目标规则;
根据所述目标规则对所述被调用服务直接或者间接发起调用,并接收所述被调用服务返回的请求数据。
2.根据权利要求1所述的方法,其特征在于,所述触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用所述服务网格代理获取与所述应用相关的动态应用规则,包括:
启动所述应用,触发所述应用的动态规则引擎,并建立所述动态规则引擎与所述服务网格代理之间的连接,使得所述服务网格代理在服务网格控制面中查询与所述应用相关的动态应用规则;
在所述服务网格代理将查询到的所述动态应用规则返回至所述动态规则引擎后,利用所述动态规则引擎加载所述动态应用规则。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据规则变更需求,接收所述服务网格代理从所述服务网格控制面中获取的变更后的动态应用规则,并利用所述动态规则引擎加载所述变更后的动态应用规则。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标规则对所述被调用服务直接或者间接发起调用,并接收所述被调用服务返回的请求数据,包括:
根据所述目标规则,判断是否可以直接调用所述被调用服务;
若是,则直接向所述被调用服务发起调用请求,并接收所述被调用服务直接返回的请求数据;
若否,则通过所述服务网格代理向所述被调用服务发起调用请求,并接收所述被调用服务通过所述服务网格代理返回的请求数据。
5.根据权利要求1所述的方法,其特征在于,在根据所述目标规则对所述被调用服务直接或者间接发起调用之前,所述方法还包括:
基于权限控制原则、路由控制原则或流量控制原则中至少一项进行检查,若检查通过,则对所述被调用服务直接或者间接发起调用。
6.根据权利要求1所述的方法,其特征在于,在接收所述被调用服务返回的请求数据之后,所述方法还包括:
根据所述应用发起的调用请求,判断是否需要上报观测数据,若是,则将所述观测数据上报存储;其中,
所述观测数据包括与调用请求相关的监控数据、跟踪数据或者日志数据。
7.一种基于服务网格的请求处理装置,其特征在于,包括:
获取模块,用于触发应用的动态规则引擎,建立与服务网格代理之间的连接,以利用所述服务网格代理获取与所述应用相关的动态应用规则;所述动态规则引擎将程序库和业务逻辑集成在一起,且所述动态规则引擎仅提供一种根据规则动态执行的框架;
筛选模块,用于根据所述应用发起的调用请求,确定所述调用请求对应的被调用服务,并从所述动态应用规则中筛选出与所述被调用服务匹配的目标规则;
调用模块,用于根据所述目标规则对所述被调用服务直接或者间接发起调用,并接收所述被调用服务返回的请求数据。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201910726279.4A 2019-08-07 2019-08-07 基于服务网格的请求处理方法和装置 Active CN111767157B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910726279.4A CN111767157B (zh) 2019-08-07 2019-08-07 基于服务网格的请求处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910726279.4A CN111767157B (zh) 2019-08-07 2019-08-07 基于服务网格的请求处理方法和装置

Publications (2)

Publication Number Publication Date
CN111767157A CN111767157A (zh) 2020-10-13
CN111767157B true CN111767157B (zh) 2024-05-17

Family

ID=72718284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910726279.4A Active CN111767157B (zh) 2019-08-07 2019-08-07 基于服务网格的请求处理方法和装置

Country Status (1)

Country Link
CN (1) CN111767157B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328362B (zh) * 2020-11-03 2023-03-28 浪潮云信息技术股份公司 一种基于容器技术实现函数计算服务的方法
CN114257652B (zh) * 2021-12-10 2024-01-30 中信银行股份有限公司 一种请求报文处理方法、装置、设备及可读存储介质
CN114579199B (zh) * 2022-02-22 2024-04-26 阿里巴巴(中国)有限公司 一种服务网格中代理的扩展方法、系统及存储介质
CN116599965B (zh) * 2023-07-18 2024-01-30 中移(苏州)软件技术有限公司 通信方法、通信装置、电子设备和可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130965A (zh) * 2011-04-13 2011-07-20 北京邮电大学 一种基于规则引擎的服务动态组合方法和系统
CN106101090A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 用于规则引擎的操作方法以及规则引擎系统
CN108847989A (zh) * 2018-06-29 2018-11-20 杭州安恒信息技术股份有限公司 基于微服务架构的日志处理方法、业务服务系统以及电子设备
CN109194753A (zh) * 2018-09-11 2019-01-11 四川长虹电器股份有限公司 一种服务网格中事件处理的方法
CN109254859A (zh) * 2018-09-12 2019-01-22 中国人民解放军国防科技大学 一种多层控制的自适应微服务系统
CN109542935A (zh) * 2018-10-11 2019-03-29 平安科技(深圳)有限公司 一种规则引擎的执行方法、存储介质和服务器
CN109783151A (zh) * 2017-11-10 2019-05-21 北京京东尚科信息技术有限公司 规则变更的方法和装置
CN109981789A (zh) * 2019-04-03 2019-07-05 山东浪潮云信息技术有限公司 一种基于代理模式的微服务引擎

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8103607B2 (en) * 2008-05-29 2012-01-24 Red Hat, Inc. System comprising a proxy server including a rules engine, a remote application server, and an aspect server for executing aspect services remotely

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130965A (zh) * 2011-04-13 2011-07-20 北京邮电大学 一种基于规则引擎的服务动态组合方法和系统
CN106101090A (zh) * 2016-06-07 2016-11-09 中国建设银行股份有限公司 用于规则引擎的操作方法以及规则引擎系统
CN109783151A (zh) * 2017-11-10 2019-05-21 北京京东尚科信息技术有限公司 规则变更的方法和装置
CN108847989A (zh) * 2018-06-29 2018-11-20 杭州安恒信息技术股份有限公司 基于微服务架构的日志处理方法、业务服务系统以及电子设备
CN109194753A (zh) * 2018-09-11 2019-01-11 四川长虹电器股份有限公司 一种服务网格中事件处理的方法
CN109254859A (zh) * 2018-09-12 2019-01-22 中国人民解放军国防科技大学 一种多层控制的自适应微服务系统
CN109542935A (zh) * 2018-10-11 2019-03-29 平安科技(深圳)有限公司 一种规则引擎的执行方法、存储介质和服务器
CN109981789A (zh) * 2019-04-03 2019-07-05 山东浪潮云信息技术有限公司 一种基于代理模式的微服务引擎

Also Published As

Publication number Publication date
CN111767157A (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
CN111767157B (zh) 基于服务网格的请求处理方法和装置
CN110310034B (zh) 一种应用于SaaS的服务编排、业务流程处理方法和装置
CN112860451A (zh) 一种基于SaaS的多租户数据处理方法和装置
CN111427701A (zh) 一种工作流引擎系统和业务处理方法
CN113517985B (zh) 文件数据处理方法、装置、电子设备及计算机可读介质
CN110795147A (zh) 一种接口协议文件管理方法和装置
CN111478781B (zh) 一种消息广播的方法和装置
CN111460129A (zh) 标识生成的方法、装置、电子设备和存储介质
CN110505074B (zh) 一种应用模块化集成方法和装置
CN114979295B (zh) 一种网关管理的方法和装置
CN112084042B (zh) 一种消息处理的方法和装置
CN113282589A (zh) 一种数据获取方法和装置
US9679262B2 (en) Image index routing
CN110764769B (zh) 处理用户请求的方法和装置
CN111382953A (zh) 一种动态流程生成方法和装置
CN114760360B (zh) 请求响应方法、装置、电子设备及计算机可读存储介质
CN112671877B (zh) 一种数据处理方法和装置
CN113760487B (zh) 一种业务处理方法和装置
CN112688982B (zh) 一种用户请求处理方法和装置
CN110909269B (zh) 一种日志上报的方法和装置
CN111984616A (zh) 一种更新共享文件的方法、装置和系统
CN111737218A (zh) 一种共享文件的方法及装置
CN112860505A (zh) 一种分布式集群的调控方法及装置
CN113760886B (zh) 提供数据服务的方法、装置、设备和计算机可读介质
CN112306984A (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
GR01 Patent grant
GR01 Patent grant