CN114006892A - 请求处理方法、装置、电子设备及存储介质 - Google Patents

请求处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114006892A
CN114006892A CN202111265696.7A CN202111265696A CN114006892A CN 114006892 A CN114006892 A CN 114006892A CN 202111265696 A CN202111265696 A CN 202111265696A CN 114006892 A CN114006892 A CN 114006892A
Authority
CN
China
Prior art keywords
request
server
forwarding condition
client
information
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
CN202111265696.7A
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 Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet 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 Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202111265696.7A priority Critical patent/CN114006892A/zh
Publication of CN114006892A publication Critical patent/CN114006892A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开关于一种请求处理方法、装置、电子设备及存储介质,包括:获取第二客户端发送的请求;所述请求携带有多个请求信息;确定所述多个请求信息对应的第一请求转发条件和第二请求转发条件;当所述请求携带的所述多个请求信息符合所述第一请求转发条件时,发送所述请求至第一服务器,通过所述第一服务器处理所述请求;当所述请求携带的所述多个请求信息符合所述第二请求转发条件时,发送所述请求至第二服务器,通过所述第二服务器处理所述请求。该方法先拦截请求进行判断,再发送请求给服务器,可以避免第二客户端直接请求第二服务器,造成无法回退的问题。

Description

请求处理方法、装置、电子设备及存储介质
技术领域
本公开涉及通信技术领域,尤其涉及一种请求处理方法、装置、电子设备及存储介质。
背景技术
HTTP流量切流是系统升级时常用的一项技术,随着系统升级,新版本服务器功能发生较大变化,不能直接取代老版本服务器,此时需要将HTTP流量从老版本服务器逐渐切换到新版本服务器上,进入新老版本服务器都提供服务功能的状态。当HTTP流量都切换到新版本服务器之后,流量切换即完成。
现有的系统升级场景下的流量切换方案一般是如图1所示,旧版本客户端与旧版本服务器进行通信,用户通过升级应用程序到新版本客户端之后,新版本客户端与新版本服务器进行通信。然而这种流量切换方案在客户端升级后,无法回退到旧的客户端版本,若新版本服务器出现问题,则只能通过发布更新版本的客户端使用户升级,耗时较多。
发明内容
本公开提供一种请求处理方法、装置、电子设备及存储介质,以至少解决相关技术中在客户端升级后,无法回退到旧的客户端版本的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种请求处理方法,包括:
获取第二客户端发送的请求;所述请求携带有多个请求信息;
确定所述多个请求信息对应的第一请求转发条件和第二请求转发条件;
当所述请求携带的所述多个请求信息符合所述第一请求转发条件时,发送所述请求至第一服务器,通过所述第一服务器处理所述请求;
当所述请求携带的所述多个请求信息符合所述第二请求转发条件时,发送所述请求至第二服务器,通过所述第二服务器处理所述请求。
在一示例性实施例中,所述方法还包括:
接收所述第一服务器或所述第二服务器返回的针对所述请求信息的处理结果;所述处理结果包含有所述第一服务器或所述第二服务器针对所述请求所携带的各个所述请求信息的响应数据;
返回所述处理结果至所述第二客户端。
在一示例性实施例中,所述获取第二客户端发送的请求,包括:
获取所述第二客户端所发送的携带有所述请求的网址路径、所述第二客户端的版本号、请求帐户的帐户标识及所述第二客户端的设备标识中的至少两种请求信息的所述请求。
在一示例性实施例中,所述第一请求转发条件和所述第二请求转发条件基于所述多个请求信息中的至少一个请求信息确定;所述方法还包括:
当所述多个请求信息中的任一个请求信息不符合所述第一请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第一请求转发条件;
当所述多个请求信息中的任一个请求信息不符合所述第二请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第二请求转发条件。
在一示例性实施例中,所述方法还包括:
对所述第一请求转发条件或所述第二请求转发条件中任一个所述请求信息对应的条件进行调整;所述条件表示所述请求信息对应的集合或匹配信息;
根据调整后的第一请求转发条件或调整后的第二请求转发条件,确定处理所述请求的服务器。
在一示例性实施例中,所述方法还包括:
获取从接收到所述请求信息至接收到针对所述请求信息的处理结果的处理耗时;
发送所述请求信息、所述处理结果和所述处理耗时至监控客户端,以使所述监控客户端对所述请求信息、所述处理结果和所述处理耗时进行存储。
根据本公开实施例的第二方面,提供一种请求处理装置,包括:
获取单元,被配置为执行获取第二客户端发送的请求;所述请求携带有多个请求信息;
确定单元,被配置为执行确定所述多个请求信息对应的第一请求转发条件和第二请求转发条件;
第一发送单元,被配置为执行当所述请求携带的所述多个请求信息符合所述第一请求转发条件时,发送所述请求至第一服务器,通过所述第一服务器处理所述请求;
第二发送单元,被配置为执行当所述请求携带的所述多个请求信息符合所述第二请求转发条件时,发送所述请求至第二服务器,通过所述第二服务器处理所述请求。
在一示例性实施例中,所述装置还包括:
接收单元,被配置为执行接收所述第一服务器或所述第二服务器返回的针对所述请求的处理结果;所述处理结果包含有所述第一服务器或所述第二服务器针对所述请求所携带的各个所述请求信息的响应数据;
返回单元,被配置为执行返回所述处理结果至所述第二客户端。
在一示例性实施例中,所述获取单元,还被配置为执行获取所述第二客户端所发送的携带有所述请求的网址路径、所述第二客户端的版本号、请求帐户的帐户标识及所述第二客户端的设备标识中的至少两种请求信息的所述请求。
在一示例性实施例中,所述第一请求转发条件和所述第二请求转发条件基于所述多个请求信息中的至少一个请求信息确定;所述确定单元,还被配置为执行当所述多个请求信息中的任一个请求信息不符合所述第一请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第一请求转发条件;当所述多个请求信息中的任一个请求信息不符合所述第二请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第二请求转发条件。
在一示例性实施例中,所述装置还包括调整单元,被配置为执行对所述第一请求转发条件或所述第二请求转发条件中任一个所述请求信息对应的条件进行调整;所述条件表示所述请求信息对应的集合或匹配信息;根据调整后的第一请求转发条件或调整后的第二请求转发条件,确定处理所述请求的服务器。
在一示例性实施例中,所述装置还包括监控单元,被配置为执行获取从接收到所述请求信息至接收到针对所述请求信息的处理结果的处理耗时;发送所述请求信息、所述处理结果和所述处理耗时至监控客户端,以使所述监控客户端对所述请求信息、所述处理结果和所述处理耗时进行存储。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上任一项所述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上任一项所述的方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如上任一项所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过获取第二客户端发送的请求,确定该请求所携带的多个请求信息对应的第一请求转发条件和第二请求转发条件,在确定多个请求信息符合第一请求转发条件时,发送请求至第一服务器,通过第一服务器处理请求,在确定请求携带的多个请求信息符合第二请求转发条件时,发送请求至第二服务器,通过第二服务器处理请求。该方法通过对第二客户端发送的请求进行拦截,并基于第一请求转发条件和第二请求转发条件进行切流判断,在判断请求信息符合第一请求转发条件时,通过第一服务器处理请求,在判断请求信息符合第二请求转发条件时,通过第二服务器处理请求信息,这种先拦截请求进行判断,再发送请求的方式,可以避免第二客户端直接请求第二服务器,造成无法回退的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的现有技术中系统升级场景下的切流方案示意图。
图2是根据一示例性实施例示出的一种请求处理方法的应用环境图。
图3是根据一示例性实施例示出的一种请求处理方法的流程示意图。
图4是根据另一示例性实施例示出的一种请求处理方法的流程示意图。
图5是根据一应用实例示出的一种请求处理方法的应用场景图。
图6是根据一示例性实施例示出的一种请求处理装置的结构框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等),均为经用户授权或者经过各方充分授权的信息。
HTTP流量切流(HTTP Flow Control)是在有多个web应用服务器的情况下,在某一台web应用服务器上将流量转发到其他web应用服务器,并获得返回结果之后,再通过本web应用服务器返回给客户端的一项技术。本公开所提供的请求处理方法,可以应用于如图2所示的应用场景中,包括:第一客户端210、第一服务器220、第二客户端230和第二服务器240。其中,第一客户端210可表示升级前的旧版本客户端,第二客户端230可表示第一客户端210升级后的新版本客户端,第一服务器220可表示升级前的旧版本服务器,第二服务器240可表示第一服务器220升级后的新版本服务器,其中,第一服务器220上可设置有切流系统。其中,第一客户端210和第二客户端230均可通过第一服务器220上设置的切流系统分别与第一服务器220和第二服务器240进行通信。具体地,在本公开的应用场景中,设置于第一服务器220上的切流系统在接收到第二客户端230发送的请求后,确定该请求所携带的多个请求信息所对应的第一请求转发条件和第二请求转发条件,当多个请求信息符合第一请求转发条件时,发送请求至第一服务器220,通过第一服务器220处理第二客户端230发送的请求;当多个请求信息符合第二请求转发条件时,发送请求至第二服务器240,通过第二服务器240处理第二客户端230发送的请求。
图3是根据一示例性实施例示出的一种请求处理方法的流程示意图,如图3所示,以该方法应用于图2中的第一服务器220中所设置的切流系统为例进行说明,包括以下步骤:
在步骤S310中,获取第二客户端发送的请求,所述请求携带有多个请求信息。
其中,第二客户端可以理解为升级后的新版本客户端。
其中,请求可表示HTTP请求,请求信息可表示HTTP请求的请求信息,HTTP请求是基于HTTP协议的请求,HTTP协议为客户端(用户)与服务器(网站)之间请求和应答的标准。
其中,请求信息为判断是否对客户端发送的HTTP请求进行切流的依据,请求信息可以根据实际情况进行获取,具体地,请求信息可以包括请求的网址路径(path)、客户端的版本信息、发送请求的请求帐户的帐户标识及发送请求的客户端的设备标识等信息。
具体实现中,切流系统也可以对第一客户端210发送的请求信息进行切流判断,确定是将请求信息发送给第一服务器220处理,还是发送给第二服务器240处理。
实际应用中,切流系统的功能可以通过Tomcat服务器中的filter实现,在第一客户端210或第二客户端230发送的HTTP请求到达业务逻辑层之前,拦截HTTP请求,对HTTP请求进行切流判断。
在步骤S320中,确定多个请求信息对应的第一请求转发条件和第二请求转发条件。
其中,第一请求转发条件表示需要将请求信息发送给第一服务器进行处理的条件。
其中,第二请求转发条件表示需要将请求信息转发给第二服务器进行处理的条件。
具体实现中,请求信息可以包括请求的网址路径(path)、客户端的版本信息、发送请求的请求帐户的帐户标识及发送请求的客户端的设备标识等信息,第一请求转发条件和第二请求转发条件可以为相反的条件。例如,若请求信息包括网址路径和客户端的版本号两个信息,则第一请求转发条件可以为客户端版本号大于A.B.C,网址路径在预设的路径集合内,相应的,第二请求转发条件则可以为客户端版本号小于或等于A.B.C,网址路径未在预设的路径集合内。
进一步地,在确定第一请求转发条件和第二请求转发条件后,可以将多个请求信息提交给规则引擎,使规则引擎将请求信息分别与第一请求转发条件和第二请求转发条件进行比对,判断请求信息所符合的请求转发条件,并将判断结果返回给切流系统,使切流系统执行对应的操作。
在步骤S330中,当请求携带的多个请求信息符合第一请求转发条件时,发送请求至第一服务器,通过第一服务器处理请求。
具体实现中,请求携带的多个请求信息符合第一请求转发条件,表明第一服务器220可以处理该请求,而不需要将请求转发给第二服务器240处理,因此,当切流系统接收到规则引擎返回的请求信息符合第一请求转发条件的判断结果时,可以将请求提交给第一服务器220,由第一服务器220对该请求进行处理。
例如,对于客户端版本号大于A.B.C的第一请求转发条件,若请求信息中的客户端版本号符合该第一请求转发条件,表明第一服务器可以处理该请求信息,因此,当规则引擎返回给切流系统的判断结果为请求信息中的客户端版本号符合大于A.B.C的第一请求转发条件时,可以将请求提交给第一服务器220,由第一服务器220对请求进行处理。
本步骤中,通过在请求信息符合第一请求转发条件时,将请求信息提交给第一服务器,使第一服务器进行处理,实现第二客户端与第一服务器之间的通信,使得在新版本服务器出现问题时,也可以通过旧版本服务器对请求信息进行处理。
在步骤S340中,当请求携带的多个请求信息符合第二请求转发条件时,发送请求至第二服务器,通过第二服务器处理请求。
具体实现中,请求携带的多个请求信息符合第二请求转发条件,表明第一服务器220不能处理该请求,而需要将请求转发给第二服务器240处理,因此,当切流系统接收到规则引擎返回的请求信息符合第二请求转发条件的判断结果时,可以将请求转发给第二服务器240,由第二服务器240对请求进行处理。
例如,对于客户端版本号小于或等于A.B.C的第二请求转发条件,若请求信息中的客户端版本号符合该第二请求转发条件,不符合第一请求转发条件,表明第一服务器220不能处理客户端版本号小于或等于A.B.C的请求,而只能由第二服务器240来处理客户端版本号小于或等于A.B.C的请求,因此,当规则引擎返回给切流系统的判断结果为请求信息中的客户端版本号符合小于或等于A.B.C的第二请求转发条件时,则需要将请求转发给第二服务器240,由第二服务器240对请求进行处理。
上述请求处理方法中,通过获取第二客户端发送的请求,确定该请求所携带的多个请求信息对应的第一请求转发条件和第二请求转发条件,在确定多个请求信息符合第一请求转发条件时,发送请求至第一服务器,通过第一服务器处理请求,在确定请求携带的多个请求信息符合第二请求转发条件时,发送请求至第二服务器,通过第二服务器处理请求。该方法通过对第二客户端发送的请求进行拦截,并基于第一请求转发条件和第二请求转发条件进行切流判断,在判断请求信息符合第一请求转发条件时,通过第一服务器处理请求,在判断请求信息符合第二请求转发条件时,通过第二服务器处理请求信息,这种先拦截请求进行判断,再发送请求的方式,可以避免第二客户端直接请求第二服务器,造成无法回退的问题。
在一示例性实施例中,步骤S310获取客户端发送的请求,具体包括:获取所述第二客户端所发送的携带有所述请求的网址路径、所述第二客户端的版本信息、请求帐户的帐户标识及所述第二客户端的设备标识中的至少两种请求信息的所述请求。
其中,网址路径,即网址path,是访问网页的基础。
其中,客户端的版本号表示客户端当前的版本,每个版本具有一个唯一的版本号。
其中,帐户标识为表征帐户唯一性的标识,可以为帐户ID、帐户绑定的手机号码等。
其中,帐户设备标识可以为安装第二客户端的终端的标识,例如,帐户设备标识可以为终端序列号(IMEI码)。
本实施例中,通过获取客户端所发送请求的网址路径、发送请求的客户端的版本号、发送请求的帐户的帐户标识及帐户设备标识,作为请求信息,将流量切换的粒度提高到path级别,细化了切流粒度。
在一示例性实施例中,第一请求转发条件和第二请求转发条件基于多个请求信息中的至少一种信息确定;所述方法还包括:当所述多个请求信息中的任一个请求信息不符合所述第一请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第一请求转发条件;当所述多个请求信息中的任一个请求信息不符合所述第二请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第二请求转发条件。
其中,第一请求转发条件和第二请求转发条件可以基于网址路径、版本号、帐户标识和帐户设备标识中的至少一种信息确定。
具体实现中,网址路径对应的条件可以为网址路径在预设的路径集合中,客户端的版本号对应的条件可以为客户端的版本号大于预设版本号,帐户标识对应的条件可以为帐户标识为预设帐户标识或者帐户标识在预设的帐户标识集合中,帐户设备标识对应的条件可以为帐户设备标识为预设设备标识或者帐户设备标识在预设的设备标识集合中。在确定第一请求转发条件或第二请求转发条件所基于的至少一种目标信息后,可选择各目标信息对应的条件组成请求转发条件。
例如,以第一请求转发条件为例,若第一请求转发条件基于版本号和帐户标识确定,则可选择版本号对应的条件:客户端的版本号大于预设版本号,和帐户标识对应的条件:帐户标识为预设帐户标识组成请求转发条件,即基于版本号和帐户标识确定的第一请求转发条件为:请求信息中的客户端的版本号大于预设版本号,且请求信息中的帐户标识为预设帐户标识。类似地,对于网址路径、版本号、帐户标识和帐户设备标识的任意组合,均可得到对应的第一请求转发条件。
进一步地,在将请求信息与第一请求转发条件进行比对时,当请求信息中的任一个请求信息不符合第一请求转发条件中的该请求信息对应的条件时,则判定请求不符合第一请求转发条件。例如,设第一请求转发条件为:请求信息中的客户端的版本号大于预设版本号,且请求信息中的帐户标识为预设帐户标识,且帐户设备标识在预设的设备标识集合中,则当所获取的请求信息不满足客户端的版本号、帐户标识和帐户设备标识三种信息对应的条件中的任一个时,便判定请求不符合第一请求转发条件。相应地,第二请求转发条件的判断方法与第一请求转发条件的判断方法相同,在此不再赘述。
在另一种实施方式中,也可设定请求中设定个数的请求信息不满足第一请求转发条件或第二请求转发条件中对应的条件时,判定请求不符合请求转发条件,具体的判定请求信息是否符合请求转发条件的方式可以根据实际情况和需求进行设定,本申请仅通过本实施例进行说明,不作具体限制。
本实施例中,通过网址路径、版本号、帐户标识和帐户设备标识的组合确定请求转发条件,对是否进行切流进行判断,由此可以实现多维度的切流方式,使得切流系统可以针对复杂的请求转发条件进行切流判断。
在一示例性实施例中,所述方法还包括:对第一请求转发条件或第二请求转发条件中任一个请求信息对应的条件进行调整;条件表示请求信息对应的集合或匹配信息;根据调整后的第一请求转发条件或调整后的第二请求转发条件,确定处理请求的服务器。
其中,任一个请求信息对应的条件可以为该请求信息对应的一个集合或一个具体的匹配信息,例如,对于请求信息:客户端版本号,其所对应的条件可以为一个集合,例如,客户端版本号>A.B.C,也可以为一个具体的匹配信息,例如,客户端版本号为A.B.C。
具体实现中,可通过规则引擎对应的配置页面,对第一请求转发条件或第二请求转发条件中任一个请求信息对应的条件进行调整,使规则引擎根据调整后的第一请求转发条件或调整后的第二请求转发条件,确定处理请求的服务器。具体地,当需要增加、删除或修改第一请求转发条件或第二请求转发条件中的某一个信息对应的条件时,可以通过规则引擎对应的配置页面,对相应的条件进行调整,后续规则引擎接收到新的请求信息时,将新的请求信息与调整后的第一请求转发条件和第二请求转发条件进行比对,判断是否需要对新的请求信息进行切流。
本实施例中,通过规则引擎对应的配置页面,对第一请求转发条件和第二请求转发条件进行调整,使规则引擎根据调整后的第一请求转发条件和第二请求转发条件对请求信息进行判断,实现了对第一请求转发条件和第二请求转发条件的动态性调整,提高了第一请求转发条件和第二请求转发条件的适应性。
在一示例性实施例中,所述方法还包括:接收第一服务器或第二服务器返回的针对请求信息的处理结果;处理结果包含有所述第一服务器或所述第二服务器针对所述请求所携带的各个所述请求信息的响应数据;返回处理结果至第二客户端。
具体实现中,当第一服务器或第二服务器对第二客户端发送的HTTP请求的请求信息进行处理,获取或生成针对各个请求信息的响应数据后,将响应数据封装为响应报文,作为处理结果返回给切流系统,由切流系统将处理结果转发给第二客户端,由此实现第二客户端与第一服务器,第二客户端与第二服务器之间的通信。
可以理解的是,当发送给切流系统HTTP请求的客户端为第一客户端时,则切流系统将会把处理结果转发给第一客户端,即切流系统会将第一服务器或第二服务器返回的处理结果,转发给发送请求的客户端。
本实施例中,在接收到第一服务器或第二服务器返回的针对请求信息的处理结果后,返回处理结果至对应的客户端,由此实现第一客户端和第二客户端均可通过切流系统,实现与第一服务器或第二服务器的通信。
在一示例性实施例中,所述方法还包括:获取从接收到请求信息至接收到针对请求信息的处理结果的处理耗时;发送请求信息、处理结果和处理耗时至监控客户端,以使监控客户端对请求信息、处理结果和处理耗时进行存储。
具体实现中,在切流系统接收到第二客户端发送的请求信息后,可通过计时器启动计时,在接收到第一服务器或第二服务器返回的针对请求信息的处理结果时,停止计时,由此得到处理每个请求所消耗的时间,之后可以将请求信息、请求信息对应的处理结果和处理耗时等信息上传至监控客户端,使监控客户端进行存储,便于日后进行查询和维护。
本实施例中,通过将每次的请求信息、请求信息对应的处理结果和处理耗时记录并发送给监控客户端,由监控客户端作为监控日志进行存储,以便于后续的查询和维护。
在另一示例性实施例中,如图4所示,是根据一示例性实施例示出的一种请求处理方法的流程图,本实施例中,该方法包括以下步骤:
步骤S402,获取第二客户端发送的请求;所述请求携带有多个请求信息;请求信息包括网址路径、发送请求的客户端的版本号、发送请求的帐户标识及帐户设备标识;
步骤S404,发送请求信息至规则引擎;
步骤S406,当接收到规则引擎返回的请求信息符合第一请求转发条件的判断结果时,转发请求至第一服务器,通过第一服务器处理请求;
步骤S408,当接收到规则引擎返回的请求信息符合第二请求转发条件的判断结果时,发送请求至第二服务器,通过第二服务器处理请求;
步骤S410,接收第一服务器或第二服务器返回的针对请求信息的处理结果;
步骤S412,返回处理结果至第二客户端。
本实施例提供的请求处理方法,通过切流系统获取第二客户端发送的请求信息,并发送请求信息至规则引擎,使规则引擎判断请求信息是否符合预设的请求转发条件,在接收到规则引擎返回的请求信息不符合请求转发条件的判断结果时,发送请求信息给第一服务器,通过第一服务器处理请求信息。该方法通过在第一服务器中设置切流系统,对第二客户端发送的请求进行拦截,发送给规则引擎进行切流判断,在判断请求信息符合请求转发条件时,才通过第二服务器处理请求信息,从而可以避免第二客户端直接请求第二服务器,造成无法回退的问题。
在一示例性实施例中,为了便于本领域技术人员理解本申请实施例,以下将结合附图的具体示例进行说明。参考图5,为一个应用实例中请求处理方法的应用场景图,如图所示,切流系统设置于旧版本服务端上,在旧版本客户端逐步升级的过程中,新旧版本客户端的HTTP请求都发送至旧版本服务器上,所有的HTTP请求都被切流系统拦截,切流系统根据HTTP请求与定义在规则引擎的规则配置,判断是否应该切流,若应该切流则通过内置的切流系统中的HTTP client将HTTP请求转发到新版本服务端,等待新版本服务端处理并将新版本服务端返回的处理结果发送给发送HTTP请求的客户端;若无须切流,则将HTTTP请求发送给旧版本服务端处理,并将处理结果返回给发送HTTP请求的客户端。
切流系统的功能具体可以通过Tomcat服务器的filter实现,在HTTP请求到达业务逻辑层之前,拦截所有的HTTP请求并做出处理,更具体地,切流系统的主要功能包括:
(1)采集规则引擎进行切流判断所需要的请求信息,即采集HTTP请求的网址路径(path)、发送HTTP请求的客户端的版本号、发送HTTP请求的用户标识及用户设备标识等信息。
(2)将采集到的请求信息提交到规则引擎,由规则引擎将请求信息与预设的规则进行匹配,判断是否需要进行切流,并将判断结果返回给切流系统。
(3)当判断结果为需要切流时,转发HTTP请求至新版本服务端,并将新版本服务端返回的对HTTP请求的处理结果返回给对应的发送该HTTP请求的客户端;当判断结果为不需要切流时,转发HTTP请求至旧版本服务端,并将旧版本服务端返回的对HTTP请求的处理结果返回给对应的发送该HTTP请求的客户端。
(4)获取对HTTP请求处理过程的处理耗时,将处理耗时连同HTTP请求的请求信息、处理结果进行监控打点的上报。
规则引擎用于实现将业务决策从应用程序中分离,接受请求信息作为条件输入,判断条件与规则是否匹配,并做出业务决策,其实现具体包括两部分:
(1)规则引擎配置页面:配置的业务规则包含有一组请求信息和此组请求信息下执行的操作。其中,每组请求信息均是HTTP请求的网址路径(path)、用户标识、用户设备标识、客户端版本号中任意一种或多种的组合,各个请求信息对应的判断规则可以为path是否在某个集合中,用户标识、设备标识是否等于请求处理或在某个集合中,客户端版本号是否大于A.B.C等,执行的操作即为是否进行切流。
(2)规则引擎:负责业务规则的执行,并得出执行结果。接受所获取的请求信息和配置的业务规则,将请求信息和各个业务规则进行匹配,若有业务规则匹配到请求信息,则对应得到配置的操作结果,若没有业务规则匹配到请求信息,则将默认的操作作为操作结果。
需要说明的是,本公开提供的切流方法,不仅适用于HTTP流量的切流,对于基于OSI七层网络协议中的应用层的诸多协议均可适用,如FTP,SMTP等,虽然本公开中的切流系统以基于Tomcat服务端的filter实现,对于其他web容器,如JBoss、jetty等也可采用类似的,增加前置处理器的方式实现。
本公开提供的请求处理方法,通过在服务端增加切流系统,可以避免新版本客户端直接请求新版本服务端,造成无法回退的问题,通过切流系统与规则引擎的结合,将切流决策与切流系统分离,细化切流粒度,并支持包括网址路径、客户端版本号、帐号标识和用户设备标识等信息的多维度的切流,通过规则引擎配置页面还可实现业务规则的热更新,以便于在出现问题时,可及时止损。在对新版本服务端进行测试时,可以通过添加测试人员的用户标识或设备标识到白名单中,在切流前期便可验证新版本服务端,无需安装新版本客户端,极大地提高了测试人员对新版本服务端进行测试的便利性,并且还可解决用户长时间不升级客户端,而导致需要维护新旧版本的客户端,增加维护成本的问题。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
图6是根据一示例性实施例示出的一种请求处理装置的结构框图。参照图6,该装置包括:获取单元602、确定单元604、第一发送单元606和第二发送单元608,其中,
获取单元602,被配置为执行获取第二客户端发送的请求;所述请求携带有多个请求信息;
确定单元604,被配置为执行确定所述多个请求信息对应的第一请求转发条件和第二请求转发条件;
第一发送单元606,被配置为执行当所述请求携带的所述多个请求信息符合所述第一请求转发条件时,发送所述请求至第一服务器,通过所述第一服务器处理所述请求;
第二发送单元608,被配置为执行当所述请求携带的所述多个请求信息符合所述第二请求转发条件时,发送所述请求至第二服务器,通过所述第二服务器处理所述请求。
在一示例性实施例中,所述装置还包括:
接收单元,被配置为执行接收所述第一服务器或所述第二服务器返回的针对所述请求的处理结果;所述处理结果包含有所述第一服务器或所述第二服务器针对所述请求所携带的各个所述请求信息的响应数据;
返回单元,被配置为执行返回所述处理结果至所述第二客户端。
在一示例性实施例中,所述获取单元602,还被配置为执行获取所述第二客户端所发送的携带有所述请求的网址路径、所述第二客户端的版本号、请求帐户的帐户标识及所述第二客户端的设备标识中的至少两种请求信息的所述请求。
在一示例性实施例中,所述第一请求转发条件和所述第二请求转发条件基于所述多个请求信息中的至少一个请求信息确定;所述确定单元604,还被配置为执行当所述多个请求信息中的任一个请求信息不符合所述第一请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第一请求转发条件;当所述多个请求信息中的任一个请求信息不符合所述第二请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第二请求转发条件。
在一示例性实施例中,所述装置还包括调整单元,被配置为执行对所述第一请求转发条件或所述第二请求转发条件中任一个所述请求信息对应的条件进行调整;所述条件表示所述请求信息对应的集合或匹配信息;根据调整后的第一请求转发条件或调整后的第二请求转发条件,确定处理所述请求的服务器。
在一示例性实施例中,所述装置还包括监控单元,被配置为执行获取从接收到所述请求信息至接收到针对所述请求信息的处理结果的处理耗时;发送所述请求信息、所述处理结果和所述处理耗时至监控客户端,以使所述监控客户端对所述请求信息、所述处理结果和所述处理耗时进行存储。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种用于实现请求处理方法的电子设备700的框图。例如,电子设备700可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
参照图7,电子设备700可以包括以下一个或多个组件:处理组件702、存储器704、电源组件706、多媒体组件708、音频组件710、输入/输出(I/O)的接口712、传感器组件714以及通信组件716。
处理组件702通常控制电子设备700的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704被配置为存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
多媒体组件708包括在所述电子设备700和用户之间的提供输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括前置摄像头和/或后置摄像头。当电子设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括麦克风(MIC),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括扬声器,用于输出音频信号。
I/O接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如所述组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700组件的位置改变,用户与电子设备700接触的存在或不存在,设备700方位或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件716被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在一示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述方法。例如,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在一示例性实施例中,还提供了一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备700的处理器720执行以完成上述方法。
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种请求处理方法,其特征在于,包括:
获取第二客户端发送的请求;所述请求携带有多个请求信息;
确定所述多个请求信息对应的第一请求转发条件和第二请求转发条件;
当所述请求携带的所述多个请求信息符合所述第一请求转发条件时,发送所述请求至第一服务器,通过所述第一服务器处理所述请求;
当所述请求携带的所述多个请求信息符合所述第二请求转发条件时,发送所述请求至第二服务器,通过所述第二服务器处理所述请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一服务器或所述第二服务器返回的针对所述请求的处理结果;所述处理结果包含有所述第一服务器或所述第二服务器针对所述请求所携带的各个所述请求信息的响应数据;
返回所述处理结果至所述第二客户端。
3.根据权利要求1所述的方法,其特征在于,所述获取第二客户端发送的请求,包括:
获取所述第二客户端所发送的携带有所述请求的网址路径、所述第二客户端的版本信息、请求帐户的帐户标识及所述第二客户端的设备标识中的至少两种请求信息的所述请求。
4.根据权利要求1所述的方法,其特征在于,所述第一请求转发条件和所述第二请求转发条件基于所述多个请求信息中的至少一个请求信息确定;所述方法还包括:
当所述多个请求信息中的任一个请求信息不符合所述第一请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第一请求转发条件;
当所述多个请求信息中的任一个请求信息不符合所述第二请求转发条件中该请求信息对应的条件时,则判定所述多个请求信息不符合所述第二请求转发条件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一请求转发条件或所述第二请求转发条件中任一个所述请求信息对应的条件进行调整;所述条件表示所述请求信息对应的集合或匹配信息;
根据调整后的第一请求转发条件或调整后的第二请求转发条件,确定处理所述请求的服务器。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
获取从接收到所述请求至接收到针对所述请求的处理结果的处理耗时;
发送所述请求、所述处理结果和所述处理耗时至监控客户端,以使所述监控客户端对所述请求、所述处理结果和所述处理耗时进行存储。
7.一种请求处理装置,其特征在于,包括:
获取单元,被配置为执行获取第二客户端发送的请求;所述请求携带有多个请求信息;
确定单元,被配置为执行确定所述多个请求信息对应的第一请求转发条件和第二请求转发条件;
第一发送单元,被配置为执行当所述请求携带的所述多个请求信息符合所述第一请求转发条件时,发送所述请求至第一服务器,通过所述第一服务器处理所述请求;
第二发送单元,被配置为执行当所述请求携带的所述多个请求信息符合所述第二请求转发条件时,发送所述请求至第二服务器,通过所述第二服务器处理所述请求。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的请求处理方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,所述计算机程序产品中包括指令,其特征在于,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的请求处理方法。
CN202111265696.7A 2021-10-28 2021-10-28 请求处理方法、装置、电子设备及存储介质 Pending CN114006892A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111265696.7A CN114006892A (zh) 2021-10-28 2021-10-28 请求处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111265696.7A CN114006892A (zh) 2021-10-28 2021-10-28 请求处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114006892A true CN114006892A (zh) 2022-02-01

