请求处理方法、装置、系统、存储介质和电子设备与流程

文档序号:25543409发布日期:2021-06-18 20:40
请求处理方法、装置、系统、存储介质和电子设备与流程

本公开涉及计算机技术领域,尤其涉及一种请求处理方法、请求处理装置、请求处理系统、计算机可读存储介质和电子设备。



背景技术:

随着计算机技术等的发展,微服务架构作为一种面向服务的软件开发技术,由于其具备开发效率高、可扩展性强等优点受到了广泛的应用。其中,通过微服务架构开发的每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。

为了优化服务的处理能力,提升服务的使用体验,往往需要对微服务应用进行升级。然而,在升级时,传统方式需要停止服务来进行更新,该方式会直接影响用户的使用,导致用户的访问请求无法被正常处理,用户体验较差。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本公开提供了一种请求处理方法、请求处理装置、请求处理系统、计算机可读存储介质与电子设备,进而至少在一定程度上改善现有技术中微服务应用升级过程中无法正常处理访问请求的问题。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的第一方面,提供一种请求处理方法,所述方法包括:接收客户端发送的访问请求;在预先配置的升级规则库中,查找与所述访问请求关联的目标应用的升级规则;对所述访问请求和所述目标应用的升级规则进行匹配,确定所述访问请求的目标服务器,所述目标服务器包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器;将所述访问请求发送至所述目标服务器,并通过所述目标服务器处理所述访问请求。

在本公开的一种示例性实施方式中,在接收客户端发送的访问请求后,所述方法还包括:从分布式配置中心缓存的所述升级规则库中的任意一个或多个升级规则中查找与所述访问请求关联的目标应用的升级规则。

在本公开的一种示例性实施方式中,在查找与所述访问请求关联的目标应用的升级规则时,所述方法还包括:在未查找到所述目标应用的升级规则时,确定所述访问请求的目标服务器为所述未升级服务器。

在本公开的一种示例性实施方式中,所述对所述访问请求和所述目标应用的升级规则进行匹配,确定所述访问请求的目标服务器,包括:解析所述访问请求的请求参数,并确定所述请求参数与所述升级规则是否匹配;在确定所述请求参数与所述目标应用的升级规则匹配时,确定所述访问请求的目标服务器为所述升级服务器;以及在确定所述请求参数与所述目标应用的升级规则不匹配时,确定所述访问请求的目标服务器为所述未升级服务器。

在本公开的一种示例性实施方式中,所述访问请求包括http请求,在确定所述访问请求的目标服务器为所述升级服务器后,所述方法还包括:根据所述升级服务器的域名,将所述http请求发送至所述升级服务器。

在本公开的一种示例性实施方式中,所述访问请求api网关请求,在确定所述访问请求的目标服务器为所述升级服务器后,所述方法还包括:根据所述升级服务器的分组名,将所述api网关请求发送至所述升级服务器,所述分组名为所述升级服务器的唯一标识。

在本公开的一种示例性实施方式中,在通过所述目标服务器处理所述访问请求时,所述方法还包括:当通过所述升级服务器处理所述访问请求发生异常时,将所述访问请求发送至所述未升级服务器;通过所述未升级服务器处理所述访问请求。

根据本公开的第二方面,提供一种请求处理装置,应用于请求处理系统,所述装置包括:接收模块,用于接收客户端发送的访问请求;查找模块,用于在预先配置的升级规则库中,查找与所述访问请求关联的目标应用的升级规则;匹配模块,用于对所述访问请求和所述目标应用的升级规则进行匹配,确定所述访问请求的目标服务器,所述目标服务器包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器;发送模块,用于将所述访问请求发送至所述目标服务器,并通过所述目标服务器处理所述访问请求。

在本公开的一种示例性实施方式中,在接收客户端发送的访问请求后,所述装置还用于从分布式配置中心缓存的所述升级规则库中的任意一个或多个升级规则中查找与所述访问请求关联的目标应用的升级规则。

