请求处理方法、中间层、电子设备、存储介质及程序产品与流程

文档序号:33365208发布日期:2023-03-07 22:18阅读:21来源:国知局
请求处理方法、中间层、电子设备、存储介质及程序产品与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种请求处理方法、中间层、电子设备、存储介质及程序产品。


背景技术:

2.目前,企业可能会同时提供有多种前端服务,且通过成百上千个后端微服务同时为这多种前端服务提供接口。比如,对于a企业,其可能提供有一个商品售卖app(application,应用程序),提供有一个商品售卖小程序,还提供有一个打车app,而这三个前端服务复用该企业的多个后端微服务。
3.而在实际应用过程中,前端对数据结构的需求与后端提供的数据结构往往会存在分歧。为此,在大量后端微服务同时为多个前端服务提供接口的架构中,目前通常会在前端和后端之间设置一个中间层来进行处理前述问题。
4.目前,常规的中间层实现方式是通过纯人工编码来实现的。但是,对于纯人工编码的方案,开发和维护成本高,且在需要对中间层进行更新时,往往需要对整个代码全部进行变更,更新难度大。


技术实现要素:

5.本技术实施例的目的在于提供一种请求处理方法、中间层、电子设备、存储介质及程序产品,用以解决上述问题。
6.本技术实施例公开了ts1、一种请求处理方法,应用于中间层,所述中间层包括请求转换器、过程处理器和响应转换器;所述方法包括:所述请求转换器在接收到前端请求后,根据所述前端请求中的标识信息,使用所述请求转换器中设定的各处理方式中,与所述标识信息对应的第一处理方式生成所述前端请求到后端接口的第一映射;所述过程处理器使用所述标识信息对应的第二处理方式,根据所述第一映射将所述前端请求发送给后端接口,并输出第二映射;所述第二映射包括所述过程处理器接收到的响应的内容,以及该响应与返回该响应对应的后端接口的对应关系;所述响应转换器对所述第二映射进行处理,得到符合前端服务需求格式的最终响应,并返回给所述前端服务。
7.在上述实现过程中,通过请求转换器、过程处理器和响应转换器这些模块化的部件实现了对于前端请求到后端接口的映射,以及后端响应到前端服务的反馈,在需要进行中间层更新时,只需更新相应模块内的实现代码即可,从而相对于纯人工编码的方案而言,开发和维护成本更低,更新难度更小。
8.ts2、如ts1所述的方法,其中,所述请求转换器中设定的处理方式包括以下至少之一:第一json(javascript object notation,javascript对象表示法)方式、dsl(domain specific language,领域特定语言)方式、json和dsl结合方式;
9.所述第一json方式为:通过预先定义的各所述后端接口的参数来源和转换形式,按照所述前端请求中各参数的来源和设定的转换形式生成所述第一映射;
10.所述第一dsl方式为:通过预先定义的dsl模板对所述前端请求进行处理后,依据处理结果生成所述第一映射;所述dsl模板为预先定义好数据处理逻辑的模板;
11.所述json和dsl结合方式为:按照所述标识信息对应的参数与处理方式对应关系,将所述前端请求中对应json方式的参数按照所述第一json方式处理,将所述前端请求中对应dsl方式的参数按照所述第一dsl方式处理。
12.应理解,在实际应用过程中,还存在着基于graphql(graph query language,一种针对graph(图状数据)进行查询特别有优势的查询语言)框架来进行后端接口聚合的实现方案。但是,graphql框架虽然提供了一种标准框架,但该框架对于所能适配的后端接口具有较高的要求,需要后端接口符合该框架的规范要求。因此,并非所有的后端接口都可以纳入graphql框架来进行后端接口聚合,场景适用性有限。而相对于graphql框架实现的方案,本技术的上述实现方案,在请求转换器、过程处理器和响应转换器所构成的框架下,可以采用json方式、或dsl方式、或json和dsl结合方式来实现对于前端请求的自定义处理,而json和dsl对于后端接口并无门槛限制,因此对于所有的后端接口都可以被本技术的处理框架所容纳,从而可以适用于更为广泛的场景中。且在需要更新后端接口时,只需更新相应的json定义和dsl模板即可,方案的灵活性较强。
13.ts3、如ts2所述的方法,其中,所述请求转换器中设定的处理方式还包括第一默认方式;所述第一默认方式为:不对所述前端请求中的参数进行格式转换,直接依据所述前端请求生成所述前端请求到后端接口的第一映射。
14.应理解,在实际应用过程中,存在某些前端请求无需进行格式转换或者依赖关系处理,就可以直接传递给相应的后端接口的情况。对此,上述实现方式中,通过在请求转换器中设定第一默认方式,从而可以满足这种情况下前端请求的转发需求,从而使得本技术实施例的方案具有更强大的适应性,可以适用于更为广泛的场景中。
15.ts4、如ts1所述的方法,其中,所述第二处理方式为:所述过程处理器中设定的各处理方式中,与所述标识信息对应的处理方式;所述过程处理器中设定的各处理方式包括以下至少之一:第二默认方式、第二dsl方式;
16.所述第二默认方式为:按照所述第一映射,将所述前端请求透传至对应的后端接口;
17.所述第二dsl方式为:通过预先定义的dsl模板对所述第一映射进行处理;所述第一映射中包括有所述前端请求的内容。
18.在上述实现过程中,通过第二默认方式可以满足简单场景下所需的前端请求直接透传需求;而通过第二dsl方式,则可以利用dsl所具有的可以灵活定义数学计算、函数计算、配置获取等能力的特性,通过dsl模板实现对于具有接口前后依赖、服务编排等诉求的复杂业务场景的接口调用处理,满足复杂业务场景的需求。
19.ts5、如ts1所述的方法,其中,所述响应转换器包括json响应转换器和响应组装器;所述响应转换器对所述第二映射进行处理,得到符合前端服务需求格式的最终响应,并返回给所述前端服务,包括:所述json响应转换器使用所述json响应转换器设定的各处理方式中,与所述标识信息对应的第三处理方式对所述第二映射进行处理;所述响应组装器使用所述响应组装器设定的各处理方式中,与所述标识信息对应的第四处理方式对所述json响应转换器处理后的第二映射进行处理,并返回给所述前端服务;其中:所述json响应
转换器设定的各处理方式包括:第三默认方式和第二json方式;所述响应组装器设定的各处理方式包括:第四默认方式和第三dsl方式;
20.所述第三默认方式为:将所述第二映射透传至所述响应组装器;所述第二json方式为:通过预先定义的各所述前端服务的转换形式,按照所述转换形式对所述第二映射中的响应的内容进行转换,并将转换后的各响应聚合生成一个响应发至所述响应组装器;
21.所述第四默认方式为:将所述json响应转换器传来的内容作为所述最终响应返回给所述前端服务;所述第三dsl方式为:通过预先定义的dsl模板对所述json响应转换器传来的内容进行处理后返回给所述前端服务。
22.在上述实现过程中,通过json响应转换器和响应组装器的两层共4种处理方式的组合,即可以实现从后端到前端反馈响应的直接透传、json方式转换、dsl方式处理、json方式加dsl方式处理共四种处理模式,从而可以满足各种业务场景中,后端接口到前端服务所需响应需求,从而可以很灵活地适用于各类业务场景中,支持各类业务的使用。
23.ts6、如ts1所述的方法,其中,所述标识信息为所述前端请求中的统一资源定位符。
24.在本技术实施例中,每一种前端请求其所对应的各过程中所需的处理方式都是预先设定好的,而url(uniform resource locator,统一资源定位符)是请求获取的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。因此,基于前端请求中的url,可以准确实现对于前端请求类型的区分,从而以前端请求中的url作为标识信息,无需改动前端请求的请求格式,实现代价更小,便于方案的推广应用。
25.ts7、如ts1至ts6任一项所述的方法,其中,所述第一json方式的定义文件和/或所述dsl模板通过热更新方式配置于所述中间层。
26.在上述实现过程中,通过热更新方式将json方式的定义文件和/或dsl模板推送至中间层进行配置,这就使得中间层本身不需要重启或部署,即可使配置实时生效,极大节约了时间成本。
27.ts8、一种中间层,包括:请求转换器,用于在接收到前端请求后,根据所述前端请求中的标识信息,使用所述请求转换器中设定的各处理方式中,与所述标识信息对应的第一处理方式生成所述前端请求到后端接口的第一映射;过程处理器,用于使用所述标识信息对应的第二处理方式,根据所述第一映射将所述前端请求发送给后端接口,并输出第二映射;所述第二映射包括所述过程处理器接收到的响应的内容,以及该响应与返回该响应对应的后端接口的对应关系;响应转换器,用于对所述第二映射进行处理,得到符合前端服务需求格式的最终响应,并返回给所述前端服务。
28.上述提供的中间层,通过请求转换器、过程处理器和响应转换器这些模块化的部件实现了对于前端请求到后端接口的映射,以及后端响应到前端服务的反馈,在需要进行中间层更新时,只需更新相应模块内的实现代码即可,从而相对于纯人工编码的方案而言,开发和维护成本更低,更新难度更小。
29.ts9、如ts8所述的中间层,其中,所述请求转换器中设定的处理方式包括以下至少之一:第一json方式、第一dsl方式、json和dsl结合方式;
30.所述第一json方式为:通过预先定义的各所述后端接口的参数来源和转换形式,按照所述前端请求中各参数的来源和设定的转换形式生成所述第一映射;
31.所述第一dsl方式为:通过预先定义的dsl模板对所述前端请求进行处理后,依据处理结果生成所述第一映射;所述dsl模板为预先定义好数据处理逻辑的模板;
32.所述json和dsl结合方式为:按照所述标识信息对应的参数与处理方式对应关系,将所述前端请求中对应json方式的参数按照所述第一json方式处理,将所述前端请求中对应dsl方式的参数按照所述第一dsl方式处理。
33.上述提供的中间层实现结构,相对于graphql框架实现的方案,在请求转换器、过程处理器和响应转换器所构成的框架下,可以采用json方式、或dsl方式、或json和dsl结合方式来实现对于前端请求的自定义处理,而json和dsl对于后端接口并无门槛限制,因此对于所有的后端接口都可以被本技术的处理框架所容纳,从而可以适用于更为广泛的场景中。且在需要更新后端接口时,只需更新相应的json定义和dsl模板即可,方案的灵活性较强。
34.ts10、如ts9所述的中间层,其中,所述请求转换器中设定的处理方式还包括第一默认方式;
35.所述第一默认方式为:不对所述前端请求中的参数进行格式转换,直接依据所述前端请求生成所述前端请求到后端接口的第一映射。
36.ts11、如ts8所述的中间层,其中,所述第二处理方式为:所述过程处理器中设定的各处理方式中,与所述标识信息对应的处理方式;所述过程处理器中设定的各处理方式包括以下至少之一:第二默认方式、第二dsl方式;
37.所述第二默认方式为:按照所述第一映射,将所述前端请求透传至对应的后端接口;
38.所述第二dsl方式为:通过预先定义的dsl模板对所述第一映射进行处理;所述第一映射中包括有所述前端请求的内容。
39.ts12、如ts8所述的中间层,其中,所述响应转换器包括:json响应转换器,用于使用所述json响应转换器设定的各处理方式中,与所述标识信息对应的第三处理方式对所述第二映射进行处理;响应组装器,用于使用所述响应组装器设定的各处理方式中,与所述标识信息对应的第四处理方式对所述json响应转换器处理后的第二映射进行处理,并返回给所述前端服务;其中:
40.所述json响应转换器设定的各处理方式包括:第三默认方式和第二json方式;所述响应组装器设定的各处理方式包括:第四默认方式和第三dsl方式;
41.所述第三默认方式为:将所述第二映射透传至所述响应组装器;所述第二json方式为:通过预先定义的各所述前端服务的转换形式,按照所述转换形式对所述第二映射中的响应的内容进行转换,并将转换后的各响应聚合生成一个响应发至所述响应组装器;
42.所述第四默认方式为:将所述json响应转换器传来的内容作为所述最终响应返回给所述前端服务;所述第三dsl方式为:通过预先定义的dsl模板对所述json响应转换器传来的内容进行处理后返回给所述前端服务。
43.ts13、如ts8所述的中间层,其中,所述标识信息为所述前端请求中的统一资源定位符。
44.ts14、如ts8至ts13任一项所述的中间层,其中,所述第一json方式的定义文件和/或所述dsl模板通过热更新方式配置于所述中间层。
45.ts15、如ts8至ts13任一项所述的中间层,其中,所述中间层还包括连接池;所述连接池中针对不同后端接口限制有同一时刻的最大连接数。
46.在上述提供的中间层结构中,通过限制连接池中针对不同后端接口同一时刻的最大连接数,可以实现连接池中分服务进行隔离,这样,当个别后端接口出现延迟增高等问题时,由于其最大连接数被限制,从而可以减少对其他后端接口的调用以及中间层自身的稳定性造成的影响,保证了中间层的可靠性。
47.ts16、一种电子设备,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述存储器中存储有用于实现前述任一种的中间层中的所述请求转换器、所述过程处理器和所述响应转换器的程序代码;所述处理器用于调用所述存储器中存储的程序代码,以实现上述任一种的请求处理方法。
48.ts17、一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的请求处理方法。
49.ts18、一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一种的请求处理方法。
附图说明
50.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
51.图1为本技术实施例提供的一种中间层的基本架构示意图;
52.图2为本技术实施例提供的一种可选的中间层架构示意图;
53.图3为本技术实施例提供的一种较具体的中间层架构示意图;
54.图4为本技术实施例提供的一种更具体的中间层架构示意图;
55.图5为本技术实施例提供的一种请求处理方法的基本流程示意图;
56.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
57.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
58.实施例一:
59.为了满足需求越来越复杂的业务场景的需求,本技术实施例中一种中间层,以及一种可以通过该中间层实现的请求处理方法。可以参见图1所示,图1为本技术实施例中提供的一种中间层的基本架构示意图,中间层包括:请求转换器、过程处理器和响应转换器。
60.其中,请求转换器、过程处理器和响应转换器均可以通过软件程序写入具有数据处理能力的电子设备中实现。
61.请求转换器、过程处理器和响应转换器可以是在一个实体电子设备中实现,也可以是在多个不同的电子设备中实现,在本技术实施例中不做限制。当请求转换器、过程处理器和响应转换器在不同的电子设备中实现时,这些电子设备本身即构成了本技术实施例中
的请求转换器、过程处理器和响应转换器。
62.应理解,本技术实施例中所述的中间层可以是包含有请求转换器、过程处理器和响应转换器在内的多个程序模块的集合,即中间层可以理解为多个程序模块构成的模块化虚拟装置。此时,这些程序模块能以软件或固件的形式存储于存储器中或固化在实体设备的操作系统中。
63.此外,本技术实施例中的中间层也可以是包含有布设有请求转换器、过程处理器和响应转换器在内的多个程序模块的实体设备的集合,即中间层也可以理解为多个布设有相应程序模块、可以实现相应功能的实体设备集(当所有程序模块都布设在一个实体设备中时,中间设备即为该实体设备)。例如,中间层可以为网关,或者服务器,或者网关集群,或者服务器集群等。
64.在本技术实施例中,请求转换器用于接收前端请求,并在接收到前端请求后,根据前端请求中的标识信息,使用请求转换器中设定的各处理方式中,与标识信息对应的第一处理方式生成前端请求到后端接口的第一映射。
65.过程处理器,用于使用该前端请求中携带的标识信息对应的第二处理方式,根据第一映射将前端请求发送给后端接口,并输出第二映射。其中,第二映射是指包括有过程处理器接收到的响应的内容,以及该响应与返回该响应对应的后端接口的对应关系的信息。
66.响应转换器,用于对过程处理器输出的第二映射进行处理,得到符合前端服务需求格式的最终响应,并返回给该前端服务。
67.应理解,通常而言,响应转换器所需返回最终响应的前端服务是发送前端请求的前端服务。但是,若某些业务场景下规定了新的所需返回响应的目标前端服务(比如前端请求中指定了所需返回响应的目标前端服务),那么响应转换器会向所确定的目标前端服务返回响应。
68.需要注意的是,前端请求是指前端服务发来的请求。后端接口是指,后端微服务所提供的调用接口。
69.在本技术实施例中,请求转换器、过程处理器和响应转换器中可以预先设定一种或多种处理方式,而工程师可以预先定义好各种前端请求分别在请求转换器、过程处理器和响应转换器中所需进行的处理方式,并根据标识信息与前端请求分别在请求转换器、过程处理器和响应转换器中所需进行的处理方式相关联,这样,前端服务在发送前端请求时,只需在前端请求中携带上相应的标识信息,中间层的请求转换器、过程处理器和响应转换器即可按照相应的处理方式进行处理,从而保证业务的正常运转。
70.示例性的,在本技术实施例中,可以将前端请求中的url作为标识信息,从而在不改变现有前端请求的请求格式的情况下,实现对于各类前端请求在中间层的各模块中所需的处理方式的确定。
71.应理解,以上仅是本技术实施例可行的一种示例方式,不作为本技术实施例的限制。事实上,还可以不以url作为标识信息,而是通过在前端请求中增加用于携带标识信息的字段的方式,将特制的标识信息携带在该字段中,从而使得中间层的请求转换器、过程处理器和响应转换器得以确定所需采用的处理方式。
72.在本技术实施例中,参见图2所示的中间层架构图,请求转换器中设定的处理方式可以包括以下至少之一:
73.第一json方式、第一dsl方式、json和dsl结合方式。
74.其中,第一json方式是指:通过预先定义的各后端接口的参数来源和转换形式,按照前端请求中各参数的来源和设定的转换形式生成第一映射。
75.应理解,在本技术实施例中,为了实现第一json方式,请求转换器中需要配置相应的json配置文件(后文称之为json方式的定义文件),用于定义各后端接口的参数来源和转换形式,从而得以实现上述第一json方式。
76.第一dsl方式是指:通过预先定义的dsl模板对前端请求进行处理后,依据处理结果生成第一映射。
77.应理解,dsl是一种专注在特定任务或者领域上,并放弃与该领域无关的功能的语言,因此通过dsl可以实现丰富的如数学计算、函数计算、配置获取等能力。
78.在实际应用中,dsl通常通过定义dsl模板来实现,在dsl模板中,会预先定义好数据处理逻辑、处理函数以及调用关系等信息,以实现所需的功能。
79.在本技术实施例中,针对不同的业务,不同的前端请求,工程师可以预先定义好不同的dsl模板,以供调用。
80.json和dsl结合方式是指:按照标识信息对应的参数与处理方式对应关系,将前端请求中对应json方式的参数按照第一json方式处理,将前端请求中对应dsl方式的参数按照第一dsl方式处理。
81.应理解,在前端请求中往往会携带有多种参数。对于这些参数而言,可能有些参数仅需要根据json方式进行简单的格式转换后,即可映射至相应的后端接口。而对于部分参数而言,则可能涉及到接口依赖等情况,需要通过dsl方式,调用相应的dsl模板进行处理。在本技术实施例中,对于对应json和dsl结合方式的前端情况,工程师应预先定义好前端情况中哪些参数对应需要采用第一json方式进行处理,哪些参数对应需要采用第一dsl方式进行处理。
82.需要注意的是,可选的,本技术实施例中请求转换器中设定的处理方式可以包含以上3种,从而可以满足更为丰富的业务场景需求。
83.还需要注意的是,在实际应用过程中,存在某些前端请求无需进行格式转换或者依赖关系处理,就可以直接传递给相应的后端接口的情况。对此,在本技术实施例中,参见图2所示,请求转换器中设定的处理方式还可以包含第一默认方式。第一默认方式是指:不对前端请求中的参数进行格式转换,直接依据前端请求生成前端请求到后端接口的第一映射。这样,通过第一默认方式即可满足前端请求无需进行格式转换或者依赖关系处理的情况下,前端请求的转发需求,从而使得本技术实施例的方案具有更强大的适应性,可以适用于更为广泛的场景中。
84.在本技术实施例中,参见图2所示,过程处理器中设定的各处理方式可以包括以下至少之一:第二默认方式、第二dsl方式。其中:
85.第二默认方式是指:按照第一映射,将前端请求透传至对应的后端接口。
86.第二dsl方式是指:通过预先定义的dsl模板对第一映射进行处理。
87.应理解,在本技术实施例中,第一映射中可以包括有前端请求的内容,同时还包括前端请求中各参数对应的后端接口。
88.还应理解,在本技术实施例中,所有的dsl模板均是由工程师根据业务需要预先进
行配置的。
89.在本技术实施例中,参见图3所示,响应转换器可以包括json响应转换器和响应组装器。其中:
90.json响应转换器用于使用json响应转换器内预先设定的各处理方式中,与前端请求中的标识信息对应的第三处理方式对过程处理器输出的第二映射进行处理。
91.响应组装器则用于使用响应组装器内预先设定的各处理方式中,与前端请求中的标识信息对应的第四处理方式对json响应转换器处理后的第二映射进行处理,并返回给前端服务。
92.需要理解的是,在本技术实施例中,json响应转换器内预先设定的各处理方式可以包括:第三默认方式和第二json方式。而响应组装器内预先设定的各处理方式可以包括:第四默认方式和第三dsl方式。其中:
93.第三默认方式是指:将第二映射直接透传至响应组装器。
94.第二json方式是指:通过预先定义的各前端服务的转换形式,按照转换形式对所述第二映射中的响应的内容进行转换,并将转换后的各响应聚合生成一个响应发至响应组装器。
95.应理解,第二json方式和第一json方式在实现形式上是类似的,均可以通过预先配置好定义文件的方式实现转换规则的定义。但是,第二json方式是用于将后端接口的响应转换为前端服务所需的格式,而第一json方式是用于将前端服务发来的前端请求转换为后端接口所需的格式,两者实现的目的是相反的。
96.需要注意的是,在本技术实施例中,将转换后的各响应聚合生成一个响应的操作,可以是将各响应打包形成一个响应数据,从而给发送至响应组装器。
97.第四默认方式是指:将json响应转换器传来的内容作为最终响应返回给前端服务。
98.第三dsl方式是指:通过预先定义的dsl模板对json响应转换器传来的内容进行处理后返回给前端服务。
99.应理解,提供给上述方式的组合,可以实现第二映射的直接透传返回至前端服务,也可以实现按照json方式对第二映射进行格式转换、聚合后返回至前端服务,还可以实现按照dsl方式对第二映射进行复杂处理后返回给前端服务,还可以实现先按照对第二映射进行格式转换、聚合后,再利用dsl方式进行复杂处理后返回给前端服务,从而可以满足各种业务场景的响应需求。
100.还应理解,在本技术实施例中,参见图3所示,所有的dsl模板可以统一放置在模板库中,通过dsl引擎供请求转换器、过程处理器和响应组装器调用。
101.需要注意的是,在本技术实施例中,json响应转换器和响应组装器可以是在一个实体电子设备中实现,也可以是在不同的电子设备中实现,在本技术实施例中不做限制。当json响应转换器和响应组装器在不同的电子设备中实现时,这些电子设备本身即构成了本技术实施例中的json响应转换器和响应组装器。
102.在一个前端请求的处理过程中,不同模块(请求转换器、过程处理器和响应组装器)所调用的dsl模板可以是不同,每个模块具体所需调用的dsl模板由工程师根据前端请求(不同前端请求反映了不同的业务场景需求)预先设定。
103.在本技术实施例中,各json方式所对应的定义文件可以采用热更新方式配置到中间层的各模块中。此外,各json方式所对应的定义文件也可以采用其他配置方式,如停机配置等配置方式配置到中间层的各模块中。
104.类似的,本技术实施例中的各dsl模板也可以采用热更新方式配置到中间层中。此外,各dsl模板也可以采用其他配置方式,如停机配置等配置方式配置到中间层中,在本技术实施例中不做限制。
105.应理解,热更新是一种实现在不停机的状态下对系统进行更改的技术,例如windows可以在不重启的状态下完成补丁的更新、web服务器在不重启的前提下完成对数据和文件的替换等都是通过热更新技术实现的经典实例。
106.而在本技术实施例中,通过采用热更新技术来实现各json方式所对应的定义文件、各dsl模板在中间层上的配置,可以使得中间层本身不需要重启或部署,即可使配置实时生效,极大节约了时间成本。
107.可选的,在本技术实施例中,中间层内连接池中针对不同后端接口可以限制有同一时刻的最大连接数。这样,通过对不同后端接口同一时刻的最大连接数进行限制,就使得当个别后端接口出现延迟增高等问题时,由于其最大连接数被限制,从而可以减少对其他后端接口的调用以及中间层自身的稳定性造成的影响,保证了中间层的可靠性。
108.示例性的,假设一个后端接口以每秒100次的频率持续收到连接请求,如果这个后端接口的响应时间是2s(注意,在后端接口返回响应前,所建立的连接将始终是保持着的),那么理论上任一时刻该后端接口会有200个保持着的连接。但如果这个接口响应时间延长到4s,那么任一时刻该后端接口就会有400个保持着的连接。而维持更多的连接意味着占用更多的系统资源(比如内存、cpu(central processing unit/processor,中央处理器)、网络连接数等),所以在不限制后端接口的最大连接数的情况下,一旦某个后端接口出现延迟增高等问题时,其所保持的连接数量将大幅增加,从而严重挤占其他后端接口所能利用的系统资源,影响中间层对其他后端接口的调用以及中间层自身的稳定性。而通过对不同后端接口同一时刻的最大连接数进行限制,当个别后端接口出现延迟增高等问题时,其所能造成的最大影响就是占用其最大连接数对应的系统资源,从而作为承载众多服务的中间层而言,受到的影响将变得可控,从而可以减少对其他后端接口的调用以及中间层自身的稳定性造成的影响,保证了中间层的可靠性。
109.在本技术实施例中,参见图4所示,中间层还可以具有一个跟踪器和一个分类器,其中:
110.跟踪器作为中间层与服务端的接口模块,用于接收前端服务和输出后端接口的响应。
111.分类器则主要用作进行请求数量限制,以控制中间层所能处理的前端请求的数据,将超过设定数量的前端请求通过跟踪器返回给前端服务。
112.示例性的,假设中间层最大运行同时处理n个前端请求,当某一时刻分类器接收到了m(m大于n)个前端请求时,即将前n个前端请求转发至请求转换器,而将后m减n个前端请求通过跟踪器返回给前端服务。
113.应理解,返回后m减n个前端请求时,返回的可以不是前端请求本技术,而是预先设定的诸如“当前访问繁忙,请稍后重新访问”这类表征访问失败的消息。
114.本技术实施例所提供的中间层,通过请求转换器、过程处理器和响应转换器这些模块化的部件实现了对于前端请求到后端接口的映射,以及后端响应到前端服务的反馈,在需要进行中间层更新时,只需更新相应模块内的实现代码即可,从而相对于纯人工编码的方案而言,开发和维护成本更低,更新难度更小。
115.此外,通过结合json方式、dsl方式、默认方式,实现了对于前端请求的自定义处理,而json和dsl对于后端接口并无门槛限制,因此对于所有的后端接口都可以被本技术的处理框架所容纳,从而可以适用于更为广泛的场景中。且在需要更新后端接口时,只需更新相应的json定义和dsl模板即可,方案的灵活性较强。
116.此外,本技术实施例中通过热更新方式将json方式的定义文件和/或dsl模板推送至中间层进行配置,这就使得中间层本身不需要重启或部署,即可使配置实时生效,极大节约了时间成本。
117.此外,本技术实施例中通过限制连接池中针对不同后端接口同一时刻的最大连接数,可以实现连接池中分服务进行隔离,这样,当个别后端接口出现延迟增高等问题时,由于其最大连接数被限制,从而可以减少对其他后端接口的调用以及中间层自身的稳定性造成的影响,保证了中间层的可靠性。
118.实施例二:
119.本实施例在实施例一提供的中间层的基础上,还提供了一种可以应用于该中间层上的请求处理方法,请参见图5所示,包括:
120.s501:请求转换器在接收到前端请求后,根据前端请求中的标识信息,使用请求转换器中设定的各处理方式中,与标识信息对应的第一处理方式生成前端请求到后端接口的第一映射。
121.s502:过程处理器使用标识信息对应的第二处理方式,根据第一映射将前端请求发送给后端接口,并输出第二映射。
122.第二映射包括所述过程处理器接收到的响应的内容,以及该响应与返回该响应对应的后端接口的对应关系。
123.s503:响应转换器对第二映射进行处理,得到符合前端服务需求格式的最终响应,并返回给前端服务。
124.在本技术实施例中,各步骤的具体实现方式与实施例一中所介绍的中间层的实现方式相对应,因此下面仅针对部分重要内容进行介绍,未介绍的内容可参见实施例一中的方案进行相应执行,在此不再赘述。
125.可选的,在本实施例中,请求转换器中设定的处理方式可以包括以下至少之一:第一json方式、第一dsl方式、json和dsl结合方式。其中:
126.第一json方式为:通过预先定义的各后端接口的参数来源和转换形式,按照前端请求中各参数的来源和设定的转换形式生成第一映射;
127.第一dsl方式为:通过预先定义的dsl模板对前端请求进行处理后,依据处理结果生成第一映射;dsl模板为预先定义好数据处理逻辑的模板。
128.json和dsl结合方式为:按照标识信息对应的参数与处理方式对应关系,将前端请求中对应json方式的参数按照第一json方式处理,将前端请求中对应dsl方式的参数按照第一dsl方式处理。
129.可选的,在本实施例中,请求转换器中设定的处理方式还可以包括第一默认方式;第一默认方式为:不对前端请求中的参数进行格式转换,直接依据前端请求生成前端请求到后端接口的第一映射。
130.可选的,在本实施例中,第二处理方式为:过程处理器中设定的各处理方式中,与标识信息对应的处理方式。而过程处理器中设定的各处理方式可以包括以下至少之一:第二默认方式、第二dsl方式。其中:
131.第二默认方式为:按照第一映射,将前端请求透传至对应的后端接口。
132.第二dsl方式为:通过预先定义的dsl模板对第一映射进行处理。第一映射中包括有前端请求的内容。
133.可选的,在本实施例中,响应转换器对第二映射进行处理,得到符合前端服务需求格式的最终响应,并返回给前端服务的过程可以包括:
134.json响应转换器使用json响应转换器设定的各处理方式中,与标识信息对应的第三处理方式对第二映射进行处理;
135.响应组装器使用响应组装器设定的各处理方式中,与标识信息对应的第四处理方式对json响应转换器处理后的第二映射进行处理,并返回给前端服务。其中:
136.json响应转换器设定的各处理方式包括:第三默认方式和第二json方式;响应组装器设定的各处理方式包括:第四默认方式和第三dsl方式。
137.第三默认方式为:将第二映射透传至响应组装器。
138.第二json方式为:通过预先定义的各前端服务的转换形式,按照转换形式对第二映射中的响应的内容进行转换,并将转换后的各响应聚合生成一个响应发至响应组装器。
139.第四默认方式为:将json响应转换器传来的内容作为最终响应返回给前端服务。
140.第三dsl方式为:通过预先定义的dsl模板对json响应转换器传来的内容进行处理后返回给前端服务。
141.可选的,在本实施例中,标识信息为前端请求中的url。
142.可选的,在本实施例中,第一json方式的定义文件和/或dsl模板可以是通过热更新方式配置于中间层中的。
143.需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
144.实施例三:
145.本实施例在实施例一的基础上,以图4所示的中间层结构为例,为本技术做进一步示例说明。
146.当跟踪器的入口处理模块捕捉到前端请求后,入口处理模块将前端请求发送给分类器,分类器进行数量限制,将限制数量的前端请求发送至请求转换器。将超出限制部分的前端请求转发至跟踪器的出口处理模块,返回访问失败的结果。
147.请求转换器根据当前待处理的前端请求中的url,确定目标处理方式,并按照该目标处理方式进行处理。目标处理方式为第一默认方式、第一json方式、第一dsl方式、json和dsl结合方式中的一种。
148.示例性的,比如当前待处理的前端请求中的url指示请求转换器需要进行dsl处理,那么调用该url对应的请求转换器环节的dsl模板对该前端请求进行处理,生成前端请
求到后端接口的第一映射。
149.过程处理器,根据该url,确定目标处理方式,并按照该目标处理方式调用后端接口进行处理。过程处理器中的目标处理方式为第二默认方式或第二dsl方式。
150.示例性的,比如url指示过程处理器中需要进行dsl处理,那么调用该url对应的过程处理器环节的dsl模板,根据dsl模板以及第一映射,进行后端接口的调用和处理,得到包括过程处理器接收到的响应的内容,以及该响应与返回该响应对应的后端接口的对应关系的第二映射。
151.应理解,在本技术实施例中,过程处理器可以通过remote caller(远程调用程序)和config holder(配置固定器)实现对于后端接口的调用,但不作为限制。
152.json响应转换器根据该url,确定是需要通过json方式将第二映射转换为前端服务所需的格式并聚合,还是直接将第二映射透传给响应组装器。进而根据确定的处理方式进行处理。
153.响应组装器根据该url,确定是需要进行默认的透传处理,还是需要进行dsl处理。若是进行默认的透传处理,则直接将json响应转换器传来的数据透传至跟踪器的出口处理模块,发送给前端服务即可。若是需要进行dsl处理,则调用该url对应的响应组装器环节的dsl模板,根据该dsl模板对json响应转换器传来的数据进行处理,然后将处理结果传输至跟踪器的出口处理模块,发送给前端服务。
154.在以上实现过程中,中间层可以实现对于所有后端接口的兼容聚合,可扩展性强,场景实用性强;通过提供一种json方式,实现参数和响应的快速转换、映射;利用dsl模板,适配复杂业务场景下的接口前后依赖、服务编排等诉求。
155.实施例四:
156.本实施例提供了一种电子设备,参见图6所示,其包括处理器601、存储器602以及通信总线603。其中:
157.通信总线603用于实现处理器601和存储器602之间的连接通信。
158.存储器602中存储有用于实现本技术实施例所提供的中间层中的请求转换器、过程处理器和响应转换器的程序代码。
159.处理器601用于调用存储器602中存储的程序代码,以实现上述实施例二中的请求处理方法。
160.可以理解,图6所示的结构仅为示意,电子设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
161.还需要注意的是,本实施例所提供的电子设备可以是服务器、主机、网关等具有数据处理功能的电子设备。
162.本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、u盘、sd(secure digital memory card,安全数码卡)卡、mmc(multimedia card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一和/或实施例二中的请求处理方法。在此不再赘述。
163.本实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例一和/或实施例二中的请求处理方法。在此也不再赘述。
164.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
165.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
166.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
167.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
168.在本文中,多个是指两个或两个以上。
169.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1