Family

ID=79924849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111265696.7A Pending CN114006892A (zh) 2021-10-28 2021-10-28 请求处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114006892A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099988A (zh) * 2014-04-24 2015-11-25 阿里巴巴集团控股有限公司 用于支持灰度发布的方法、访问方法以及装置和系统
CN107786621A (zh) * 2016-08-31 2018-03-09 阿里巴巴集团控股有限公司 一种用户信息管理方法、访问处理方法及装置和系统
CN108200165A (zh) * 2017-12-29 2018-06-22 广东欧珀移动通信有限公司 请求传输系统、方法、装置及存储介质
CN110661835A (zh) * 2018-06-29 2020-01-07 马上消费金融股份有限公司 一种灰度发布方法及其处理方法、节点及系统和存储装置
US20200073650A1 (en) * 2018-09-04 2020-03-05 Salesforce. com.Inc. Maintaining client version affinity during a server cluster upgrade
CN111953780A (zh) * 2020-08-13 2020-11-17 中国工商银行股份有限公司 微服务灰度发布方法、装置、设备、系统及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099988A (zh) * 2014-04-24 2015-11-25 阿里巴巴集团控股有限公司 用于支持灰度发布的方法、访问方法以及装置和系统
CN107786621A (zh) * 2016-08-31 2018-03-09 阿里巴巴集团控股有限公司 一种用户信息管理方法、访问处理方法及装置和系统
CN108200165A (zh) * 2017-12-29 2018-06-22 广东欧珀移动通信有限公司 请求传输系统、方法、装置及存储介质
CN110661835A (zh) * 2018-06-29 2020-01-07 马上消费金融股份有限公司 一种灰度发布方法及其处理方法、节点及系统和存储装置
US20200073650A1 (en) * 2018-09-04 2020-03-05 Salesforce. com.Inc. Maintaining client version affinity during a server cluster upgrade
CN111953780A (zh) * 2020-08-13 2020-11-17 中国工商银行股份有限公司 微服务灰度发布方法、装置、设备、系统及存储介质