在本公开的一种示例性实施方式中,在查找与所述访问请求关联的目标应用的升级规则时,所述装置还用于在未查找到所述目标应用的升级规则时,确定所述访问请求的目标服务器为所述未升级服务器。

在本公开的一种示例性实施方式中,所述匹配模块用于解析所述访问请求的请求参数,并确定所述请求参数与所述升级规则是否匹配,在确定所述请求参数与所述目标应用的升级规则匹配时,确定所述访问请求的目标服务器为所述升级服务器,以及在确定所述请求参数与所述目标应用的升级规则不匹配时,确定所述访问请求的目标服务器为所述未升级服务器。

在本公开的一种示例性实施方式中,所述访问请求包括http请求,在确定所述访问请求的目标服务器为所述升级服务器后,所述发送模块还用于根据所述升级服务器的域名,将所述http请求发送至所述升级服务器。

在本公开的一种示例性实施方式中,所述访问请求api网关请求,在确定所述访问请求的目标服务器为所述升级服务器后,所述发送模块还用于根据所述升级服务器的分组名,将所述api网关请求发送至所述升级服务器,所述分组名为所述升级服务器的唯一标识。

在本公开的一种示例性实施方式中,在通过所述目标服务器处理所述访问请求时,所述发送模块还用于当通过所述升级服务器处理所述访问请求发生异常时,将所述访问请求发送至所述未升级服务器,通过所述未升级服务器处理所述访问请求。

根据本公开的第三方面,提供一种请求处理系统,所述系统包括:客户端,用于生成访问请求,并将所述访问请求发送至服务端;服务端,所述服务端包括:接收单元,用于接收所述客户端发送的访问请求;规则管理单元,用于存储预先配置的升级规则库中的升级规则;匹配单元,用于在所述升级规则库中,查找与所述访问请求关联的目标应用的升级规则,并对所述访问请求和所述目标应用的升级规则进行匹配,以确定所述访问请求的目标服务器,所述目标服务器包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器;目标服务器,用于处理所述访问请求。

在本公开的一种示例性实施方式中,所述规则管理单元包括:配置管理单元,用于存储所述升级规则库中的升级规则;分布式配置中心,用于在发布所述升级规则库中的任意一个或多个升级规则时,缓存所述任意一个或多个升级规则,以使所述匹配单元根据所述任意一个或多个升级规则查找与所述访问请求关联的目标应用的升级规则。

在本公开的一种示例性实施方式中,所述访问请求包括http请求,所述匹配单元包括:拦截器,用于在所述升级规则库中,查找与所述http请求关联的目标应用的升级规则,并对所述http请求和所述升级规则进行匹配,以确定所述http请求的目标服务器。

在本公开的一种示例性实施方式中,所述访问请求包括api网关请求,所述匹配单元包括:过滤器,用于在所述升级规则库中,查找与所述api网关请求关联的目标应用的升级规则,并对所述api网关请求和所述升级规则进行匹配,以确定所述api网关请求的目标服务器。

根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种请求处理方法。

根据本公开的第五方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种请求处理方法。

本公开具有以下有益效果:

根据本示例性实施方式中的请求处理方法、请求处理装置、请求处理系统、计算机可读存储介质和电子设备,可以在接收到客户端的访问请求时,在预先配置的升级规则库中,查找与访问请求关联的目标应用的升级规则,并通过对访问请求和目标应用的升级规则进行匹配,确定访问请求的目标服务器,从而将访问请求发送至目标服务器,以通过目标服务器处理上述访问请求,其中,目标服务器包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器。一方面,通过确定访问请求的目标服务器,可以将访问请求发送至对应的服务器,如升级服务器或未升级服务器,不影响应用升级期间用户的正常操作,避免在应用升级上线出现问题时进行回滚或者重新测试、上线的可能,提高了应用的运行稳定性;另一方面,通过预先配置升级规则,可以简化应用升级的流程,并且操作人员可以自行选择应用升级时间,提高了应用升级的效率和灵活性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本示例性实施方式所应用的一种请求处理系统的架构图;

