一种host请求环境识别分配方法及装置 |
|||||||
申请号 | CN202410127080.0 | 申请日 | 2024-01-29 | 公开(公告)号 | CN118018477A | 公开(公告)日 | 2024-05-10 |
申请人 | 易方达基金管理有限公司; | 发明人 | 李桂英; 詹淑玲; 陈德洪; 肖峰; | ||||
摘要 | 本 发明 公开了一种host 请求 环境识别分配方法及装置,包括:创建第一对象和第二对象,根据所述第一对象和所述第二对象创建中转服务;根据所述中转服务对请求方的请求报文进行解析,并获取所述请求报文的基本信息;所述基本信息包括源I P、请求头、请求体和URI;根据所述基本信息和第一路由规则配置转发路由,并根据所述转发路由确定所述请求报文的目标地址;将组装好的请求报文转发到所述目标地址,并获取目标地址的应答报文,将所述应答报文返回给请求方。本发明通过根据第一对象和第二对象创建中转服务,从而根据中转服务对不同类型的请求报文进行解析,降低 挡板 维护成本,提高测试的便利性和时效性。 | ||||||
权利要求 | 1.一种host请求环境识别分配方法,其特征在于,包括: |
||||||
说明书全文 | 一种host请求环境识别分配方法及装置技术领域[0001] 本发明涉及路由匹配技术领域,尤其涉及一种host请求环境识别分配方法及装置。 背景技术[0002] 常见的请求识别是针对HTTP协议的,但是在实际应用中,系统由于历史原因常常存在多种协议,比如支付渠道,历史存量的支付渠道之间都是TCP协议,近几年新接入的支付渠道又是HTTP协议,现在的技术无法即支持HTTP协议的请求,又支持TCP协议的请求。 [0003] 现有的请求识别技术是通过识别请求的header或body中某个字段的值,或者识别请求的ur i或ur l来进行路由到目标服务。如果有多个不同的请求需要每个请求都加路由规则,但是往往一个环境中有成千上万个不同的请求,每个请求都需要加路由规则工作量巨大且维护和管理成本高。当多个环境共用一个挡板时,无法识别出同一个的接口请求是来源于哪个环境,无法区分出来源。 发明内容[0004] 本发明提供了一种host请求环境识别分配方法及装置,以解决现有请求识别在多环境共用挡板时无法识别请求来源,且路由机制匹配工作量大、维护和管理成本高的技术问题。 [0005] 为了解决上述技术问题,本发明提供了一种host请求环境识别分配方法,包括: [0006] 创建第一对象和第二对象,根据所述第一对象和所述第二对象创建中转服务; [0007] 根据所述中转服务对请求方的请求报文进行解析,并获取所述请求报文的基本信息;所述基本信息包括源IP、请求头、请求体和URI; [0008] 根据所述基本信息和第一路由规则配置转发路由,并根据所述转发路由确定所述请求报文的目标地址; [0009] 将组装好的请求报文转发到所述目标地址,并获取目标地址的应答报文,将所述应答报文返回给请求方。 [0010] 本发明通过根据第一对象和第二对象创建中转服务,从而根据中转服务对不同类型的请求报文进行解析,获取报文的基本信息,并进行路由配置,确定报文的目标地址,使得能对请求进行路由到真实环境或挡板环境,达到多套环境共用一套挡板时,部分请求走真实环境,部分请求走挡板环境的效果,降低挡板维护成本,提高测试的便利性和时效性。 [0011] 进一步的,所述根据所述基本信息和第一路由规则配置转发路由,并根据所述转发路由确定所述请求报文的目标地址,具体为: [0012] 根据所述基本信息确定路由转发要素,所述路由转发要素包括基本信息中的一个或多个要素; [0013] 确定所述请求报文的目标服务,所述目标服务包括IP和端口; [0014] 根据所述路由转发要素和所述目标服务确定所述请求报文的目标地址。 [0015] 进一步的,所述根据所述路由转发要素和所述目标服务确定所述请求报文的目标地址,具体为: [0016] 若所述转发要素与所述目标服务匹配时,则将所述目标服务的地址作为所述请求报文的目标地址; [0018] 若所述路由转发要素包括源IP和URI时,则根据URI指定源IP中的部分端口进行转发; [0019] 若所述路由转发要素包括源IP、URI和请求体时,则根据URI和请求体指定源IP中的指定端口对部分请求进行转发。 [0020] 进一步的,所述根据所述中转服务对请求方的请求报文进行解析,并获取所述请求报文的基本信息,具体为: [0021] 获取请求方的请求报文,识别所述请求报文的请求类型,并根据所述请求类型对所述请求报文进行解析; [0022] 若所述请求类型为HTTP请求,则根据所述第一对象获取所述请求报文的源IP、请求头和请求体; [0023] 若所述请求类型为TCP请求,则根据所述第二对象获取所述请求报文的获取TCP请求的源IP和请求体,并将所述请求体中的接口唯一标识字段值作为所述请求报文的URI。 [0024] 第二方面,本发明提供了一种host请求环境识别分配装置,包括:中转服务创建模块、解析模块、配置转发模块和应答模块; [0025] 所述中转服务创建模块,用于创建第一对象和第二对象,根据所述第一对象和所述第二对象创建中转服务; [0026] 所述解析模块,用于根据所述中转服务对请求方的请求报文进行解析,并获取所述请求报文的基本信息;所述基本信息包括源IP、请求头、请求体和URI; [0027] 所述配置转发模块,用于根据所述基本信息和第一路由规则配置转发路由,并根据所述转发路由确定所述请求报文的目标地址; [0028] 所述应答模块,用于将组装好的请求报文转发到所述目标地址,并获取目标地址的应答报文,将所述应答报文返回给请求方。 [0029] 进一步的,所述配置转发模块,具体用于: [0030] 根据所述基本信息确定路由转发要素,所述路由转发要素包括基本信息中的一个或多个要素; [0031] 确定所述请求报文的目标服务,所述目标服务包括IP和端口; [0032] 根据所述路由转发要素和所述目标服务确定所述请求报文的目标地址。 [0033] 进一步的,所述配置转发模块,还用于: [0034] 若所述转发要素与所述目标服务匹配时,则将所述目标服务的地址作为所述请求报文的目标地址; [0035] 若所述路由转发要素仅包括源IP时,则指定源IP中的所有接口均进行转发; [0036] 若所述路由转发要素包括源IP和URI时,则根据URI指定源IP中的部分端口进行转发; [0037] 若所述路由转发要素包括源IP、URI和请求体时,则根据URI和请求体指定源IP中的指定端口对部分请求进行转发。 [0038] 进一步的,所述解析模块,具体用于: [0039] 获取请求方的请求报文,识别所述请求报文的请求类型,并根据所述请求类型对所述请求报文进行解析; [0040] 若所述请求类型为HTTP请求,则根据所述第一对象获取所述请求报文的源IP、请求头和请求体; [0041] 若所述请求类型为TCP请求,则根据所述第二对象获取所述请求报文的获取TCP请求的源IP和请求体,并将所述请求体中的接口唯一标识字段值作为所述请求报文的URI。 [0042] 第三方面,本发明提供了一种计算机设备,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行所述的host请求环境识别分配方法。 [0044] 图1为本发明实施例提供的host请求环境识别分配方法的一种流程示意图; [0045] 图2为本发明实施例提供的host请求环境识别分配方法的另一种流程示意图; [0046] 图3为本发明实施例提供的host请求环境识别分配装置的一种结构示意图。 具体实施方式[0047] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 [0048] 实施例一 [0049] 请参照图1,图1为本发明实施例提供的host请求环境识别分配方法的一种流程示意图,包括步骤101至步骤104,具体如下: [0050] 步骤101:创建第一对象和第二对象,根据所述第一对象和所述第二对象创建中转服务; [0051] 在本实施例中,中转服务是所有请求报文的接收方,处理接收到的HTTP请求或TCP请求解析出请求中的源IP、请求头、请求体、请求URI,对于TCP协议的请求则将请求体中的接口唯一标识字段值作为URI,用于统一不同协议适用于同一套路由规则。 [0052] 在本实施例中,在Django框架的项目中创建一个第一对象,所述第一对象为request对象;通过request对象获取HTTP请求的源IP、请求头、请求体。在Django框架的项目中创建一个第二对象,所述第二对象为socket对象,通过socket获取TCP请求的源IP和请求体,解析出请求体中的接口唯一标识字段值作为此请求的URI。 [0053] 在本实施例中,通过根据第一对象和第二对象创建中转服务,从而根据中转服务对不同类型的请求报文进行解析,获取报文的基本信息,支持HTTP协议的请求,又支持TCP协议的请求,提高请求识别通用性。 [0054] 步骤102:根据所述中转服务对请求方的请求报文进行解析,并获取所述请求报文的基本信息;所述基本信息包括源IP、请求头、请求体和URI; [0055] 在本实施例中,启动中转服务,获取请求方的请求报文,并根据中转服务中的第一对象和第二对象对请求报文进行解析。 [0056] 请参照图2,图2为本发明实施例提供的host请求环境识别分配方法的另一种流程示意图。 [0057] 在本实施例中,所述根据所述中转服务对请求方的请求报文进行解析,并获取所述请求报文的基本信息,具体为: [0058] 获取请求方的请求报文,识别所述请求报文的请求类型,并根据所述请求类型对所述请求报文进行解析; [0059] 若所述请求类型为HTTP请求,则根据所述第一对象获取所述请求报文的源IP、请求头和请求体; [0060] 若所述请求类型为TCP请求,则根据所述第二对象获取所述请求报文的获取TCP请求的源IP和请求体,并将所述请求体中的接口唯一标识字段值作为所述请求报文的URI。 [0061] 步骤103:根据所述基本信息和第一路由规则配置转发路由,并根据所述转发路由确定所述请求报文的目标地址; [0062] 在本实施例中,根据第一路由规则配置文件中配置的路由规则转发请求报文。 [0063] 在本实施例中,所述根据所述基本信息和第一路由规则配置转发路由,并根据所述转发路由确定所述请求报文的目标地址,具体为: [0064] 根据所述基本信息确定路由转发要素,所述路由转发要素包括基本信息中的一个或多个要素; [0065] 确定所述请求报文的目标服务,所述目标服务包括IP和端口; [0066] 根据所述路由转发要素和所述目标服务确定所述请求报文的目标地址。 [0067] 在本实施例中,在路由规则配置文件中配置转发路由,所述配置文件中包含两部分,一部分是request,用于配置需要命中的路由转发要素,路由转发要素指的中转服务解析出的源IP、请求URI、请求体的某个字段,所述路由转发要素可以是其中的一个或多个,当多个时表示多个要素为且的关系。另一部分是proxy,用于指明转发的目标服务,包含目标服务的IP、端口。 [0068] 在本实施例中,所述根据所述路由转发要素和所述目标服务确定所述请求报文的目标地址,具体为: [0069] 若所述转发要素与所述目标服务匹配时,则将所述目标服务的地址作为所述请求报文的目标地址; [0070] 若所述路由转发要素仅包括源IP时,则指定源IP中的所有接口均进行转发; [0071] 若所述路由转发要素包括源IP和URI时,则根据URI指定源IP中的部分端口进行转发; [0072] 若所述路由转发要素包括源IP、URI和请求体时,则根据URI和请求体指定源IP中的指定端口对部分请求进行转发。 [0073] 在本实施例中,一个请求进来后通过判断是否与request中的要素进行匹配,匹配时则根据proxy的目标地址进行转发。 [0074] 在本实施例中,当request的路由转发要素只有源IP时,则指定源IP的所有接口请求均转发。当request的路由转发要素是源IP+请求URI时,则实现了对不同的接口进行转发。当request的路由转发要素是源IP+请求URI+请求体的某个字段时,则实现了对指定源IP的指定接口的部分请求进行了转发。因此当多个环境共用一个挡板时,可以识别出同一个接口请求是来源于哪个环境,然后按照路由规则进行转发到真实环境或挡板环境。 [0075] 步骤104:将组装好的请求报文转发到所述目标地址,并获取目标地址的应答报文,将所述应答报文返回给请求方。 [0076] 在本实施例中,根据原样对解析过的请求进行组装,并将组装好的请求报文发送到对应的目标地址。 [0077] 在本实施例中,接收目标地址中真实环境或挡板环境返回的数据,并原样返回给请求方。 [0078] 在本实施例中,通过根据第一对象和第二对象创建中转服务,从而根据中转服务对不同类型的请求报文进行解析,获取报文的基本信息,并进行路由配置,确定报文的目标地址,适合所有HTTP和TCP服务接口的应用,使得能对请求进行路由到真实环境或挡板环境,达到多套环境共用一套挡板时,部分请求走真实环境,部分请求走挡板环境的效果,降低挡板维护成本,提高测试的便利性和时效性。 [0079] 请参照图3,图3为本发明实施例提供的host请求环境识别分配装置的一种结构示意图,包括:中转服务创建模块301、解析模块302、配置转发模块303和应答模块304; [0080] 所述中转服务创建模块301,用于创建第一对象和第二对象,根据所述第一对象和所述第二对象创建中转服务; [0081] 所述解析模块302,用于根据所述中转服务对请求方的请求报文进行解析,并获取所述请求报文的基本信息;所述基本信息包括源IP、请求头、请求体和URI; [0082] 所述配置转发模块303,用于根据所述基本信息和第一路由规则配置转发路由,并根据所述转发路由确定所述请求报文的目标地址; [0083] 所述应答模块304,用于将组装好的请求报文转发到所述目标地址,并获取目标地址的应答报文,将所述应答报文返回给请求方。 [0084] 在本实施例中,所述配置转发模块,具体用于: [0085] 根据所述基本信息确定路由转发要素,所述路由转发要素包括基本信息中的一个或多个要素; [0086] 确定所述请求报文的目标服务,所述目标服务包括IP和端口; [0087] 根据所述路由转发要素和所述目标服务确定所述请求报文的目标地址。 [0088] 在本实施例中,所述配置转发模块,还用于: [0089] 若所述转发要素与所述目标服务匹配时,则将所述目标服务的地址作为所述请求报文的目标地址; [0090] 若所述路由转发要素仅包括源IP时,则指定源IP中的所有接口均进行转发; [0091] 若所述路由转发要素包括源IP和URI时,则根据URI指定源IP中的部分端口进行转发; [0092] 若所述路由转发要素包括源IP、URI和请求体时,则根据URI和请求体指定源IP中的指定端口对部分请求进行转发。 [0093] 在本实施例中,所述解析模块,具体用于: [0094] 获取请求方的请求报文,识别所述请求报文的请求类型,并根据所述请求类型对所述请求报文进行解析; [0095] 若所述请求类型为HTTP请求,则根据所述第一对象获取所述请求报文的源IP、请求头和请求体; [0096] 若所述请求类型为TCP请求,则根据所述第二对象获取所述请求报文的获取TCP请求的源IP和请求体,并将所述请求体中的接口唯一标识字段值作为所述请求报文的URI。 [0097] 本发明实施例还提供了一种计算机设备,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行所述的host请求环境识别分配方法。 [0098] 本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现所述的host请求环境识别分配方法。 [0099] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 |