CN114625410A - 一种请求消息处理方法、装置及设备 - Google Patents
一种请求消息处理方法、装置及设备 Download PDFInfo
- Publication number
- CN114625410A CN114625410A CN202210236700.5A CN202210236700A CN114625410A CN 114625410 A CN114625410 A CN 114625410A CN 202210236700 A CN202210236700 A CN 202210236700A CN 114625410 A CN114625410 A CN 114625410A
- Authority
- CN
- China
- Prior art keywords
- version
- target service
- request message
- preset
- determining
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 77
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000003860 storage Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 9
- 238000009826 distribution Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 229940004975 interceptor Drugs 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000003187 abdominal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本说明书实施例中公开了一种请求消息处理方法、装置及设备。该方案可以包括:令服务器集群中的单个服务器能够同时提供多个版本的目标服务,以及,能够根据用于调用所述目标服务的请求消息所携带的参数信息,确定响应该请求消息所需使用的所述目标服务的版本,从而可以利用单个服务器集群,去分别使用新版本及旧版本的目标服务对各个请求消息进行处理,以实现软件产品的版本更新过程中的灰度发布。
Description
技术领域
本申请涉及版本控制技术领域,尤其涉及一种请求消息处理方法、装置及设备。
背景技术
随着科技迭代速度的日渐提升,软件产品的版本更新也越来越频繁。目前,在对软件产品的版本进行更新时,通常会分别部署可用于提供新版本的服务的服务器集群,以及可用于提供旧版本的服务的服务器集群,从而通过逐渐增大两个服务器集群处理的请求消息的数量比例,以降低软件产品版本更新过程中产生的风险及影响范围。
基于此,如何利用单个服务器集群实现软件产品的版本更新,以降低版本更新时的实施成本,成为了亟待解决的技术问题。
发明内容
本说明书实施例提供的一种请求消息处理方法、装置及设备,可以利用单个服务器集群实现软件产品的版本更新,以降低版本更新时的实施成本。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种请求消息处理方法,应用于服务器集群,所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同,所述方法包括:
获取用于调用所述目标服务的第一请求消息;
根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本;
基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
本说明书实施例提供的一种请求消息处理装置,应用于服务器集群,所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同,所述装置包括:
第一请求获取模块,用于获取用于调用所述目标服务的第一请求消息;
第一版本确定模块,用于根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本;
第一请求处理模块,用于基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
本说明书实施例提供的一种请求消息处理设备,所述设备为服务器集群中的设备,所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取用于调用所述目标服务的第一请求消息;
根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本;
基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
本说明书中提供的至少一个实施例能够实现以下有益效果:
通过令服务器集群中的单个服务器能够同时提供多个版本的目标服务,以及,能够根据用于调用所述目标服务的请求消息所携带的参数信息,确定响应该请求消息所需使用的所述目标服务的版本,从而可以利用单个服务器集群,去分别使用新版本及旧版本的目标服务对各个请求消息进行处理,以实现软件产品的版本更新过程中的灰度发布,而无需部署多个服务器集群,有利于降低软件产品的版本更新时的实施成本。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种请求消息处理方法的应用场景图;
图2为本说明书实施例提供的一种请求消息处理方法的流程示意图;
图3为本说明书实施例提供的对应于图2中的请求消息处理方法的泳道流程示意图;
图4为本说明书实施例提供的对应于图2的一种请求消息处理装置的结构示意图;
图5为本说明书实施例提供的对应于图2的一种请求消息处理设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
现有技术中,灰度发布可以指向一部分用户继续提供旧版本的服务,并向另一部分用户提供新版本的服务,通过逐步扩大使用新版本的服务的群体范围,以及时发现、调整新版本的服务存在的问题的方案。
目前,为进行灰度发布,通常需要在搭建软件产品的服务端架构时,就部署多个服务器集群,以便于后续利用第一服务器集群为部分用户提供新版本的服务,以及,利用第二服务器集群继续为其他用户提供旧版本的服务,如果用户对新版本的服务没有反馈反对意见,那么可以逐渐增大所述第一服务器集群处理的请求消息的数量比例,以逐步把所有用户逐步迁移到新版本的服务上面来。
显然,现有技术中方案,由于需要分别部署提供新旧版本服务的多个服务器集群,不仅增大了软件产品版本更新的实施成本,且容易造成设备资源的浪费。
为了解决现有技术中的缺陷,本方案给出了以下实施例:
图1为本说明书实施例中的一种请求消息处理方法的应用场景图;如图1所示,服务器集群中可以部署有若干个服务器102。在软件产品版本更新时,可以在服务器102上部署新版本的目标服务,并同时在该服务器102上保留旧版本的目标服务,使得基于单个服务器102就可以提供多个版本的目标服务。
请求方设备101可以与所述服务器集群通讯连接,以令所述服务器集群可以获取到请求方设备101发送的用于调用所述目标服务的请求消息,并根据请求消息所携带的参数信息,确定响应该请求消息所需使用的所述目标服务的第一待调用版本,以及,利用服务器102基于所述第一待调用版本的所述目标服务,对该请求消息进行处理。
图1中的方案,可以利用单个服务器集群,去分别使用新版本或旧版本的目标服务对各个用户的请求消息进行处理,而无需部署多个服务器集群,从而有利于降低软件产品版本更新时的实施成本,且容易避免造成设备资源浪费的问题。
接下来,将针对说明书实施例提供的一种请求消息处理方法结合附图进行具体说明:
图2为本说明书实施例提供的一种请求消息处理方法的流程示意图。从程序角度而言,该流程的执行主体可以为服务器集群内的服务器、路由节点或者配置中心。所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同。
如图2所示,该流程可以包括以下步骤:
步骤202:获取用于调用所述目标服务的第一请求消息。
本说明书实施例中,计算机在运行时,通常需要基于各种服务以支持各种功能。因处,所述目标服务,既可以为一种或多种功能,可以为用于实现功能所需的函数、方法、模型等。在进行软件版本更新时,所述多个版本的目标服务,通常可以包括新版本的目标服务及旧版本的目标服务,其中,新版本的目标服务的腹部时间通常晚于旧版本的目标服务的发布时间。
本说明书实施例中,所述服务器集群内可以同时布置多个可用于同时提供多个版本的目标服务的服务器,这种服务器中可以同时存储有所述多个版本的目标服务分别对应的应用程序,以基于各个应用程序,去利用任一个版本的目标服务对用于调用该目标服务的第一请求消息进行处理。
在实际应用中,生成所述第一请求消息的请求方,即可以是软件程序的客户端的用户,也可以是服务器集群内的其他服务器,对此不作具体限定。
步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本。
本说明书实施例中,所述第一请求消息中通常需要携带运行目标服务所需的参数信息,例如,请求方信息、所需使用的数据类型、种类等。由于第一请求消息中通常不会直接携带其所需调用的目标服务的版本信息,因此,可以根据所述第一请求消息携带的参数信息确定第一待调用版本,即根据所述第一请求消息携带的参数信息,确定具体采用新版本或者旧版本的目标服务对所述第一请求消息进行处理。在实际应用中,第一待调用版本可以根据用户的身份信息进行确定,和/或按照预设比例随机确定,对此不作具体限定。
步骤206:基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
本说明书实施例中,在确定出第一待调用版本后,就可以利用服务器集群中的可以同时提供多个版本的目标服务的服务器,去利用所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理,以响应所述第一请求消息。
图2中的方法,通过在服务器集群中部署可提供新旧两个版本目标服务的单个服务器,所述服务器获取用于调用所述目标服务的所述第一请求消息后,根据所述第一请求消息携带的参数信息,确定出处理所述第一请求消息所需目标服务的版本;进而基于该版本的所述目标服务,对所述第一请求消息进行处理。从而可以利用单个服务器集群,去分别使用新版本及旧版本的目标服务对各个请求消息进行处理,以实现软件产品的版本更新过程中的灰度发布,而无需部署多个服务器集群,有利于降低软件产品的版本更新时的实施成本。
基于图2中的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
实际应用中,所述服务器集群通常能够同时提供多种服务,但却往往不会同时对所述服务器集群提供的所有服务同时进行版本更新,因此,为准确响应调用各个服务的请求消息,有必要区分各个服务是否正在进行版本更新,即区分各个服务是否处于灰度发布状态。
基于此,所述服务器集群中可以预先存储有预设服务标识列表,所述预设服务标识列表中可以包含有处于灰度发布状态的服务的标识信息。即若所述预设服务标识列表中未包含某服务的标识信息,则可以表示该服务未处于灰度发布状态,即当前未针对该服务进行版本更新。
对应的,步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本之前,还可以包括:
判断所述预设服务标识列表中是否包含所述目标服务的标识信息,得到第一判断结。
步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本,具体可以包括:
若所述第一判断结果表示所述预设服务标识列表中包含所述目标服务的标识信息,则根据所述第一请求消息携带的参数信息,从多个版本中,确定第一待调用版本。
而若所述第一判断结果表示所述预设服务标识列表中不包含所述目标服务的标识信息,则可以表示服务器集群中的各个服务器有且仅能提供同一个版本的目标服务,从而可以直接利用这一版本的目标服务,对所述第一请求消息进行处理,而无需确定第一待调用版本。
本说明书实施例中,目标服务的版本管理人员可以预先根据目标服务是否处于灰度发布状态,去人工修改所述预设服务标识列表所包含的服务的标识信息。所述预设服务标识列表具体可以存储于所述服务器集群处的配置中心和/或服务器内;所述目标服务的标识信息具体可以包括所述目标服务的名称信息、唯一标识信息等。
在实际应用中,可以利用服务器集群内的JAVA拦截器(Interceptor)去拦截所述第一请求消息,以及,所述JAVA拦截器可以根据所述预设服务标识列表中是否包含所述目标服务的标识信息,以判断目标服务是否处于灰度发布状态。具体的,若所述预设服务标识列表中包含所述目标服务的标识信息,则可以确定目标服务处于灰度发布状态,即所述服务器集群处可以提供多个版本的目标服务,从而需要从多个版本中确定第一待调用版本,以实现灰度发布。若所述预设服务标识列表中未包含所述目标服务的标识信息,则可以确定目标服务未处于灰度发布状态,由于此时并未针对目标服务进行灰度发布,所以所述服务器集群处有且仅能提供一个版本的目标服务,因此,可以直接使用这一版本的所述目标服务对所述第一请求消息进行处理。
本说明书实施例中,当针对新版本的目标服务确认无误后,或者当确定新版本的目标服务不能满足要求时,需要结束针对目标服务的灰度发布过程,此后,服务器集群仅需提供单个版本的目标服务即可。具体的,可以通过删除所述预设服务标识列表中的所述目标服务的标识信息,来终止目标服务的灰度发布过程。
基于此,步骤206:基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理之后,还可以包括:
获取针对所述预设服务标识列表的第一更新指令;所述第一更新指令是在所述目标服务处于灰度发布终止状态后生成的,用于指示删除所述目标服务的标识信息的指令。
响应于所述第一更新指令,从所述预设服务标识列表中删除所述目标服务的标识信息。
本说明书实施例中,目标服务的版本管理人员在确定需要终止目标服务的灰度发布过程后,可以向所述服务器集群发送针对所述预设服务标识列表的第一更新指令,以从所述预设服务标识列表中删除所述目标服务的标识信息。
后续,若所述服务器集群再次接收到用于调用所述目标服务的请求消息,由于所述预设服务标识列表中不再包含所述目标服务的标识信息,从而可以使得所述服务器集群内的JAVA拦截器可以不再对该请求消息进行拦截,以直接利用所述服务器集群当前所提供的单个版本的目标服务对该请求消息进行响应,而无需执行图2中的方法,从而终止针对目标服务的灰度发布流程,方便快捷。
本说明书实施例中,针对目标服务进行灰度发布时,可以根据灰度分流比例来确定响应各个请求消息所需使用的所述目标服务的版本。
具体的,步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本,可以包括:
查询所述目标服务对应的预设版本调用概率信息;所述预设版本调用概率信息用于反映各个版本的所述目标服务被调用的概率。
根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,确定第一待调用版本。
本说明书实施例中,所述预设版本调用概率信息,可以用于反映使用各个版本的目标服务,去响应用于调用目标服务的请求消息时的可能性,因此,所述预设版本调用概率信息可以看作是针对用于调用目标服务的请求消息的灰度分流比例。例如,若所述服务器集群中的服务器可以用于提供新旧两个版本的目标服务时,所述预设版本调用概率信息可以为新版本的目标服务的使用概率为30%,而旧版本的目标服务的使用概率为70%,则灰度分类比例可以为3:7。
在实际应用中,所述预设版本调用概率信息可以在服务器集群的参数配置中心处进行设置,该参数配置中心处还可以存储服务器集群中的其他通用参数,例如,部分服务器的性能参数、负载参数等,为便于操作,该参数配置中心还可以配置有用户操作面板,以简化工作人员设置所述预设版本调用概率信息的操作便捷性。
本说明书实施例中,可以根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,随机确定第一待调用版本。具体的:所述根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,确定第一待调用版本,可以包括:
针对所述第一请求消息携带的预设输入参数进行哈希处理,得到目标哈希值。
利用所述目标哈希值对预设值进行取模运算,得到目标余数。
确定所述目标余数所属的预设数值区间。
确定所述预设数值区间对应的所述目标服务的版本,得到第一待调用版本;所述预设数值区间对应的所述目标服务的版本是根据所述预设版本调用概率信息设置的。
本说明书实施例中,所述预设输入参数可以为所述第一请求消息中携带的指定种类的输入参数,通常情况下,不同请求方生成的第一请求消息所携带的所述预设输入参数是不同的,从而可以基于所述预设输入参数进行随机灰度分流。在实际应用中,所述预设输入参数可以为所述第一请求消息携带的用户标识信息、业务流水号等,对此不做具体限定。
所述哈希处理,可以指将任意长度的所述预设输入参数通过散列算法变换成固定长度的输出,该输出就是所述目标哈希值。所述预设值可以为所述取模运算的模数,所述预设值优先可以设置为10、100、1000等。所述预设数值区间的长度与所述预设数值区间对应的目标服务的版本被调用的概率成正比。
例如,假定,新版本与旧版本的目标服务被调用的概率分别为20%及80%,若所述预设值为100,则新版本的目标服务对应的所述预设数值区间可以选为[0,19],而新旧版本的目标服务对应的所述预设数值区间可以选为[20,99];此时,若所述第一请求消息对应的目标余数为15时,则落入了[0,19]这一预设数值区间,从而可以将新版本的目标服务作为第一待调用版本。而若所述第一请求消息对应的目标余数为55时,则可以将旧版本的目标服务作为第一待调用版本。
本说明书实施例中,随着灰度发布的进行,往往需要调整各个版本的目标服务被调用的概率,例如,需要增大新版本的目标服务被调用的概率,并减少旧版本的目标服务被调用的概率等。基于此,需要调整所述目标服务对应的预设版本调用概率信息。
具体的,步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本之后,还可以包括:
获取针对所述目标服务对应的预设版本调用概率信息的第二更新指令。
响应于所述第二更新指令,生成所述目标服务对应的更新后的预设版本调用概率信息。
获取用于调用所述目标服务的第二请求消息。
根据所述第二请求消息携带的参数信息及所述更新后的预设版本调用概率信息,确定第二待调用版本,所述第二待调用版本为针对所述第二请求消息进行处理所需使用的所述目标服务的版本。
基于所述第二待调用版本的所述目标服务,对所述第二请求消息进行处理。
本说明书实施例中,当需要调整灰度分流比例时,目标服务的版本管理人员可以通过发送第二更新指令,去人工修改所述目标服务对应的预设版本调用概率信息。所述第二更新指令通常可以用于增大指定版本的目标服务被调用的概率,并相应减少其他版本的目标服务被调用的概率。
例如,若目标服务包括新版本及旧版本等两种版本,且当前新版本及旧版本的目标服务被调用的概率分别为30%,70%,若第二更新指令用于指示将前新版本的目标服务被调用的概率调整为40%,则所述服务器集群的参数配置中心响应于该第二更新指令,可以生成表示新版本及旧版本的目标服务被调用的概率分别为40%及60%的更新后的预设版本调用概率信息,以实现灰度分流比例的调整。
本说明书实施例中,所述第二请求消息的获取及处理的原理,与所述第一请求消息的获取及处理的原理可以是相同的。因此,对于根据所述更新后的预设版本调用概率信息处于所述第二请求消息的过程不再赘述。
本实施例中,通过基于第二更新指令去调整目标服务对应的预设版本调用概率信息,并根据更新后的预设版本调用概率信息响应用于调用所述目标服务的请求消息,从而可以提升灰度分流比例的调整便捷性。
本说明书实施例中,除了随机进行灰度分流以外,还可以选择指定用户来体验新版本的目标服务。
基于此,步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本,具体可以包括:
查询所述目标服务对应的预设用户标识列表;所述预设用户标识列表中包含有需调用指定版本的所述目标服务的用户标识信息。
判断所述预设用户标识列表中是否包含所述第一请求消息携带的用户标识信息,得到第二判断结果。
若所述第二判断结果表示所述预设用户标识列表中包含所述第一请求消息携带的用户标识信息,则将所述指定版本确定为第一待调用版本。
本说明书实例中,目标服务的版本管理人员可以预先确定需要体验指定版本的目标服务的用户,并存储这部分用户的用户标识信息至预设用户标识列表。所述用户标识信息具体可以包括用户名或者用户ID、用户IP地址等信息,对此不作具体限定。
例如,假定,当前具有新版本及旧版本等两种版本的目标服务,则可以预先将测试人员、开发人员、内部协商用户和主动申请用户的用户标识信息存储至预设用户标识列表,以在响应这些用户发送的第一请求消息时调用新版本的目标服务,并在响应其他用户发送的第一请求消息时调用旧版本的目标服务。或者,可以将对于稳定性有特殊要求的重点用户的用户标识信息存储至预设用户标识列表,以在响应这些用户发送的第一请求消息时调用旧版本的目标服务,并在响应其他用户发送的第一请求消息时调用新版本的目标服务。
本说明书实施例中,查询所述目标服务对应的预设用户标识列表后,继续判断所述预设用户标识列表中是否包含所述第一请求消息携带的用户标识信息,得到第二判断结果;若所述第二判断结果表示所述预设用户标识列表中包含所述第一请求消息携带的用户标识信息,则将所述指定版本确定为第一待调用版本。若所述第二判断结果表示所述预设用户标识列表中不包含所述第一请求消息携带的用户标识信息,则既可以从所述多个版本中的除所述指定版本以外的其他版本中,确定第一待调用版本,或者,也可以根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,基于哈希处理及取模处理,而从所述多个版本中去随机确定第一待调用版本,对此不作具体限定。
本说明书实施例中,所述目标服务是基于所述目标服务的应用程序来实现的,因此,若服务器集群中的单个服务器可以同时提供多个版本的目标服务,则所述服务器中需要预先存储所述多个版本的目标服务的应用程序。
基于此,步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本之前,还可以包括:
存储用于提供各个版本的所述目标服务的应用程序至所述服务器。
步骤206:基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理,具体可以包括:
所述服务器通过运行用于提供所述第一待调用版本的所述目标服务的应用程序,对所述第一请求消息进行处理。
本说明书实施例中,在针对目标服务进行灰度发布的过程中,由于服务器集群中的单个服务器需要通过多个版本的目标服务,因此,所述服务器处需要同时存储所述多个版本的目标服务的应用程序。而若监控发现业务符合预期,则需要终止针对目标服务的灰度发布,后续,所述服务器仅需提供单个指定版本的目标服务即可,因此,需要删除其他版本的目标服务的应用程序,以保证业务的顺序执行。
基于此,步骤206:基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理之后,还可以包括:
所述服务器获取应用程序删除指令,所述应用程序删除指令是在所述目标服务处于灰度发布终止状态后生成的,指示删除用于提供所述第一版本的所述目标服务的应用程序的指令。
响应于所述应用程序删除指令,删除所述服务器处存储的用于提供所述第一版本的所述目标服务的应用程序。
本说明书实施例中,所述多个版本可以包括第一版本及第二版本,所述第一版本的发布时间可以早于所述第二版本的发布时间。即所述第一版本可以为旧版本,所述第二版本可以为新版本。
在实际应用中,所述应用程序删除指令既可以用于在新版本的目标服务符合预期时,指示删除旧版本的目标服务的应用程序;也可以用于在新版本的目标服务不符合预期时,指示删除新版本的目标服务的应用程序,对此不作具体限定。
本说明书实施例中,java注解(Annotation)属于Java技术中的一种注释机制,注解可以理解为代码里的特殊标记,这些标记可以在程序编译、类加载、运行时被读取,并执行相应的处理。通过注解可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息,方便快捷。基于此,图2中的方案及实施例,可以基于java注解来实现。
具体的,步骤204:根据所述第一请求消息携带的参数信息,确定第一待调用版本之前,还可以包括:
针对处于灰度发布状态的所述目标服务添加注解。
对应的,步骤206:根据所述第一请求消息携带的参数信息,确定第一待调用版本,具体可以包括:
基于针对所述目标服务添加的所述注解,根据所述第一请求消息携带的参数信息,确定第一待调用版本。
本说明书实施例中,针对所述目标服务添加的注解可以为java注解,服务器集群在响应第一请求消息时,可以基于所述注解,去从目标服务的多个版本中确定出响应所述第一请求消息时所需调用的目标服务的版本,以及根据确定出的版本的目标服务对该第一请求消息进行处理,从而实现灰度发布。由于这种方案对于服务器集群处部署的应用程序的改动较小,从而有利于提升针对目标服务进行灰度发布时的便捷性。
在实际应用中,既可以利用服务器集群中的路由节点去确定第一待调用版本,或者,也可以直接利用服务器集群中的用于提供多种版本的目标服务的服务器去确定第一待调用版本,对此不作具体限定。但是,若由所述服务器直接接收所述第一请求消息以及确定第一待调用版本,则所述注解可以添加在所述服务器处存储的程序代码中。而若由所述服务器集群中的路由节点接收第一请求消息以及确定第一待调用版本,再由所述路由节点转发所述第一请求消息以及所述第一待调用版本的版本信息至集群中的服务器,则所述注解也可以添加在所述路由节点处的程序代理中。
图3为本说明书实施例提供的对应于图2中的请求消息处理方法的泳道流程示意图。如图3所示,该请求消息处理流程可以涉及版本管理人员、服务器集群及请求方等执行主体。
在预处理阶段,版本管理人员在针对目标服务进行灰度发布时,可以将多个版本的目标服务的应用程序存储至服务器集群中的服务器,以及,在服务器集群的参数配置中心处设置预设版本调用概率信息及预设服务标识列表。以使得所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,所述多个版本至少可以包括发布时间不同的第一版本及第二版本。
在请求消息处理阶段,请求方可以生成并发送用于调用所述目标服务的第一请求消息至服务器集群。若服务器集群中的设备可以判断预设服务标识列表中是否包含目标服务的标识信息,若否,则可以表示未针对目标服务进行灰度发布,从而可以利用服务器集群中的服务器处提供的单一版本的目标服务,处理第一请求消息。若是,则可以表示正在针对目标服务进行灰度发布,从而可以根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,确定第一待调用版本,以及,基于集群中的服务器处的第一待调用版本的目标服务的应用程序,对第一请求消息进行处理。
图3中的方案,通过令服务器集群中的单个服务器能够同时提供多个版本的目标服务,以及,能够根据用于调用所述目标服务的请求消息所携带的参数信息,确定响应该请求消息所需使用的所述目标服务的版本,从而可以利用单个服务器集群,去分别使用新版本及旧版本的目标服务对各个请求消息进行处理,以实现软件产品的版本更新过程中的灰度发布,而无需部署多个服务器集群,有利于降低软件产品的版本更新时的实施成本。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图4为本说明书实施例提供的对应于图2的一种请求消息处理装置的结构示意图。
如图4所示,该装置可以包括:
第一请求获取模块402,用于获取用于调用所述目标服务的第一请求消息。
第一版本确定模块404,用于根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本。
第一请求处理模块406,用于基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
基于图4的装置,本说明书实施例还提供了该装置的一些具体实施方案,下面进行说明。
可选的,所述服务器集群中存储有预设服务标识列表,所述预设服务标识列表中包含有处于灰度发布状态的服务的标识信息。
对应的,所述装置还可以包括:
灰度发布状态判断模块,用于判断所述预设服务标识列表中是否包含所述目标服务的标识信息,得到第一判断结果;若所述第一判断结果表示所述预设服务标识列表中包含所述目标服务的标识信息,则根据所述第一请求消息携带的参数信息,确定第一待调用版本。
可选的,所述装置还可以包括:
第一更新指令获取模块,用于获取针对所述预设服务标识列表的第一更新指令;所述第一更新指令是在所述目标服务处于灰度发布终止状态后生成的,用于指示删除所述目标服务的标识信息的指令。
灰度标识删除模块,用于响应于所述第一更新指令,从所述预设服务标识列表中删除所述目标服务的标识信息。
可选的,所述第一版本确定模块404,具体可以包括:
调用概率查询单元,用于查询所述目标服务对应的预设版本调用概率信息;所述预设版本调用概率信息用于反映各个版本的所述目标服务被调用的概率。
第一版本确定单元,用于根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,确定第一待调用版本。
可选的,所述第一版本确定单元,具体可以包括:
哈希处理子单元,用于针对所述第一请求消息携带的预设输入参数进行哈希处理,得到目标哈希值。
取模子单元,用于利用所述目标哈希值对预设值进行取模运算,得到目标余数。
余数区间确定子单元,用于确定所述目标余数所属的预设数值区间。
版本确定子单元,用于确定所述预设数值区间对应的所述目标服务的版本,得到第一待调用版本;所述预设数值区间对应的所述目标服务的版本是根据所述预设版本调用概率信息设置的。
可选的,所述装置还可以包括:
第二更新指令获取模块,用于获取针对所述目标服务对应的预设版本调用概率信息的第二更新指令。
调用概率调整模块,用于响应于所述第二更新指令,生成所述目标服务对应的更新后的预设版本调用概率信息。
第二请求获取模块,用于获取用于调用所述目标服务的第二请求消息。
第二版本确定模块,用于根据所述第二请求消息携带的参数信息及所述更新后的预设版本调用概率信息,确定第二待调用版本,所述第二待调用版本为针对所述第二请求消息进行处理所需使用的所述目标服务的版本。
第二请求处理模块,用于基于所述第二待调用版本的所述目标服务,对所述第二请求消息进行处理。
可选的,所述第一版本确定模块404,具体可以包括:
用户标识列表查询单元,用于查询所述目标服务对应的预设用户标识列表;所述预设用户标识列表中包含有需调用指定版本的所述目标服务的用户标识信息。
用户标识信息判断单元,用于判断所述预设用户标识列表中是否包含所述第一请求消息携带的用户标识信息,得到第二判断结果。
第二版本确定单元,用于若所述第二判断结果表示所述预设用户标识列表中包含所述第一请求消息携带的用户标识信息,则将所述指定版本确定为第一待调用版本。
可选的,所述装置还可以包括:
存储模块,用于存储用于提供各个版本的所述目标服务的应用程序至所述服务器。
对应的,所述第一请求处理模块406,具体可以包括:
请求处理单元,用于所述服务器通过运行用于提供所述第一待调用版本的所述目标服务的应用程序,对所述第一请求消息进行处理。
可选的,所述多个版本包括第一版本及第二版本,所述第一版本的发布时间早于所述第二版本的发布时间;
对应的,所述装置还包括:
删除指令获取模块,用于获取应用程序删除指令,所述应用程序删除指令是在所述目标服务处于灰度发布终止状态后生成的,指示删除用于提供所述第一版本的所述目标服务的应用程序的指令。
应用程序删除模块,用于响应于所述应用程序删除指令,删除所述服务器处存储的用于提供所述第一版本的所述目标服务的应用程序。
可选的,所述装置还可以包括:
注解添加模块,用于针对处于灰度发布状态的所述目标服务添加注解。
对应的,所述第一版本确定模块404,具体可以包括:
第二版本确定单元,用于基于针对所述目标服务添加的所述注解,根据所述第一请求消息携带的参数信息,确定第一待调用版本。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。
图5为本说明书实施例提供的对应于图2的一种请求消息处理设备的结构示意图。如图5所示,设备500可以为服务器集群中的设备,所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同;所述设备500可以包括:
至少一个处理器510;以及,
与所述至少一个处理器通信连接的存储器530;其中,
所述存储器530存储有可被所述至少一个处理器510执行的指令520,所述指令被所述至少一个处理器510执行,以使所述至少一个处理器510能够:
获取用于调用所述目标服务的第一请求消息。
根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本。
基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图5所示的设备而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字符系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子可以包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone LabsC8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内可以包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字符助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生可以包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备可以包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能可以包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质可以包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字符多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不可以包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“可以包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得可以包括一系列要素的过程、方法、商品或者设备不仅可以包括那些要素,而且还可以包括没有明确列出的其他要素,或者是还可以包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“可以包括一个……”限定的要素,并不排除在可以包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于可以包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (21)
1.一种请求消息处理方法,应用于服务器集群,所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同,所述方法包括:
获取用于调用所述目标服务的第一请求消息;
根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本;
基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
2.如权利要求1所述的方法,所述服务器集群中存储有预设服务标识列表,所述预设服务标识列表中包含有处于灰度发布状态的服务的标识信息;
所述根据所述第一请求消息携带的参数信息,确定第一待调用版本之前,还包括:
判断所述预设服务标识列表中是否包含所述目标服务的标识信息,得到第一判断结果;
所述根据所述第一请求消息携带的参数信息,确定第一待调用版本,具体包括:
若所述第一判断结果表示所述预设服务标识列表中包含所述目标服务的标识信息,则根据所述第一请求消息携带的参数信息,确定第一待调用版本。
3.如权利要求2所述的方法,所述基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理之后,还包括:
获取针对所述预设服务标识列表的第一更新指令;所述第一更新指令是在所述目标服务处于灰度发布终止状态后生成的,用于指示删除所述目标服务的标识信息的指令;
响应于所述第一更新指令,从所述预设服务标识列表中删除所述目标服务的标识信息。
4.如权利要求1所述的方法,所述根据所述第一请求消息携带的参数信息,确定第一待调用版本,具体包括:
查询所述目标服务对应的预设版本调用概率信息;所述预设版本调用概率信息用于反映各个版本的所述目标服务被调用的概率;
根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,确定第一待调用版本。
5.如权利要求4所述的方法,所述根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,确定第一待调用版本,具体包括:
针对所述第一请求消息携带的预设输入参数进行哈希处理,得到目标哈希值;
利用所述目标哈希值对预设值进行取模运算,得到目标余数;
确定所述目标余数所属的预设数值区间;
确定所述预设数值区间对应的所述目标服务的版本,得到第一待调用版本;所述预设数值区间对应的所述目标服务的版本是根据所述预设版本调用概率信息设置的。
6.如权利要求4所述的方法,所述根据所述第一请求消息携带的参数信息,确定第一待调用版本之后,还包括:
获取针对所述目标服务对应的预设版本调用概率信息的第二更新指令;
响应于所述第二更新指令,生成所述目标服务对应的更新后的预设版本调用概率信息;
获取用于调用所述目标服务的第二请求消息;
根据所述第二请求消息携带的参数信息及所述更新后的预设版本调用概率信息,确定第二待调用版本,所述第二待调用版本为针对所述第二请求消息进行处理所需使用的所述目标服务的版本;
基于所述第二待调用版本的所述目标服务,对所述第二请求消息进行处理。
7.如权利要求1所述的方法,所述根据所述第一请求消息携带的参数信息,确定第一待调用版本,具体包括:
查询所述目标服务对应的预设用户标识列表;所述预设用户标识列表中包含有需调用指定版本的所述目标服务的用户标识信息;
判断所述预设用户标识列表中是否包含所述第一请求消息携带的用户标识信息,得到第二判断结果;
若所述第二判断结果表示所述预设用户标识列表中包含所述第一请求消息携带的用户标识信息,则将所述指定版本确定为第一待调用版本。
8.如权利要求1所述的方法,所述根据所述第一请求消息携带的参数信息,确定第一待调用版本之前,还包括:
存储用于提供各个版本的所述目标服务的应用程序至所述服务器;
所述基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理,具体包括:
所述服务器通过运行用于提供所述第一待调用版本的所述目标服务的应用程序,对所述第一请求消息进行处理。
9.如权利要求8所述的方法,所述多个版本包括第一版本及第二版本,所述第一版本的发布时间早于所述第二版本的发布时间;
所述基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理之后,还包括:
所述服务器获取应用程序删除指令,所述应用程序删除指令是在所述目标服务处于灰度发布终止状态后生成的,指示删除用于提供所述第一版本的所述目标服务的应用程序的指令;
响应于所述应用程序删除指令,删除所述服务器处存储的用于提供所述第一版本的所述目标服务的应用程序。
10.如权利要求1-9中任意一项所述的方法,所述根据所述第一请求消息携带的参数信息,确定第一待调用版本之前,还包括:
针对处于灰度发布状态的所述目标服务添加注解;
所述根据所述第一请求消息携带的参数信息,确定第一待调用版本,具体包括:
基于针对所述目标服务添加的所述注解,根据所述第一请求消息携带的参数信息,确定第一待调用版本。
11.一种请求消息处理装置,应用于服务器集群,所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同,所述装置包括:
第一请求获取模块,用于获取用于调用所述目标服务的第一请求消息;
第一版本确定模块,用于根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本;
第一请求处理模块,用于基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
12.如权利要求11所述的装置,所述服务器集群中存储有预设服务标识列表,所述预设服务标识列表中包含有处于灰度发布状态的服务的标识信息;
所述装置还包括:
灰度发布状态判断模块,用于判断所述预设服务标识列表中是否包含所述目标服务的标识信息,得到第一判断结果;若所述第一判断结果表示所述预设服务标识列表中包含所述目标服务的标识信息,则根据所述第一请求消息携带的参数信息,确定第一待调用版本。
13.如权利要求12所述的装置,还包括:
第一更新指令获取模块,用于获取针对所述预设服务标识列表的第一更新指令;所述第一更新指令是在所述目标服务处于灰度发布终止状态后生成的,用于指示删除所述目标服务的标识信息的指令;
灰度标识删除模块,用于响应于所述第一更新指令,从所述预设服务标识列表中删除所述目标服务的标识信息。
14.如权利要求11所述的装置,所述第一版本确定模块,具体包括:
调用概率查询单元,用于查询所述目标服务对应的预设版本调用概率信息;所述预设版本调用概率信息用于反映各个版本的所述目标服务被调用的概率;
第一版本确定单元,用于根据所述第一请求消息携带的参数信息及所述预设版本调用概率信息,确定第一待调用版本。
15.如权利要求14所述的装置,所述第一版本确定单元,具体包括:
哈希处理子单元,用于针对所述第一请求消息携带的预设输入参数进行哈希处理,得到目标哈希值;
取模子单元,用于利用所述目标哈希值对预设值进行取模运算,得到目标余数;
余数区间确定子单元,用于确定所述目标余数所属的预设数值区间;
版本确定子单元,用于确定所述预设数值区间对应的所述目标服务的版本,得到第一待调用版本;所述预设数值区间对应的所述目标服务的版本是根据所述预设版本调用概率信息设置的。
16.如权利要求14所述的装置,还包括:
第二更新指令获取模块,用于获取针对所述目标服务对应的预设版本调用概率信息的第二更新指令;
调用概率调整模块,用于响应于所述第二更新指令,生成所述目标服务对应的更新后的预设版本调用概率信息;
第二请求获取模块,用于获取用于调用所述目标服务的第二请求消息;
第二版本确定模块,用于根据所述第二请求消息携带的参数信息及所述更新后的预设版本调用概率信息,确定第二待调用版本,所述第二待调用版本为针对所述第二请求消息进行处理所需使用的所述目标服务的版本;
第二请求处理模块,用于基于所述第二待调用版本的所述目标服务,对所述第二请求消息进行处理。
17.如权利要求11所述的装置,所述第一版本确定模块,具体包括:
用户标识列表查询单元,用于查询所述目标服务对应的预设用户标识列表;所述预设用户标识列表中包含有需调用指定版本的所述目标服务的用户标识信息;
用户标识信息判断单元,用于判断所述预设用户标识列表中是否包含所述第一请求消息携带的用户标识信息,得到第二判断结果;
第二版本确定单元,用于若所述第二判断结果表示所述预设用户标识列表中包含所述第一请求消息携带的用户标识信息,则将所述指定版本确定为第一待调用版本。
18.如权利要求11所述的装置,还包括:
存储模块,用于存储用于提供各个版本的所述目标服务的应用程序至所述服务器;
所述第一请求处理模块,具体包括:
请求处理单元,用于所述服务器通过运行用于提供所述第一待调用版本的所述目标服务的应用程序,对所述第一请求消息进行处理。
19.如权利要求18所述的装置,所述多个版本包括第一版本及第二版本,所述第一版本的发布时间早于所述第二版本的发布时间;
所述装置还包括:
删除指令获取模块,用于获取应用程序删除指令,所述应用程序删除指令是在所述目标服务处于灰度发布终止状态后生成的,指示删除用于提供所述第一版本的所述目标服务的应用程序的指令;
应用程序删除模块,用于响应于所述应用程序删除指令,删除所述服务器处存储的用于提供所述第一版本的所述目标服务的应用程序。
20.如权利要求11-19中任意一项所述的装置,还包括:
注解添加模块,用于针对处于灰度发布状态的所述目标服务添加注解;
所述第一版本确定模块,具体包括:
第二版本确定单元,用于基于针对所述目标服务添加的所述注解,根据所述第一请求消息携带的参数信息,确定第一待调用版本。
21.一种请求消息处理设备,所述设备为服务器集群中的设备,所述服务器集群中的至少一个服务器可用于提供多个版本的目标服务,不同版本的所述目标服务的发布时间不同,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取用于调用所述目标服务的第一请求消息;
根据所述第一请求消息携带的参数信息,确定第一待调用版本,所述第一待调用版本为针对所述第一请求消息进行处理所需使用的所述目标服务的版本;
基于所述第一待调用版本的所述目标服务,对所述第一请求消息进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210236700.5A CN114625410A (zh) | 2022-03-11 | 2022-03-11 | 一种请求消息处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210236700.5A CN114625410A (zh) | 2022-03-11 | 2022-03-11 | 一种请求消息处理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625410A true CN114625410A (zh) | 2022-06-14 |
Family
ID=81901965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210236700.5A Pending CN114625410A (zh) | 2022-03-11 | 2022-03-11 | 一种请求消息处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625410A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357280A (zh) * | 2022-08-09 | 2022-11-18 | 湖南木屋网络科技有限公司 | 软件版本管理方法、装置、服务器及存储介质 |
-
2022
- 2022-03-11 CN CN202210236700.5A patent/CN114625410A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357280A (zh) * | 2022-08-09 | 2022-11-18 | 湖南木屋网络科技有限公司 | 软件版本管理方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450979B (zh) | 一种区块链共识方法及装置 | |
CN108418851B (zh) | 策略发布系统、方法、装置及设备 | |
US7996570B1 (en) | Usage of keyboard driver in extensible firmware interface for adding new hot keys at firmware level | |
CN107038041B (zh) | 数据处理方法、错误码动态兼容方法、装置和系统 | |
CN110032409B (zh) | 一种客户端屏幕适配方法、装置及电子设备 | |
CN107578338B (zh) | 一种业务发布方法、装置及设备 | |
CN111651467B (zh) | 一种区块链节点接口发布调用方法和装置 | |
CN110851285B (zh) | 一种基于gpu虚拟化的资源复用方法、装置及设备 | |
CN112597013A (zh) | 一种在线开发以及调试方法及装置 | |
TWI690187B (zh) | 服務更新方法及裝置、系統 | |
CN111897542A (zh) | 一种灰度发布的方法及装置 | |
CN111694639B (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN110764930B (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN111338689B (zh) | 文件调用方法、装置及设备 | |
CN112163150A (zh) | 一种信息推送的方法及装置 | |
CN111988429A (zh) | 算法调度方法以及系统 | |
CN111273965B (zh) | 一种容器应用启动方法、系统、装置及电子设备 | |
CN113852498A (zh) | 一种部署、管理及调用组件的方法及装置 | |
CN114625410A (zh) | 一种请求消息处理方法、装置及设备 | |
CN115129728A (zh) | 一种文件校验的方法及装置 | |
CN108647102B (zh) | 异构系统的服务请求处理方法、装置和电子设备 | |
CN110022351B (zh) | 一种业务请求的处理方法和装置 | |
CN108881367B (zh) | 一种业务请求处理方法、装置及设备 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN113761400A (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 |