图2示出本示例性实施方式中一种配置管理单元的界面示意图;

图3示出本示例性实施方式中一种升级规则的发布示意图;

图4示出本示例性实施方式中所应用的另一种请求处理系统的架构图;

图5示出本示例性实施方式中一种请求处理方法的流程图;

图6示出本示例性实施方式中一种请求处理方法的子流程图;

图7示出本示例性实施方式中另一种请求处理方法的流程图;

图8示出本示例性实施方式中一种请求处理装置的结构框图;

图9示出本示例性实施方式中一种用于实现上述方法的计算机可读存储介质;

图10示出本示例性实施方式中一种用于实现上述方法的电子设备。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

图1示出了可以应用本公开的示例性实施方式中的技术方案的示例性系统架构的示意图。

如图1所示,请求处理系统100可以包括:客户端110和服务端120,其中,服务端120包括:接收单元121、规则管理单元122、匹配单元123和目标服务器124。客户端110是发起访问请求的用户使用的终端设备,例如可以是电脑、手机等,客户端110可以通过网络130与服务端120进行连接,并向服务端120发送访问请求,服务端120可以用于接收和处理客户端发送的访问请求。具体而言,在服务端120中,接收单元121可以用于接收客户端的访问请求,规则管理单元122可以用于存储预先配置的升级规则库中的全部升级规则,匹配单元123可以用于在升级规则库中,查找与访问请求关联的目标应用的升级规则,并对访问请求和目标应用的升级规则进行匹配,以确定访问请求的目标服务器,目标服务器124是用于处理访问请求的后台服务器。本示例性实施方式中,目标服务器124可以包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器,其中,目标应用是与客户端的访问请求关联的微服务应用,与目标应用相比,升级应用可以是一种更为完善的软件,例如,可以是修复了目标应用中部分漏洞的应用程序,或者也可以是增加了新功能的应用程序。

应该理解,图1中的客户端、服务端,如接收单元、规则管理单元、匹配单元和目标服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端和服务端,例如服务端中的目标服务器可以是由多个服务器组成的服务器集群等。

在一种可选的实施方式中,规则管理单元122可以包括配置管理单元和分布式配置中心。其中,配置管理单元是一种提供规则配置和存储服务的程序环境,可以用于存储预先配置的升级规则库中的升级规则;分布式配置中心可以是一种支持多环境(或多分组)的分布式系统,可以用于在发布升级规则库中的任意一个或多个升级规则时,缓存上述任意一个或多个升级规则,以使匹配单元根据上述任意一个或多个升级规则查找与访问请求关联的目标应用的升级规则。例如,参考图2所示,用户可以在如图2所示的配置管理单元的界面中配置各微服务应用的升级规则,在完成配置后,可以选择配置管理单元界面中的升级规则发布功能完成升级规则的一键发布,同时,可以根据升级规则中需要进行升级的业务系统的系统信息、系统密钥,以及分布式配置中心的域名和其创建的命名空间等生成url(uniformresourcelocator,统一资源定位器),然后通过http协议(hypertexttransferprotocol,超文本传输协议)中的put方法封装请求参数执行推送请求,将升级规则推送至分布式配置中心,使得匹配单元可以直接从分布式配置中心中查找与访问请求关联的目标应用的升级规则。

通过在分布式配置中心缓存发布的升级规则,可以提高确定目标应用的升级规则的速度,进而提高访问请求的处理效率;同时,由于用户可以在配置管理平台中预先配置升级规则,可以选择合适的时机发布升级规则,使得应用升级前的准备工作和发布工作相互独立,操作人员可以选择任意时间进行应用升级,因此,可以提高应用升级的灵活性和便利性。

