CN111290867A - 流量调度方法、业务服务器、存储介质及流量调度系统 - Google Patents
流量调度方法、业务服务器、存储介质及流量调度系统 Download PDFInfo
- Publication number
- CN111290867A CN111290867A CN202010122806.3A CN202010122806A CN111290867A CN 111290867 A CN111290867 A CN 111290867A CN 202010122806 A CN202010122806 A CN 202010122806A CN 111290867 A CN111290867 A CN 111290867A
- Authority
- CN
- China
- Prior art keywords
- service
- service instance
- instance
- version
- request
- 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.)
- Withdrawn
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
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种流量调度方法、业务服务器、存储介质及流量调度系统,属于灰度发布领域。该方法包括:策略配置设备将获取到的流量调度策略发送至业务服务器的第一服务实例;第一服务实例若检测到接收到的服务调用请求不符合该流量调度策略,则将服务调用请求发送至第一版本的第二服务实例;若检测到服务调用请求符合该流量调度策略,则在服务调用请求中添加染色标记,并将添加有染色标记的服务调用请求发送至第二版本的第二服务实例。由于开发人员可以直接在策略配置设备中部署流量调度策略,而无需在业务服务器中部署流量调度策略,因此能减小对业务服务器中业务代码的影响,提高流量调度策略部署的效率和灵活性。
Description
技术领域
本申请涉及灰度发布领域,特别涉及一种流量调度方法、业务服务器、存储介质及流量调度系统。
背景技术
在进行灰度发布时,业务服务器中的第一服务实例可以对服务请求客户端发送的服务调用请求(也可以称为业务请求)进行分流,使得指定的服务调用请求访问新版本的业务服务实例,其他服务调用请求则继续访问旧版本的业务服务实例。
相关技术中,开发人员需要在业务服务器中的入口服务中配置流量调度策略,以便入口服务可以基于该流量调度策略对服务调用请求进行分流。但是,由于需要在业务服务器中的入口服务中配置流量调度策略,对业务代码的入侵较大,配置的效率较低。
发明内容
本申请提供了一种流量调度方法、业务服务器、存储介质及流量调度系统,可以解决相关技术中配置流量调度策略时对业务代码的入侵较大,配置效率较低的问题。所述技术方案如下:
一方面,提供了一种流量调度方法,应用于流量调度系统,所述流量调度系统包括:策略配置设备和业务服务器,所述业务服务器中部署有第一服务实例,第一版本的第二服务实例以及第二版本的第二服务实例;所述方法包括:
所述策略配置设备获取流量调度策略;
所述策略配置设备将所述流量调度策略发送至所述业务服务器的第一服务实例;
所述第一服务实例接收来自服务请求客户端的服务调用请求;
所述第一服务实例若检测到所述服务调用请求不符合所述流量调度策略,则将所述服务调用请求发送至所述第一版本的第二服务实例;
所述第一服务实例若检测到所述服务调用请求符合所述流量调度策略,则在所述服务调用请求中添加染色标记,并将添加有所述染色标记的服务调用请求发送至所述第二版本的第二服务实例。
另一方面,提供了一种流量调度方法,应用于业务服务器,所述业务服务器中部署有第一服务实例,第一版本的第二服务实例以及第二版本的第二服务实例;所述方法包括:
所述第一服务实例接收策略配置设备发送的流量调度策略;
所述第一服务实例接收来自服务请求客户端的服务调用请求;
所述第一服务实例若检测到所述服务调用请求不符合所述流量调度策略,则将所述服务调用请求发送至所述第一版本的第二服务实例;
所述第一服务实例若检测到所述服务调用请求符合所述流量调度策略,则在所述服务调用请求中添加染色标记,并将添加有所述染色标记的服务调用请求发送至所述第二版本的第二服务实例。
又一方面,提供了一种业务服务器,所述业务服务器中部署有第一服务实例,第一版本的第二服务实例以及第二版本的第二服务实例;所述业务服务器包括:
第一接收模块,用于接收所述策略配置设备发送的流量调度策略;
第二接收模块,用于接收来自服务请求客户端的服务调用请求;
第一调度模块,用于若检测到所述服务调用请求不符合所述流量调度策略,则将所述服务调用请求发送至所述第一版本的第二服务实例;
第二调度模块,用于若检测到所述服务调用请求符合所述流量调度策略,则在所述服务调用请求中添加染色标记,并将添加有所述染色标记的服务调用请求发送至所述第二版本的第二服务实例。
再一方面,提供了一种业务服务器,所述业务服务器包括:存储器,处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现如上述方面提供的流量调度方法。
再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行如上述方面提供的流量调度方法。
再一方面,提供了一种流量调度系统,所述系统包括:策略配置设备,以及如上述方面提供的业务服务器。
本申请提供的技术方案带来的有益效果至少可以包括:
本申请提供了一种流量调度方法、业务服务器、存储介质及流量调度系统,该方案可以通过策略配置设备将获取到的流量调度策略下发至业务服务器的第一服务实例,以便该第一服务实例可以基于该流量调度策略对服务调用请求进行染色并进行流量调度。由于开发人员可以直接在策略配置设备中部署流量调度策略,而无需在业务服务器中的服务实例中部署流量调度策略,因此可以减小对业务服务器中业务代码的影响,提高了流量调度策略部署的效率和灵活性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种流量调度系统的结构示意图;
图2是本申请实施例提供的一种业务服务器的结构示意图;
图3是本申请实施例提供的一种流量调度方法的流程图;
图4是本申请实施例提供的另一种业务服务器的结构示意图;
图5是本申请实施例提供的又一种业务服务器的结构示意图;
图6是本申请实施例提供的另一种流量调度方法的流程图;
图7是本申请实施例提供的又一种流量调度方法的流程图;
图8是本申请实施例提供的再一种业务服务器的结构示意图;
图9是本申请实施例提供的再一种业务服务器的结构示意图;
图10是本申请实施例提供的再一种业务服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种流量调度系统的结构示意图,如图1所示,该系统可以包括:策略配置设备01、业务服务器02以及至少一个服务请求客户端03,例如图1中示意性示出了两个服务请求客户端03。该业务服务器02可以通过有线或无线网络分别与该策略配置设备01以及每个服务请求客户端03建立通信连接。其中,该策略配置设备01和该业务服务器02中的每个设备均可以为一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。该每个服务请求客户端03可以安装于一个终端中,该终端可以为手机、电脑、可穿戴设备或车载设备等智能终端。
图2是本申请实施例提供的一种业务服务器的结构示意图,如图2所示,该业务服务器02中可以部署有第一服务实例021,第一版本的第二服务实例022以及第二版本的第二服务实例023。其中,该第一服务实例021可以为用于接收并调度服务调用请求的入口服务实例,或者也可以为用于提供业务服务的业务服务实例。该第一版本的第二服务实例022以及第二版本的第二服务实例023可以均为业务服务实例,且均为该第一服务实例021的下游服务实例。并且,该第二版本的第二服务实例023可以是开发人员对该第一版本的第二服务实例022进行更新升级后部署至业务服务器02的。即该第一版本为旧版本,第二版本为新版本。
该策略配置设备01能够提供交互界面,开发人员可以在该策略配置设备01中配置流量调度策略。策略配置设备01获取到开发人员配置的流量调度策略后,可以将该流量调度策略发送至业务服务器02中的第一服务实例021。该第一服务实例021可以基于该流量调度策略,将各个服务请求客户端03发送的服务调用请求调度至该第一版本的第二服务实例022或者该第二版本的第二服务实例023。
本申请实施例提供了一种流量调度方法,该方法可以应用于如图1所示的系统中,并且该方法可以应用于金丝雀发布、灰度链路发布和蓝绿发布等不同形式的发布场景中。参考图3,该方法可以包括:
步骤101、策略配置设备获取流量调度策略。
在本申请实施例中,开发人员可以通过策略配置设备提供的交互界面,在该策略配置设备中部署流量调度策略,策略配置设备进而可以获取开发人员部署的流量调度策略。
示例的,开发人员可以通过编写Groovy脚本以实现流量调度策略的配置。其中,Groovy是一种基于Java虚拟机(Javavirtual machine,JVM)的敏捷开发语言。开发人员基于该Groovy脚本可以实现流量调度策略的灵活部署。
步骤102、策略配置设备将该流量调度策略发送至业务服务器的第一服务实例。
在本申请实施例中,策略配置设备获取到开发人员配置的流量调度策略后,可以将该流量调度策略发送至业务服务器的第一服务实例。该第一服务实例可以为业务服务器中用于接收并调度服务调用请求的入口服务实例,或者也可以为用于提供业务服务的业务服务实例。
作为一种可选的实现方式,策略配置设备可以响应于开发人员触发的策略下发指令,将该流量调度策略发送至业务服务器的第一服务实例。其中,该第一服务实例可以是该策略下发指令所指定的服务实例。
作为另一种可选的实现方式,策略配置设备可以响应于业务服务器的第一服务实例发送的策略获取请求,将该流量调度策略发送至该第一服务实例。也即是,该业务服务器的第一服务实例可以主动获取流量调度策略。例如,该第一服务实例可以为入口服务实例,该入口服务实例可以通过轮询机制,周期性从策略配置设备获取最新的流量调度策略。
步骤103、第一服务实例接收来自服务请求客户端的服务调用请求。
若该第一服务实例为入口服务实例,则该入口服务实例可以直接接收来自服务请求客户端的服务调用请求。若该第一服务实例为业务实例,则该业务实例可以接收入口服务实例转发的来自该服务请求客户端的服务调用请求。其中,该服务调用请求可以为远程过程调用(remote procedure call,RPC)请求。
步骤104、第一服务实例检测该服务调用请求是否符合该流量调度策略。
第一服务实例接收到该服务调用请求后,可以检测该服务调用请求是否符合该流量调度策略。若第一服务实例检测到该服务调用请求不符合该流量调度策略,则可以执行步骤105;若第一服务实例检测到该服务调用请求符合该流量调度策略,则可以执行步骤106。
作为一种可选的实现方式,该流量调度策略可以包括:目标业务服务实例的名称;该服务调用请求中可以携带有待调用的业务服务实例的名称。相应的,上述步骤104所示的检测过程可以包括:
该第一服务实例检测该服务调用请求中携带的业务服务实例的名称与该目标业务服务实例的名称是否相同;若该业务服务实例的名称与该目标业务服务实例的名称相同,则确定该服务调用请求符合该流量调度策略;若该业务服务实例的名称与该目标业务服务实例的名称不同,则确定该服务调用请求不符合该流量调度策略。其中,业务服务实例的名称可以包括该业务服务实例的方法名和参数名等。
在该实现方式中,开发人员可以通过在流量调度策略中指定目标业务服务实例的名称,使得调用该目标业务服务实例的服务调用请求可以被调度至第二版本(即新版本)的第二服务实例中。
作为另一种可选的实现方式,该流量调度策略可以包括:目标比例;相应的,上述步骤104所示的检测过程可以包括:
该第一服务实例检测已添加染色标记的服务调用请求的个数与已接收到的服务调用请求的个数的比值是否符合该目标比例;若该比例符合该目标比例,则确定该服务调用请求符合该流量调度策略;若该比例不符合该目标比例,则确定该服务调用请求符合该流量调度策略。
其中,该目标比例可以是开发人员根据应用场景需求设定的,例如可以为千分之一或者千分之五等。已添加染色标记的服务调用请求的个数与已接收到的服务调用请求的个数的比值符合该目标比例可以是指:已添加染色标记的服务调用请求的个数与已接收到的服务调用请求的个数的比值小于该目标比例。已添加染色标记的服务调用请求的个数与已接收到的服务调用请求的个数的比值不符合该目标比例可以是指:已添加染色标记的服务调用请求的个数与已接收到的服务调用请求的个数的比值大于或等于该目标比例。
在该实现方式中,开发人员可以通过在流量调度策略中指定目标比例,使得第一服务实例可以将已接收到的服务调用请求中,该目标比例的服务调用请求调度至第二版本的第二服务实例中。
作为又一种可选的实现方式,该业务服务器中可以部署有多个不同版本的第一服务实例。策略配置设备可以响应于开发人员触发的策略下发指令,仅将该流量调度策略发送至目标版本的第一服务实例。相应的,上述步骤104所示的检测过程可以包括:
该目标版本的第一服务实例若检测到其获取到了该流量调度策略,则可以确定其接收到的服务调用请求均符合该流量调度策略。
在该实现方式中,开发人员可以通过在流量调度策略中指定目标版本的第一服务实例,使得该目标版本的第一服务实例可以对其接收到的所有服务调用请求均进行染色并调度至第二版本的第二服务实例中。
示例的,参考图4,假设业务服务器02中部署有两个版本的第一服务实例,分别为第一服务实例R1和第一服务实例R2。并且,业务服务器02中部署的第一版本的第二服务实例为业务服务实例A1,第二版本的第二服务实例为业务服务实例A2。若策略配置设备01响应于开发人员触发的策略下发指令,仅将该流量调度策略发送至第一服务实例R2,则该第一服务实例R2可以对其接收到的服务调用请求均进行染色,并调度至新版本的业务服务实例A2,而第一服务实例R1则可以将其接收到的服务调用请求均调度至旧版本的业务服务实例A1。
步骤105、第一服务实例将该服务调用请求发送至该第一版本的第二服务实例。
若第一服务实例检测到该服务调用请求不符合该流量调度策略,则可以将该服务调用请求发送至该第一版本(即旧版本)的第二服务实例。
步骤106、第一服务实例在该服务调用请求中添加染色标记。
若第一服务实例检测到该服务调用请求符合该流量调度策略,则可以在该服务调用请求中添加染色标记(flag)。例如,该第一服务实例可以在该服务调用请求的信息头中添加该染色标记。该染色标记可以是业务服务器中预先存储的或者该流量调度策略中携带的用于对流量进行标记的字符串。
步骤107、第一服务实例将添加有该染色标记的服务调用请求发送至该第二版本的第二服务实例。
第一服务实例完成对该服务调用请求的染色后,即可将该染色后的服务调用请求发送至该第二版本(即新版)的第二服务实例。
示例的,参考图5,假设该第一服务实例为入口服务实例,该第一版本的第二服务实例为业务服务实例A1,第二版本的第二服务实例为业务服务实例A2。若该入口服务实例接收到来自服务请求客户端的RPC请求1后,检测到该RPC请求1不符合流量调度策略,则可以将该RPC请求1调度至业务服务实例A1。若该入口服务实例检测到其接收到的RPC请求2符合该流量调度策略,则可以在该RPC请求2中添加染色标记,并将染色后的RPC请求2调度至业务服务实例A2。
可选的,在本申请实施例中,该业务服务器中还可以部署有第一版本的第三服务实例;或者,该业务服务器中还可以部署有:第一版本的第三服务实例以及第二版本的第三服务实例。其中,该第一版本和第二版本的第三服务实例均为第二服务实例的下游服务实例,且该第二版本的第三服务实例可以是开发人员对第一版本的第三服务实例进行更新升级后部署至业务服务器的。
参考图6,该第一版本的第二服务实例和第二版本的第二服务实例中的每个第二服务实例还可以执行如下操作:
步骤201、检测接收到的服务调用请求中是否携带染色标记。
在本申请实施例中,每个第二服务实例接收到第一服务实例发送的服务调用请求后,均可以检测该服务调用请求中是否携带有染色标记。若该服务调用请求中未携带该染色标记,则该第二服务实例可以执行步骤202;若该服务调用请求中携带该染色标记,则该第二服务实例可以执行步骤205。
示例的,参考图5,业务服务实例A1接收到该染色后的RPC请求1后,可以确定该RPC请求1中未携带染色标记,因此可以执行步骤202。业务服务实例A2接收到该染色后的RPC请求2后,可以确定该RPC请求2中携带染色标记,因此可以执行步骤205。
步骤202、检测该第二服务实例是否配置有该染色标记。
在本申请实施例中,开发人员在将每个第二版本的服务实例部署至业务服务器时,还可以在该第二版本的服务实例中配置染色标记。第二服务实例若检测到接收到的服务调用请求中未携带染色标记,还可以进一步检测自身是否配置有该染色标记。若未配置该染色标记,则该第二服务实例可以执行步骤203;若配置有该染色标记,则该第二服务实例可以执行步骤204。
示例的,由于业务服务实例A1为旧版本的服务实例,因此其未配置该染色标记,故可以执行步骤203。
步骤203、将该服务调用请求发送至该第一版本的第三服务实例。
未配置染色标记的第二服务实例接收到未添加染色标记的服务调用请求后,可以直接将该服务调用请求发送至第一版本(即旧版本)的第三服务实例。
示例的,如图5所示,假设业务服务器中部署的第一版本的第三服务实例为业务服务实例B1,第二版本的第三服务实例为业务服务实例B2。则该业务服务实例A1可以将RPC请求1发送至业务服务实例B1。
步骤204、在该服务调用请求中添加该染色标记,并执行步骤205。
在上述步骤202中,若该第二服务实例配置有该染色标记,则该第二服务实例可以在该服务调用请求中添加该染色标记。也即是,若新版本的第二服务实例接收到了未染色的服务调用请求,则也可以对该服务调用请求进行染色。
步骤205、检测业务服务器中是否部署第二版本的第三服务实例。
在本申请实施例中,第二服务实例接收到携带有染色标记的服务调用请求,或者对未携带该染色标记的服务调用请求进行染色后,还可以进一步检测业务服务器中是否部署第二版本的第三服务实例,即检测其下游的业务服务实例中是否包括新版本的业务服务实例。若该业务服务器中未部署该第二版本的第三服务实例,则第二服务实例可以执行步骤203,也即,将该添加有染色标记的服务调用请求发送至该第一版本的第三服务实例。若业务服务器中部署有该第二版本的第三服务实例,则第二服务实例可以执行步骤206。
步骤206、将该服务调用请求发送至该第二版本的第三服务实例。
若业务服务器中部署有该第二版本的第三服务实例,则该第二服务实例可以将该添加有染色标记的服务调用请求发送至该第二版本的第三服务实例。
示例的,参考图5,业务服务实例A2可以将染色后的服务调用请求发送至业务服务实例B2。
需要说明的是,在本申请实施例中,该业务服务器中部署的每个服务实例(包括入口服务实例和业务服务实例)均可以执行上述步骤201至步骤206所示的方法,即每个服务实例均可以根据接收到的服务调用请求中是否携带的染色标记,以及自身是否配置有染色标记,将该服务调用请求调度至不同版本的下游服务实例。
还需要说明的是,本申请实施例提供的流量调度方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,上述步骤202和步骤204可以根据情况删除;或者,上述步骤201至步骤206均可以根据情况删除。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本申请实施例提供了一种流量调度方法,该方法可以通过策略配置设备将获取到的流量调度策略下发至业务服务器的第一服务实例,以便该第一服务实例可以基于该流量调度策略对服务调用请求进行染色并进行流量调度。由于开发人员可以直接在策略配置设备中配置流量调度策略,而无需在业务服务器中的服务实例中部署流量调度策略,因此可以减小对业务服务器中业务代码的影响,降低业务接入成本,提高了流量调度策略部署的效率和灵活性。
并且,由于第一服务实例可以将染色标记添加至服务调度请求中,因此可以使得该染色标记在服务调度请求的整个生命周期中有效,也即是,可以便于下游服务实例继续基于该染色标记对服务调度请求进行调度,有效提高了流量调度的灵活性。
本申请实施例还提供了另一种流量调度方法,可以应用于业务服务器,例如可以应用于如图1或图2所示的业务服务器02,该业务服务器02中部署有第一服务实例,第一版本的第二服务实例以及第二版本的第二服务实例。如图7所示,该方法可以包括:
步骤301、第一服务实例接收策略配置设备发送的流量调度策略。
步骤302、第一服务实例接收来自服务请求客户端的服务调用请求。
步骤303、第一服务实例若检测到该服务调用请求不符合该流量调度策略,则将该服务调用请求发送至该第一版本的第二服务实例。
步骤304、第一服务实例若检测到该服务调用请求符合该流量调度策略,则在该服务调用请求中添加染色标记,并将添加有该染色标记的服务调用请求发送至该第二版本的第二服务实例。
上述步骤301至步骤304的实现过程可以参考步骤101至步骤107的相关描述,此处不再赘述。
综上所述,本申请实施例提供了一种流量调度方法,业务服务器的第一服务实例可以获取策略配置设备下发的流量调度策略,并可以基于该流量调度策略对服务调用请求进行染色并进行流量调度。由于开发人员可以直接在策略配置设备中配置流量调度策略,而无需在业务服务器中的服务实例中部署流量调度策略,因此可以减小对业务服务器中业务代码的影响,降低业务接入成本,提高了流量调度策略部署的灵活性。并且,由于第一服务实例可以将染色标记添加至服务调度请求中,因此可以使得该染色标记在服务调度请求的整个生命周期中有效,也即是,可以便于下游服务实例继续基于该染色标记对服务调度请求进行调度,有效提高了流量调度的灵活性。
本申请实施例还提供了一种业务服务器,该业务服务器可以应用于如图1所示的系统中。如图2所示,该业务服务器02中部署有第一服务实例021,第一版本的第二服务实例022以及第二版本的第二服务实例023。参考图8,该业务服务器还可以包括:
第一接收模块401,用于接收策略配置设备发送的流量调度策略。
第二接收模块402,用于接收来自服务请求客户端的服务调用请求。
第一调度模块403,用于若检测到该服务调用请求不符合该流量调度策略,则将该服务调用请求发送至该第一版本的第二服务实例。
第二调度模块404,用于若检测到该服务调用请求符合该流量调度策略,则在该服务调用请求中添加染色标记,并将添加有该染色标记的服务调用请求发送至该第二版本的第二服务实例。
上述第一接收模块401、第二接收模块402、第一调度模块403以及第二调度模块404均部署于业务服务器的第一服务实例中。
可选的,如图9所示,该业务服务器还可以包括:部署于该第一服务实例中的第一检测模块405。
该服务调用请求中携带有业务服务实例的名称;该流量调度策略包括:目标业务服务实例的名称;该第一检测模块405可以用于:
检测该业务服务实例的名称与该目标业务服务实例的名称是否相同;若该业务服务实例的名称与该目标业务服务实例的名称相同,则确定该服务调用请求符合该流量调度策略;若该业务服务实例的名称与该目标业务服务实例的名称不同,则确定该服务调用请求不符合该流量调度策略。
或者,该流量调度策略包括:目标比例;该第一检测模块405可以用于:
该第一服务实例检测已添加染色标记的服务调用请求的个数与已接收到的服务调用请求的个数的比值是否符合该目标比例;若该比例符合该目标比例,则确定该服务调用请求符合该流量调度策略;若该比例不符合该目标比例,则确定该服务调用请求符合该流量调度策略。
可选的,该业务服务器中还可以部署有第一版本的第三服务实例;或者,该业务服务器中还部署有:第一版本的第三服务实例以及第二版本的第三服务实例。如图9所示,该业务服务器02还可以包括部署于第二服务实例中的下述模块:
第二检测模块406,用于检测接收到的服务调用请求中是否携带染色标记。
第一发送模块407,用于若该服务调用请求中未携带该染色标记,则将该服务调用请求发送至该第一版本的第三服务实例。
第三检测模块408,用于若该服务调用请求中携带该染色标记,则检测该业务服务器中是否部署该第二版本的第三服务实例。
该第一发送模块407,还用于若未部署该第二版本的第三服务实例,则将该服务调用请求发送至该第一版本的第三服务实例。
第二发送模块409,用于若部署有该第二版本的第三服务实例,则将该服务调用请求发送至该第二版本的第三服务实例。
可选的,如图9所示,该第二服务实例中还可以部署有:
第四检测模块410,用于若该服务调用请求中未携带该染色标记,则检测该第二服务实例是否配置有该染色标记。
染色模块411,用于若该第二服务实例配置有该染色标记,则在该服务调用请求中添加该染色标记,并指示该第三检测模块408执行检测该业务服务器中是否部署该第二版本的第三服务实例的步骤。
该第四检测模块410,还用于若该第二服务实例未配置该染色标记,则指示该第一发送模块407执行将该服务调用请求发送至该第一版本的第三服务实例的步骤。
综上所述,本申请实施例提供了一种业务服务器,该业务服务器中的第一服务实例可以获取策略配置设备下发的流量调度策略,并可以基于该流量调度策略对服务调用请求进行染色并进行流量调度。由于开发人员可以直接在策略配置设备中配置流量调度策略,而无需在业务服务器中的服务实例中部署流量调度策略,因此可以减小对业务服务器中业务代码的影响,降低业务接入成本,提高了流量调度策略部署的灵活性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的业务服务器和各模块的具体工作过程,均可以参考前述方法实施例中的对应过程,在此不再赘述。
图10是本申请实施例提供的再一种业务服务器的结构示意图,如图10所示,如图10所示,该业务服务器可以包括:存储器501,处理器502及存储在该存储器501上的计算机程序5011。该处理器502执行该计算机程序5011时,可以实现上述方法实施例所提供的流量调度方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行如上述方法实施例所提供的流量调度方法。
本申请实施例还提供了一种流量调度系统,参考图1,该系统可以包括:策略配置设备01,以及业务服务器02。该业务服务器02可以为如图2、图4、图5以及图8至图10任一所示的服务器。
在本申请中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,“多个”指两个或两个以上,除非另有明确的限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种流量调度方法,其特征在于,应用于流量调度系统,所述流量调度系统包括:策略配置设备和业务服务器,所述业务服务器中部署有第一服务实例,第一版本的第二服务实例以及第二版本的第二服务实例;所述方法包括:
所述策略配置设备获取流量调度策略;
所述策略配置设备将所述流量调度策略发送至所述业务服务器的第一服务实例;
所述第一服务实例接收来自服务请求客户端的服务调用请求;
所述第一服务实例若检测到所述服务调用请求不符合所述流量调度策略,则将所述服务调用请求发送至所述第一版本的第二服务实例;
所述第一服务实例若检测到所述服务调用请求符合所述流量调度策略,则在所述服务调用请求中添加染色标记,并将添加有所述染色标记的服务调用请求发送至所述第二版本的第二服务实例。
2.根据权利要求1所述的方法,其特征在于,所述服务调用请求中携带有业务服务实例的名称;所述流量调度策略包括:目标业务服务实例的名称;在所述第一服务实例在所述服务调用请求中添加染色标记之前,所述方法还包括:
所述第一服务实例检测所述业务服务实例的名称与所述目标业务服务实例的名称是否相同;
若所述业务服务实例的名称与所述目标业务服务实例的名称相同,则确定所述服务调用请求符合所述流量调度策略;
若所述业务服务实例的名称与所述目标业务服务实例的名称不同,则确定所述服务调用请求不符合所述流量调度策略。
3.根据权利要求1所述的方法,其特征在于,所述流量调度策略包括:目标比例;在所述第一服务实例在所述服务调用请求中添加染色标记之前,所述方法还包括:
所述第一服务实例检测已添加染色标记的服务调用请求的个数与已接收到的服务调用请求的个数的比值是否符合所述目标比例;
若所述比例符合所述目标比例,则确定来自所述服务请求客户端的服务调用请求符合所述流量调度策略;
若所述比例不符合所述目标比例,则确定来自所述服务请求客户端的服务调用请求符合所述流量调度策略。
4.根据权利要求1至3任一所述的方法,其特征在于,所述业务服务器中还部署有第一版本的第三服务实例;或者,所述业务服务器中还部署有:第一版本的第三服务实例以及第二版本的第三服务实例;所述方法还包括:
所述第二服务实例检测接收到的所述服务调用请求中是否携带所述染色标记;
若所述服务调用请求中未携带所述染色标记,则所述第二服务实例将所述服务调用请求发送至所述第一版本的第三服务实例;
若所述服务调用请求中携带所述染色标记,则所述第二服务实例检测所述业务服务器中是否部署有所述第二版本的第三服务实例;
若未部署所述第二版本的第三服务实例,则所述第二服务实例将所述服务调用请求发送至所述第一版本的第三服务实例;
若部署有所述第二版本的第三服务实例,则所述第二服务实例将所述服务调用请求发送至所述第二版本的第三服务实例。
5.根据权利要求4所述的方法,其特征在于,在所述第二服务实例检测接收到的所述服务调用请求中是否携带所述染色标记之后,所述方法还包括:
若所述服务调用请求中未携带所述染色标记,则所述第二服务实例检测所述第二服务实例是否配置有所述染色标记;
若所述第二服务实例配置有所述染色标记,则所述第二服务实例在所述服务调用请求中添加所述染色标记,并执行检测所述业务服务器中是否部署有所述第二版本的第三服务实例的步骤;
若所述第二服务实例未配置所述染色标记,则执行将所述服务调用请求发送至所述第一版本的第三服务实例的步骤。
6.一种流量调度方法,其特征在于,应用于业务服务器,所述业务服务器中部署有第一服务实例,第一版本的第二服务实例以及第二版本的第二服务实例;所述方法包括:
所述第一服务实例接收策略配置设备发送的流量调度策略;
所述第一服务实例接收来自服务请求客户端的服务调用请求;
所述第一服务实例若检测到所述服务调用请求不符合所述流量调度策略,则将所述服务调用请求发送至所述第一版本的第二服务实例;
所述第一服务实例若检测到所述服务调用请求符合所述流量调度策略,则在所述服务调用请求中添加染色标记,并将添加有所述染色标记的服务调用请求发送至所述第二版本的第二服务实例。
7.一种业务服务器,其特征在于,所述业务服务器中部署有第一服务实例,第一版本的第二服务实例以及第二版本的第二服务实例;所述业务服务器包括:
第一接收模块,用于接收所述策略配置设备发送的流量调度策略;
第二接收模块,用于接收来自服务请求客户端的服务调用请求;
第一调度模块,用于若检测到所述服务调用请求不符合所述流量调度策略,则将所述服务调用请求发送至所述第一版本的第二服务实例;
第二调度模块,用于若检测到所述服务调用请求符合所述流量调度策略,则在所述服务调用请求中添加染色标记,并将添加有所述染色标记的服务调用请求发送至所述第二版本的第二服务实例。
8.一种业务服务器,其特征在于,所述业务服务器包括:存储器,处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现如权利要求6所述的流量调度方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行如权利要求6所述的流量调度方法。
10.一种流量调度系统,其特征在于,所述系统包括:策略配置设备,以及如权利要求7或8所述的业务服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122806.3A CN111290867A (zh) | 2020-02-27 | 2020-02-27 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010122806.3A CN111290867A (zh) | 2020-02-27 | 2020-02-27 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111290867A true CN111290867A (zh) | 2020-06-16 |
Family
ID=71028213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010122806.3A Withdrawn CN111290867A (zh) | 2020-02-27 | 2020-02-27 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290867A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786885A (zh) * | 2020-06-23 | 2020-10-16 | 中国工商银行股份有限公司 | 分布式全链路灰度路由方法及装置 |
CN112199104A (zh) * | 2020-10-10 | 2021-01-08 | 卫宁健康科技集团股份有限公司 | 一种软件升级方法、装置、电子设备和存储介质 |
CN113422794A (zh) * | 2021-02-09 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 流量录制、回放处理方法、装置及电子设备 |
CN113452622A (zh) * | 2021-06-29 | 2021-09-28 | 上海通联金融服务有限公司 | 一种基于客户端的灰度分流方法 |
CN113612686A (zh) * | 2021-06-29 | 2021-11-05 | 中国人民财产保险股份有限公司 | 流量调度方法、装置及电子设备 |
CN114579205A (zh) * | 2022-03-09 | 2022-06-03 | 平安普惠企业管理有限公司 | 资源请求处理方法、装置、电子设备及可读存储介质 |
CN114726919A (zh) * | 2022-03-22 | 2022-07-08 | 新华三大数据技术有限公司 | 灰度流量控制的方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474522A (zh) * | 2017-09-07 | 2019-03-15 | 华为技术有限公司 | 业务路由的方法、装置及存储介质 |
CN109739527A (zh) * | 2018-11-20 | 2019-05-10 | 北京奇艺世纪科技有限公司 | 一种客户端灰度发布的方法、装置、服务器和存储介质 |
CN109788029A (zh) * | 2018-12-14 | 2019-05-21 | 平安信托有限责任公司 | 微服务的灰度调用方法、装置、终端及可读存储介质 |
CN109995713A (zh) * | 2017-12-30 | 2019-07-09 | 华为技术有限公司 | 一种微服务框架中的服务处理方法及相关设备 |
CN110365502A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 一种服务升级管理的方法、装置及存储介质 |
CN110781013A (zh) * | 2019-10-25 | 2020-02-11 | 湖南御家科技有限公司 | 一种灰度发布方法、装置、设备及介质 |
-
2020
- 2020-02-27 CN CN202010122806.3A patent/CN111290867A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474522A (zh) * | 2017-09-07 | 2019-03-15 | 华为技术有限公司 | 业务路由的方法、装置及存储介质 |
CN109995713A (zh) * | 2017-12-30 | 2019-07-09 | 华为技术有限公司 | 一种微服务框架中的服务处理方法及相关设备 |
CN110365502A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 一种服务升级管理的方法、装置及存储介质 |
CN109739527A (zh) * | 2018-11-20 | 2019-05-10 | 北京奇艺世纪科技有限公司 | 一种客户端灰度发布的方法、装置、服务器和存储介质 |
CN109788029A (zh) * | 2018-12-14 | 2019-05-21 | 平安信托有限责任公司 | 微服务的灰度调用方法、装置、终端及可读存储介质 |
CN110781013A (zh) * | 2019-10-25 | 2020-02-11 | 湖南御家科技有限公司 | 一种灰度发布方法、装置、设备及介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786885A (zh) * | 2020-06-23 | 2020-10-16 | 中国工商银行股份有限公司 | 分布式全链路灰度路由方法及装置 |
CN112199104A (zh) * | 2020-10-10 | 2021-01-08 | 卫宁健康科技集团股份有限公司 | 一种软件升级方法、装置、电子设备和存储介质 |
CN112199104B (zh) * | 2020-10-10 | 2024-03-01 | 卫宁健康科技集团股份有限公司 | 一种软件升级方法、装置、电子设备和存储介质 |
CN113422794A (zh) * | 2021-02-09 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 流量录制、回放处理方法、装置及电子设备 |
CN113452622A (zh) * | 2021-06-29 | 2021-09-28 | 上海通联金融服务有限公司 | 一种基于客户端的灰度分流方法 |
CN113612686A (zh) * | 2021-06-29 | 2021-11-05 | 中国人民财产保险股份有限公司 | 流量调度方法、装置及电子设备 |
CN114579205A (zh) * | 2022-03-09 | 2022-06-03 | 平安普惠企业管理有限公司 | 资源请求处理方法、装置、电子设备及可读存储介质 |
CN114726919A (zh) * | 2022-03-22 | 2022-07-08 | 新华三大数据技术有限公司 | 灰度流量控制的方法、装置、计算机设备及存储介质 |
CN114726919B (zh) * | 2022-03-22 | 2024-02-13 | 新华三大数据技术有限公司 | 灰度流量控制的方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290867A (zh) | 流量调度方法、业务服务器、存储介质及流量调度系统 | |
US5551035A (en) | Method and apparatus for inter-object communication in an object-oriented program controlled system | |
US20030084204A1 (en) | System and method for facilitating dynamic loading of "stub"information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space | |
CN105955782A (zh) | 应用程序运行控制的方法及装置 | |
CN106933660A (zh) | 一种安卓平台下应用进程保活的实现方法 | |
WO2021261964A1 (en) | Method and system for edge data network(edn) lifecycle management | |
EP0405829B1 (en) | Object oriented software system architecture | |
CN106502778A (zh) | 一种终端及其进程调度优化方法 | |
CN111858050A (zh) | 服务器集群混合部署方法、集群管理节点及相关系统 | |
CN112035122B (zh) | 一种接口部署方法、系统及存储介质 | |
CN112256351B (zh) | Feign组件的实现方法、微服务调用方法及装置 | |
CN104573506A (zh) | 基于虚拟机对进程行为实时监控的方法及装置 | |
CN104111862A (zh) | 云计算平台中获取虚拟机ip地址方法与系统 | |
WO2022005160A1 (en) | Method and apparatus for edge enabler server lifecycle management | |
CN114938396A (zh) | 服务调用请求的路由方法、创建服务的方法及装置 | |
CN112000313A (zh) | 请求响应方法、装置、设备及存储介质 | |
EP4150863A1 (en) | Method and system for eas lifecycle management with edge data network selection | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN112449357B (zh) | 一种信息交互方法及相关设备 | |
CN114253739A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN112732677B (zh) | 区块链节点部署方法、装置、设备及存储介质 | |
CN106445599A (zh) | 应用程序的升级方法、升级装置和终端 | |
CN113708971A (zh) | 一种Openstack云平台的部署方法及相关装置 | |
CN111708646A (zh) | 前端服务平台实现方法、装置、系统和存储介质 | |
CN110855787A (zh) | 基于Consul实现OpenResty动态负载均衡的方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200616 |
|
WW01 | Invention patent application withdrawn after publication |