Similar Documents

Publication Publication Date Title
CN109121468B (zh) 关于网络切片的接入方法及装置
CN109565451B (zh) 网络切片的使用方法及装置
CN110636150B (zh) 域名解析方法、域名解析装置及存储介质
CN113783774B (zh) 一种跨集群的网络配置方法、装置、通信设备及存储介质
CN109005096B (zh) 应用交互方法及装置
CN106454998B (zh) 无线局域网络接入方法、装置及终端
CN107172067B (zh) 一种通话方法、装置和设备
CN110945883B (zh) 寻呼信令接收方法和装置、寻呼信令发送方法和装置
CN107094094B (zh) 应用程序的连网方法、装置及终端
CN111031002B (zh) 广播发现方法、广播发现装置及存储介质
CN109814942B (zh) 一种参数处理方法及装置
CN110769395A (zh) 免流量服务同步方法及装置
CN110337825B (zh) 业务切换方法及装置
CN111654354A (zh) 最大传输单元mtu的探测方法、装置及存储介质
CN112260787B (zh) 设备时延调整方法及装置、电子设备及存储介质
CN110913276B (zh) 数据处理的方法、装置、服务器、终端及存储介质
CN110764847A (zh) 用户信息处理方法、装置、电子设备及存储介质
CN109644353B (zh) 配置调整方法、装置、电子设备和计算机可读存储介质
CN106658412B (zh) 定位方法及装置
CN114430370B (zh) 网络切片的确定方法、装置、设备及存储介质
CN106060104B (zh) 应用管理方法及装置
CN115052276A (zh) 信息处理方法及装置、电子设备及存储介质
CN112769677B (zh) 数据同步方法、装置、电子设备、存储介质和程序产品
CN114006892A (zh) 请求处理方法、装置、电子设备及存储介质
CN109948012B (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