进一步的,参考图3所示,按照配置管理单元中存储数据的内容和各模块的职能,配置管理单元可以包括系统管理子单元、规则管理子单元和升级规则发布子单元。其中,系统管理子单元中可以存储要升级的微服务应用中一个或多个业务系统的系统信息,例如系统编号、系统名称、系统负责人、操作人及操作时间、当前版本号等属性信息;规则管理子单元可以存储升级规则,具体的可以依据微服务应用的业务内容等进行设置;升级规则发布子单元可以用于发布要升级的业务系统的系统信息和规则信息,例如,可以包括本次发布的升级任务的任务名称、要升级的业务系统的系统信息和其对应的升级规则信息。在进行升级规则发布时,可以通过升级规则发布子单元将要升级的业务系统的系统信息和规则信息通过http请求推送至分布式配置中心。

在一种可选的实施方式中,客户端的访问请求可以包括http请求,即通过客户端上安装的应用程序发起的访问请求。此时,匹配单元可以包括拦截器,用于在升级规则库中,查找与http请求关联的目标应用的升级规则,并对该http请求和升级规则进行匹配,确定http请求的目标服务器。本示例性实施方式中,拦截器可以通过struts2(一种基于mvc设计模式的web应用框架)生成,可以在动作执行之前或之后对某个对象实施拦截。

在一种可选的实施方式中,客户端的访问请求也可以是api网关(apigataway)请求,即通过系统边界上提供给外部访问内部接口服务的统一入口接收到的访问请求。此时,匹配单元可以包括过滤器,用于在升级规则库中,查找与api网关请求关联的目标应用的升级规则,并对api网关请求和升级规则进行匹配,确定api网关请求的目标服务器。

图4示出了本示例性实施方式中另一种请求处理系统的示意图,如图所示,请求处理系统100可以包括:客户端110、服务端120和域名解析节点140。客户端110可以用于向服务端120发送访问请求,域名解析节点140可以用于根据访问请求的域名等信息将访问请求发送至服务端120,服务端120可以用于接收和处理访问请求。如图所示,服务端120还可以包括:虚拟ip地址节点410、第一网关节点420、过滤器430、升级服务器440、未升级服务器450,以及反向代理服务器460、第二网关节点470、拦截器480。其中,虚拟ip地址节点410可以根据访问请求的类型,如http请求或api网关请求,将访问请求发送至对应的节点;第一网关节点420和第二网关节点470可以用于将访问请求按照对应的请求类型转发至对应的匹配单元,如过滤器或拦截器;过滤器430可以用于确定接收到的api网关请求与目标应用的升级规则是否匹配,并确定api网关请求的目标服务器;反向代理服务器460可以是nginx代理服务器(一种高性能的http服务器/反向代理服务器及电子邮件代理服务器),可以用于对访问请求进行转发处理;拦截器480可以用于确定接收到的http请求与目标应用的升级规则是否匹配,并确定http请求的目标服务器。

当客户端120向服务端120发送访问请求时,域名解析节点410可以通过解析访问请求,确定访问请求的目标地址,并通过网络等将访问请求传输至服务端120。虚拟ip地址节点410可以根据访问请求的类型,将api网关请求发送至第一网关节点430,以及将http请求发送至反向代理服务器460,并执行以下处理:

在第一网关节点420接收到api网关请求后,可以将api网关请求发送至过滤器430,使过滤器430确定api网关请求和目标应用的升级规则是否匹配,并在确定api网关请求和目标应用的升级规则匹配时,将api网关请求发送至升级服务器440以进行处理,在确定api网关请求和目标应用的升级规则不匹配时,将api网关请求发送至未升级服务器450进行处理。

在反向代理服务器460接收到http请求后,可以根据升级服务器和未升级服务器的负载状况确定当前负载较低的服务器,并将http请求发送至负载较低的服务器对应的第二网关节点470。第二网关节点470可以将接收到的http请求发送至拦截器480,使拦截器480确定http请求和目标应用的升级规则是否匹配,并在确定http请求和目标应用的升级规则匹配时,将http请求发送至升级服务器440进行处理,在确定http请求和目标应用的升级规则不匹配时,将http请求发送至未升级服务器450进行处理。

通过上述请求处理系统,可以在接收单元接收到访问请求时,通过匹配单元确定访问请求的目标服务器,如升级服务器和未升级服务器,以通过目标服务器处理上述访问请求,实现了应用升级的灵活部署,并且在应用升级过程中,可以维持应用的正常使用。

随着业务场景的不断增多,有时候需要按照不同的规则对同一个微服务应用进行升级,例如,根据访问用户所在的地区,会先对某个特定地区的用户做应用升级,之后再对其他用户做全量升级,即对面向全部用户的微服务应用进行升级。传统方法中,可以将升级规则配置在原有的业务逻辑代码中进行应用升级,在这种方式下,应用升级仍然要面临停止服务的困境,影响用户的正常使用,并且由于更改了原有代码逻辑的内容,在测试过程中每修改一次代码,便需要测试整个代码逻辑的正确性,升级效率较低,并且维护成本也很高。

鉴于前述的一个或多个问题,本公开的示例性实施方式还提供了一种应用于请求处理系统的请求处理方法。图5示出了该请求处理方法的一种流程,可以包括以下步骤s510~s540:

步骤s510,接收客户端发送的访问请求。

其中,访问请求可以是用户通过客户端发送的获取某种业务内容的请求,该访问请求根据业务内容可以包括多种类型,例如,访问请求可以是用户访问某种资源的请求,也可以是用户使用应用程序进行的特定业务申请,如网络资源的发布和使用等的请求。

当用户通过客户端发起访问请求时,服务器可以接收该访问请求,并对该访问请求进行解析,得到访问请求中的报文数据,并根据该报文数据确定发起请求的客户端的信息和客户端所请求访问的资源信息。

步骤s520,在预先配置的升级规则库中,查找与上述访问请求关联的目标应用的升级规则。

其中,升级规则库可以是一种规则数据库,可以用于存储操作人员预先配置的每个微服务应用的升级规则。对每个微服务应用而言,其可以包括多个业务系统,每个业务系统可以用于执行特定的任务,例如,一个微服务应用中可以包括查询业务系统、业务办理系统、客服系统等。此时,每个微服务应用的升级规则也可以包括一个或多个业务系统的升级规则。目标应用可以是客户端请求访问的微服务应用。

通过在预先配置的升级规则库中查找与访问请求关联的目标应用和该目标应用的升级规则,可以预先确定目标应用是否发生版本更新;同时,相比现有技术中修改业务逻辑代码以对应用进行升级的方法,通过配置升级规则可以简化应用升级的流程,避免在应用升级上线出现问题时进行回滚或者重新测试、上线的可能,提高了应用升级的效率。此外,由于微服务应用的全部升级规则是统一存储在升级规则库中的,可以实现全部升级规则的统一管理和维护,进一步提高了应用升级的效率。

在一种可选的实施方式中,在接收客户端的访问请求后,可以从分布式配置中心缓存的升级规则库中的任意一个或多个升级规则中查找与访问请求关联的目标应用的升级规则。通过从分布式配置中心获取目标应用的升级规则,可以提高获取升级规则的效率。

步骤s530,对访问请求和目标应用的升级规则进行匹配,确定访问请求的目标服务器。

其中,目标服务器可以包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器。升级服务器和未升级服务器均属于微服务应用服务端的组成部分,可以用于处理客户端的访问请求,区别在于,升级服务器可以通过升级应用对访问请求进行处理,而未升级服务器只能通过目标应用,也就是未升级的应用对访问请求进行处理。

在得到目标应用的升级规则后,可以对访问请求和目标应用的升级规则进行匹配,判断两者是否匹配,根据判断的结果确定访问请求的目标服务器。例如,可以根据访问请求的请求地址判断该地址与升级规则中的地址信息是否匹配,在确定匹配时,确定访问请求的目标服务器为升级服务器,反之,则确定访问请求的目标服务器为未升级服务器。需要说明的是,根据业务需求,目标应用的升级可以包括多种升级策略,例如可以是针对一个地区的用户进行局部升级,也可以是针对某种特定的资源类型进行升级。由此,访问请求与目标应用的升级规则是否匹配也可以根据访问请求的地址与升级规则的地址是否匹配实现,也可以根据访问请求所请求访问的资源内容与升级规则中的资源内容是否匹配实现,本示例性实施方式对此不做特殊限定。

在一种可选的实施方式中,参考图6所示,步骤s530可以通过以下步骤s610~s630实现:

步骤s610,解析访问请求的请求参数,并确定该请求参数与升级规则是否匹配。其中,请求参数可以是访问请求中用于确定目标服务器的关键信息,根据升级规则的具体内容可以是不同的参数信息,例如,在按照地区配置的升级规则中,请求参数可以是访问请求的地址信息。

通过解析访问请求的请求参数,可以提取出访问请求中与升级规则相关联的请求参数,将其与升级规则进行匹配,得到匹配结果。

步骤s620,在确定请求参数与目标应用的升级规则匹配时,确定访问请求的目标服务器为升级服务器。

当访问请求的请求参数与目标应用的升级规则匹配时,说明访问请求符合升级规则的配置要求,可以采用升级后的微服务应用对访问请求进行处理,因此,可以确定访问请求的目标服务器为升级服务器。

步骤s630,在确定请求参数与目标应用的升级规则不匹配时,确定访问请求的目标服务器为未升级服务器。

当访问请求的请求参数与目标应用的升级规则不匹配时,说明访问请求不符合升级规则的配置要求,仅允许采用升级前的微服务应用对访问请求进行处理,因此,可以确定访问请求的目标服务器为未升级服务器。

通过上述步骤s610~s630,可以根据访问请求与升级规则确定访问请求的目标服务器是升级服务器,还是未升级服务器,不仅满足了应用的升级需求,也可以满足用户的正常访问,提高了应用的运行稳定性。

根据客户端发送访问请求的方式,访问请求可以包括http请求和api网关请求中的任意一种,而对于不同类型的访问请求,确定访问请求的目标服务器的方式也可以是不同的。例如,对于上述http请求,即通过客户端上安装的应用程序发起的访问请求,可以通过分布式配置中心读取目标应用的升级规则,并获取目标应用各业务系统中与升级规则相关的参数信息,将其与http请求中的请求参数进行匹配,来确定http请求的目标服务器;再例如,对于上述api网关请求,即通过系统边界上提供给外部访问内部接口服务的统一入口接收到的访问请求,可以通过远程过程服务调用请求服务,从分布式配置中心读取目标应用的升级规则,以及目标应用各业务系统中与升级规则相关的参数信息,将其与api网关请求中的请求参数进行匹配,确定api网关请求的目标服务器。

进一步的,在一种可选的实施方式中,当确定http请求的目标服务器为升级服务器后,可以根据升级服务器的域名,将http请求发送至升级服务器。具体的,可以将http请求的头部信息透传,按照路由的方式确定http请求的ip地址(internetprotocoladdress,互联网协议地址),将http请求发送至升级服务器。

在一种可选的实施方式中,当确定api网关请求的目标服务器为升级服务器后,可以根据升级服务器的分组名,将api网关请求发送至升级服务器。其中,分组名可以是升级服务器的唯一标识,可以由数字、字符等构成。例如,可以利用特定的远程过程调用协议的泛化调用技术将api网关请求发送至升级服务器。具体的,远程过程调用协议的泛化调用技术可以包括以下过程:

(1)实例化出泛化服务,创建一个用户配置对象,并设置用户配置对象的属性,包括类名,注册配置信息,协议类型,远程过程调用服务的升级服务器的分组名,并指定泛化调用标识为ture,然后调用用户配置对象,完成服务实例化。其中,升级服务器的分组名和远程过程调用服务请求的具体类型可以构成一个唯一标识,表示一个具体的远程过程调用服务,并且该唯一标识可以用哈希结构进行存储。

(2)从远程过程调用服务请求的消息对象中获取请求的方法名称,参数类型,参数值,将这些参数信息传递给实例化出的泛化服务,得到服务响应初始结果值。

(3)根据用户配置对象中的类对象名称,利用class.forname方法加载用户配置对象中的类对象,并初始化这个类对象,将得到的服务响应初始结果值转化为这个类对象,再将这个类对象转为对象,最后将响应结果返回到请求方。

在一种可选的实施方式中,在查找与上述访问请求关联的目标应用的升级规则时,如果未查找到目标应用的升级规则,说明目前未对目标应用进行升级,因此,可以确定访问请求的目标服务器为未升级服务器。

通过确定访问请求的目标服务器,可以区分访问请求所适用的处理服务器是升级服务器还是未升级服务器,确保应用升级时用户也可以正常访问目标应用。

步骤s540,将访问请求发送至目标服务器组,以通过目标服务器组处理该访问请求。

本示例性实施方式中,目标服务器可以包括升级服务器和未升级服务器,因此,访问请求可以通过升级服务器或未升级服务器进行处理,也就是说,即使在应用升级过程中,客户端的访问请求也可以正常接收及处理,系统的稳定性得以提高。

为了提高客户端的访问成功率,在一种可选的实施方式中,在通过目标服务器处理访问请求时,还可以执行以下方法:

当通过升级服务器处理访问请求发生异常时,将访问请求发送至未升级服务器,并通过未升级服务器处理访问请求。由此,即使在升级应用出现问题而不能正常处理访问请求时,也可以通过未升级服务器处理访问请求。通过这种方式,可以在升级应用上线后出现问题时,及时将访问请求切换至用未升级应用进行处理,保证了应用升级过程中用户的正常访问。

图7示出了本示例性实施方式中另一种请求处理方法的流程,如图所示,可以包括以下步骤s701~s711:

步骤s701,在服务端运行目标应用过程中,接收客户端发送的访问请求。其中,目标应用表示未升级前的应用程序。

服务端运行目标应用可以通过调用目标应用的包文件,如war包(一种通过javascript程序打包的文件),运行目标应用。

步骤s702,服务端获取分布式配置中心缓存的升级规则库中的升级规则,并查找出与访问请求关联的目标应用的升级规则。

步骤s703,服务端根据接收到的访问请求确定该访问请求的类型。例如,服务端可以根据访问请求的发送地址等确定访问请求的来源,从而确定访问请求的类型。

步骤s704,服务端确定访问请求为http请求。

步骤s705,服务端确定访问请求为api网关请求。

步骤s706,服务端确定http请求与目标应用的升级规则是否匹配,若匹配,执行步骤s708,若不匹配,将访问请求发送至目标应用,即未升级前的应用程序进行处理。

步骤s707,服务端确定api网关请求与目标应用的升级规则是否匹配,若匹配,执行步骤s709,若不匹配,将访问请求发送至目标应用,即未升级前的应用程序进行处理。

具体的,在步骤s706和步骤s707中,服务端确定访问请求与目标应用的升级规则是否匹配可以通过解析访问请求中的请求参数,如地址、端口号等,并将该请求参数与目标应用的升级规则进行匹配,来确定两者是否匹配。

步骤s708,服务端确定http请求的目标服务器为升级服务器,执行步骤s710,以通过升级服务器对http请求进行处理。

步骤s709,服务端确定api网关请求的目标服务器为升级服务器,执行步骤s711,以通过升级服务器对api网关请求进行处理。

步骤s710,通过升级服务器对http请求进行处理。

步骤s711,通过升级服务器对api网关请求进行处理。

在处理完成后,升级服务器可以将访问请求,如上述http请求或api网关请求的处理结果发送至客户端,以使其根据处理结果显示相应的页面或执行相应的操作。

综上,根据本示例性实施方式中的请求处理方法,可以在接收到客户端的访问请求时,在预先配置的升级规则库中,查找与访问请求关联的目标应用的升级规则,并通过对访问请求和目标应用的升级规则进行匹配,确定访问请求的目标服务器,从而将访问请求发送至目标服务器,以通过目标服务器处理上述访问请求,其中,目标服务器包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器。一方面,通过确定访问请求的目标服务器,可以将访问请求发送至对应的服务器,如升级服务器或未升级服务器,不影响应用升级期间用户的正常操作,避免在应用升级上线出现问题时进行回滚或者重新测试、上线的可能,提高了应用的运行稳定性;另一方面,通过预先配置升级规则,可以简化应用升级的流程,并且操作人员可以自行选择应用升级时间,提高了应用升级的效率和灵活性。

本示例性实施方式还提供了一种请求处理装置,可以应用于请求处理系统,参考图8所示,请求处理装置800可以包括:接收模块810,可以用于接收客户端发送的访问请求;查找模块820,可以用于在预先配置的升级规则库中,查找与访问请求关联的目标应用的升级规则;匹配模块830,可以用于对访问请求和目标应用的升级规则进行匹配,确定访问请求的目标服务器,目标服务器包括已部署目标应用的升级应用的升级服务器和未部署目标应用的升级应用的未升级服务器;发送模块840,可以用于将访问请求发送至目标服务器,并通过目标服务器处理访问请求。

在本公开的一种示例性实施方式中,在接收客户端发送的访问请求后,请求处理装置800还可以用于从分布式配置中心缓存的升级规则库中的任意一个或多个升级规则中查找与访问请求关联的目标应用的升级规则。

在本公开的一种示例性实施方式中,在查找与访问请求关联的目标应用的升级规则时,请求处理装置800还可以用于在未查找到目标应用的升级规则时,确定访问请求的目标服务器为未升级服务器。

在本公开的一种示例性实施方式中,匹配模块830可以用于解析访问请求的请求参数,并确定请求参数与升级规则是否匹配,在确定请求参数与目标应用的升级规则匹配时,确定访问请求的目标服务器为升级服务器,以及在确定请求参数与目标应用的升级规则不匹配时,确定访问请求的目标服务器为未升级服务器。

在本公开的一种示例性实施方式中,访问请求包括http请求,在确定访问请求的目标服务器为升级服务器后,发送模块840还可以用于根据升级服务器的域名,将http请求发送至升级服务器。

在本公开的一种示例性实施方式中,访问请求api网关请求,在确定访问请求的目标服务器为升级服务器后,发送模块840还可以用于根据升级服务器的分组名,将api网关请求发送至升级服务器,分组名为升级服务器的唯一标识。

在本公开的一种示例性实施方式中,在通过目标服务器处理访问请求时,发送模块840还可以用于当通过升级服务器处理访问请求发生异常时,将访问请求发送至未升级服务器,通过未升级服务器处理访问请求。

上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的方案细节内容可以参见方法部分的实施方式内容,因而不再赘述。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。

参考图9所示,描述了根据本公开的示例性实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品900可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

本公开的示例性实施方式还提供了一种能够实现上述方法的电子设备。下面参照图10来描述根据本公开的这种示例性实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。

如图10所示,电子设备1000可以以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030和显示单元1040。

其中,存储单元1020存储有程序代码,程序代码可以被处理单元1010执行,使得处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元1010可以执行图5至图7所示的方法步骤等。

存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(rom)1023。

存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例性实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开示例性实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1