CN104423982A - 请求的处理方法和处理设备 - Google Patents
请求的处理方法和处理设备 Download PDFInfo
- Publication number
- CN104423982A CN104423982A CN201310379490.6A CN201310379490A CN104423982A CN 104423982 A CN104423982 A CN 104423982A CN 201310379490 A CN201310379490 A CN 201310379490A CN 104423982 A CN104423982 A CN 104423982A
- Authority
- CN
- China
- Prior art keywords
- service
- request
- mentioned
- treatment facility
- called
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract 3
- 238000000034 method Methods 0.000 claims abstract 7
- 238000004904 shortening Methods 0.000 abstract 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种请求的处理方法和处理设备。其中,该方法包括:处理设备接收待执行的请求,其中,请求至少用于指示对同一个服务进行多次调用;处理设备响应请求判断当前待调用的服务执行的是读操作还是写操作;若处理设备判断出当前待调用的服务执行的是读操作,则处理设备判断本地是否存储有与当前待调用的服务对应的返回结果;若处理设备判断出本地存储有返回结果,则获取存储的返回结果;若处理设备判断出本地没有存储返回结果,则调用服务以执行读操作,获取返回结果,并将获取到的返回结果存储在处理设备本地。本申请解决了现有技术中请求的处理时间较长的问题,达到了加快请求的处理时间的技术效果。
Description
技术领域
本申请涉及互联网领域,具体而言,涉及一种请求的处理方法和处理设备。
背景技术
在当今的互联网通信领域中,系统的规模通常越做越大,层次越来越多,从而互联网服务的提供者所提供的服务逐渐呈现出原子化的特点,也就是说,要求新开发的服务相对解耦地接入到现有系统中。
然而,原子化的设计趋势常常会造成一个较为复杂的请求需要由较多的原子化方法的组合来完成,而原子化的方法中又常常存在着较多的远程调用的情况,例如对于数据库的调用或者分布式同步的请求,也即在一个较为复杂的请求需要调用多个服务,并在多个服务中重复多次地执行读操作,导致请求的处理时间随着其复杂程度和包括的原子化方法的数量的增加而大为延长。
例如图1所示的包括4个原子化方法FA、FB、FC和FD的请求,其中,每一原子化方法均包括“通过查询条件查询数据库(Query A)”的服务。在现有技术中,对于这一请求的处理方法通常是顺序执行4个原子化方法,且重复地执行上述查询服务,从而造成了重复的时间开销。
针对上述问题,目前尚未提出有效地解决方案。
发明内容
本申请的主要目的在于提供一种请求的处理方法和处理设备,以至少解决现有技术中请求的处理时间较长的问题。
根据本申请的一个方面,提供了一种请求的处理方法,包括:处理设备接收待执行的请求,其中,上述请求至少用于指示对同一个服务进行多次调用;上述处理设备响应上述请求判断当前待调用的上述服务执行的是读操作还是写操作;若上述处理设备判断出上述当前待调用的上述服务执行的是上述读操作,则上述处理设备判断本地是否存储有与上述当前待调用的上述服务对应的返回结果;若上述处理设备判断出本地存储有上述返回结果,则获取存储的上述返回结果;若上述处理设备判断出本地没有存储上述返回结果,则调用上述服务以执行上述读操作,获取上述返回结果,并将获取到的上述返回结果存储在上述处理设备本地。
可选地,在上述处理设备响应上述请求判断上述当前待调用的上述服务执行的是读操作还是写操作之后,上述请求的处理方法还包括:若判断出上述当前待调用的上述服务执行的是上述写操作,则上述处理设备调用上述服务以执行上述写操作,并在上述处理设备本地清空与上述服务对应的信息。
可选地,在上述处理设备上使用网格节点结构表来记录上述返回结果,其中,上述网格节点结构表包括以下至少之一:用于调用上述服务的输入参数、上述服务的调用类型、上述服务的描述信息、上述请求的标识、调用上述服务所影响的数据的描述信息。
可选地,上述处理设备响应上述请求判断上述当前待调用的上述服务执行的是读操作还是写操作包括:上述处理设备查询所述待执行请求对应的配置文件以判断上述当前待调用的上述服务执行的是读操作还是写操作,其中,上述配置文件记录有上述服务执行的是读操作还是写操作,上述配置文件至少包括以下至少之一:上述服务的调用类型、上述服务的描述信息、调用上述服务所影响的数据的描述信息、以及用于指示是否将上述处理设备从本地以外获取的上述返回结果记录到上述网格节点结构表中的信息。
可选地,在上述处理设备中清空与上述服务对应的信息包括:查找与上述服务的上述配置文件对应的中的网格节点结构表,其中,与上述服务的上述配置文件对应的中的网格节点结构表中的描述信息与上述服务的上述配置文件中的描述信息相同;删除查找到的上述网格节点结构表中的数据。
可选地,在上述处理设备对上述请求处理完成之后,上述请求的处理方法还包括:删除存储在上述处理设备本地的上述返回结果。
根据本申请的另一方面,提供了一种请求的处理设备,包括:接收单元,用于接收待执行的请求,其中,上述请求至少用于指示对同一个服务进行多次调用;第一判断单元,用于响应上述请求判断当前待调用的上述服务执行的是读操作还是写操作;第二判断单元,用于在上述第一判断单元判断出上述当前待调用的上述服务执行的是上述读操作时,判断本地是否存储有与上述当前待调用的上述服务对应的返回结果;第一执行单元,用于在上述第二判断单元判断出本地存储有上述返回结果时,获取存储的上述返回结果;以及用于在上述第二判断单元判断出本地没有存储上述返回结果时,调用上述服务以执行上述读操作,获取上述返回结果,并将获取到的上述返回结果存储在上述处理设备本地。
可选地,上述请求的处理设备还包括:第二执行单元,用于在判断出上述当前待调用的上述服务执行的是上述写操作时,调用上述服务以执行上述写操作,并在上述处理设备本地清空与上述服务对应的信息。
可选地,在上述处理设备上使用网格节点结构表来记录上述返回结果,其中,上述网格节点结构表包括以下至少之一:用于调用上述服务的输入参数、上述服务的调用类型、上述服务的描述信息、上述请求的标识、调用上述服务所影响的数据的描述信息。
可选地,上述第一判断单元包括:查询模块,用于查上述待执行请求对应的询配置文件以判断上述当前待调用的上述服务执行的是读操作还是写操作,其中,上述配置文件记录有上述服务执行的是读操作还是写操作,上述配置文件至少包括以下至少之一:上述服务的调用类型、上述服务的描述信息、调用上述服务所影响的数据的描述信息、以及用于指示是否将上述处理设备从本地以外获取的上述返回结果记录到上述网格节点结构表中的信息。
可选地,上述第二执行单元包括:检索模块,用于查找与上述服务的上述配置文件对应的中的网格节点结构表,其中,与上述服务的上述配置文件对应的中的网格节点结构表中的描述信息与上述服务的上述配置文件中的描述信息相同;删除模块,用于删除查找到的上述网格节点结构表中的数据。
可选地,上述请求的处理设备还包括:删除单元,用于在上述处理设备对上述请求处理完成之后,删除存储在上述处理设备本地的上述返回结果。
在本申请实施例中,由于采用从本地获取存储的返回结果来代替从外部获取的被调用的服务对应的返回结果,从而显著地缩短了回应请求所需的返回结果的获取路径,进而达到了降低请求的处理时间的技术效果。
此外,在本申请实施例中,由于在对一次请求的回应过程中,对于其中需要调用的相同或相似的服务,免除了这些服务对应的进程在运行中重复执行读操作以从外部设备,例如远端的第三方服务器进行数据调用,从而还达到了降低类似于上述服务器的网络节点的处理压力的技术效果,进而达到了提高作为本申请技术方案的实施环境的计算机网络的处理效率的技术效果。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是一种包括多个原子化方法的请求的示意图;
图2是根据本申请实施例的一种可选的请求的处理设备的示意图;
图3是根据本申请实施例的另一种可选的请求的处理设备的示意图;
图4是根据本申请实施例的又一种可选的请求的处理设备的示意图;
图5是另一种包括多个原子化方法的请求的示意图;
图6是根据本申请实施例的又一种可选的请求的处理设备的示意图;
图7是根据本申请实施例的又一种可选的请求的处理设备的示意图;
图8是根据本申请实施例的又一种可选的请求的处理设备的示意图;
图9是根据本申请实施例的一种可选的请求的处理方法的示意图;
图10是根据本申请实施例的另一种可选的请求的处理方法的示意图;
图11是根据本申请实施例的又一种可选的请求的处理方法的示意图;
图12是根据本申请实施例的又一种可选的请求的处理方法的示意图;
图13是根据本申请实施例的又一种可选的请求的处理方法的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
本申请实施例提供了一种可选的请求的处理设备。如图2所示,该设备可以包括:
1)接收单元202,用于接收待执行的请求,其中,请求至少用于指示对同一个服务进行多次调用;
2)第一判断单元204,用于响应请求判断当前待调用的服务执行的是读操作还是写操作;
3)第二判断单元206,用于在第一判断单元判断出当前待调用的服务执行的是读操作时,判断本地是否存储有与当前待调用的服务对应的返回结果;
4)第一执行单元208,用于在第二判断单元判断出本地存储有返回结果时,获取存储的返回结果;以及用于在第二判断单元判断出本地没有存储返回结果时,调用服务以执行读操作,获取返回结果,并将获取到的返回结果存储在处理设备本地。
进而,为更清楚地描述本申请技术方案,且作为一种可选的实施方式,如图3所示,第一执行单元208可以包括:
1)第一执行模块302,用于在第二判断单元判断出本地存储有返回结果时,获取存储的返回结果;以及
2)第二执行模块304,用于在第二判断单元判断出本地没有存储返回结果时,调用服务以执行读操作,获取返回结果,并将获取到的返回结果存储在处理设备本地。
根据本申请实施例提供的请求的处理设备,可以通过接收单元202接收待执行的请求。
首先应当明确的是,本申请技术方案所要解决的问题之一是提供一种设备对接收到的请求作出回应,其中,上述请求可以有多种具体的表现形式,例如客户端对网页进行访问的请求、网页对网络资源进行调用的请求、服务器对数据库中的数据进行读写操作的请求等,本申请对此不作限定。在另一方面,上述请求的生成也可以有多种方式,例如,对于客户端而言,一个请求通常可以由系统对某一个页面元素上的点击动作的识别生成,然而在本申请的一些实施例中,请求也可以由系统中定时任务的启动生成,此外,例如系统守护进程的单个线程开始执行也可以视为一个请求,本申请对此不作限定,当然,对于服务器和其他设备而言,请求也可以有多种来源,本申请在此不作累述。
进一步地,上述请求可以至少用于指示对同一个服务进行多次调用,例如,其可以如图1所示的,至少用于指示对分别存在于四个原子化方法FA、FB、FC和FD中的同一服务——“通过查询条件查询数据库(Query A)”进行多次调用。当然,以上只是一种示例,本申请对于上述服务的具体表现方式不作任何限定,例如,其还可以表现为执行更为复杂的操作的线程或进程。
值得注意的是,在本申请实施例中,上述用于接收或截留待执行的请求的接收单元202,既可以与传统的用于对请求进行回应的处理装置相结合,从而形成为一体,也可以独立于系统中的其他装置之外,单独用于执行本申请技术方案中所称的处理操作,而无关于数据调用这一操作的执行以及后续的针对调用的数据的其他处理操作。对于本申请技术方案中的上述处理设备及其组成单元的具体表现形式,本申请不作任何限定。
进一步地,在接收单元202接受到待执行的请求后,区别于现有技术方案中直接对该请求进行回应的方式,根据本申请实施例提供的处理设备,在第一判断单元204中,可以响应于该请求,判断当前待调用的服务执行的是读操作还是写操作,其中,待调用的服务执行的读操作可以表示本地从外部读取数据,待调用的服务执行的写操作可以表示本地向外部写出数据。例如,对于图1所示的请求而言,其所要调用的服务执行的操作是“通过查询条件查询数据库(Query A)”,从而可以判断出该待调用的服务执行的是读操作,进而可以通知给第二判断单元206。
在上述场景下,也即,在判断出当前待调用的服务执行的是读操作时,根据本申请实施例提供的处理设备,在第二判断单元206中,可以进一步地通过处理设备判断本地是否存储有与当前待调用的服务对应的返回结果。
一般而言,在本申请实施例中,在处理设备的本地,对于如图1所示的需要对同一服务进行多次调用的请求,响应于该请求,对上述服务进行的多次调用,通常是分前后顺序执行的,从而上述的“当前”待调用的服务,应当理解为作为顺序执行的多次调用中的任意一次的调用对象的服务。
在以上描述的基础上,可以通过第二判断单元206判断本地是否存在与当前待调用的服务对应的返回结果,例如,对于如图1所示的响应于请求被调用的进行读操作的查询服务,其对应的返回结果可以为数据表A中的一个数据项,从而,在第二判断单元206中,可以对本地是否存储有该数据项进行判断,若判断结果为存在该数据项,则可以进一步通知给第一执行模块302,若判断结果为不存在该数据项,则可以进一步通知给第二执行模块304,其中,可选地,该判断可以通过本地数据管理对本地数据的检索来实现。当然,以上只是一种示例,在本申请的一些实施例中,还可以通过其他方式对本地是否存有上述返回结果进行判断,上述返回结果也可以不具体表现为一个数据项,等,本申请对此不作限定。
根据本申请实施例提供的处理设备,若在第二判断单元206中判断出本地未存储有上述返回结果,则可以在第二执行模块304中,调用服务以执行读操作,获取返回结果。一般而言,在本申请实施例中,上述调用服务以执行读操作并获取返回结果的过程,通常可以直接采用现有技术中可行的任何类似的进程,以达到本申请所要达到的对请求进行回应的目的。然而在此基础上,在本申请实施例中,还可以进一步地将获取到的返回结果存储在处理设备本地,从而存储在处理设备本地的返回结果可以在后续的操作中,替代存储在本地以外的返回结果,作为后续调用的同一服务的新的获取路径。
例如,对于如图1所示的响应于请求被调用的进行读操作的查询服务,其首次被调用时,例如图1所示的上述请求所调用的原子化方法FA中被调用,在处理设备的本地可以不存在与该查询服务对应的返回结果,例如数据库中符合查询条件的数据项A,从而可以在第二判断单元206中判断出本地未存储有上述返回结果,进而作为对于该请求的回应,在第二执行模块304中,可以直接调用该查询服务执行相应的读操作,以从处理设备的本地以外的位置,例如存储在第三方服务器上的数据库中获取数据项A,并将获取的数据项A存储在处理设备的本地。
当然,这只是一种示例,本申请对此不作任何限定,例如,具体地,本申请对于获取到的返回结果在处理设备本地的对应的存储设备、存储位置以及所采用的数据管理方式不作限定,等,例如上述返回结果可以存储于本地的缓存中,也可以存储于其他类型的存储器。
根据本申请实施例提供的处理设备,若在第二判断单元206中判断出本地存储有上述返回结果,则可以在第一执行模块302中,获取存储的该返回结果。其中,区别于现有技术中在对请求进行回应时,通常同一化地直接调用服务执行读操作并获取返回结果,在本申请实施例中,根据在第二判断单元206中判断得出的结果,在本地已存有该返回结果时,例如在该返回结果已预先从本地以外获取并存储在本地的情形下,则可以不再继续调用该服务执行从外部获取返回结果的读操作,而是在第一执行模块302中,从本地直接获取预存的该返回结果。
例如,对于如图1所示的响应于请求被调用的进行读操作的查询服务,在结合上述第二判断单元206,从处理设备的本地以外获取查询服务对应的返回结果,并将该返回结果存储至处理设备的本地的基础上,在同一查询服务再次被调用时,例如在上述请求所调用的原子化方法FA之后的FB中被再次调用,由于本地已存在与该查询服务对应的返回结果,从而可以在第二判断单元206中判断出本地存储有上述返回结果,例如数据库中符合查询条件的数据项A,从而可以在第一执行模块302中从本地获取存储的数据项A。
从以上描述可以看出,通过本申请实施例提供的处理设备,在第一执行模块302中,由于采用从本地获取存储的返回结果来代替从外部获取的被调用的服务对应的返回结果,从而显著地缩短了回应请求所需的返回结果的获取路径,进而达到了降低请求的处理时间的技术效果,并且由于在对一次请求的回应过程中,对于其中需要调用的相同或相似的服务,免除了这些服务对应的进程在运行中重复执行读操作以从外部设备,例如远端的第三方服务器进行数据调用,从而还达到了降低类似于上述服务器的网络节点的处理压力的技术效果,进而达到了提高作为本申请技术方案的实施环境的计算机网络的处理效率的技术效果。
在另一方面,如图4所示,作为一种可选的实施方式,在根据第一判断单元204对当前待调用的服务执行的是读操作还是写操作进行判断之后,上述处理设备还可以包括与第一判断单元204耦合的:
1)第二执行单元402,用于在判断出当前待调用的服务执行的是写操作时,调用服务以执行写操作,并在处理设备本地清空与服务对应的信息。
一般而言,在本申请实施例中,上述的处理设备调用服务以执行写操作的过程,通常可以直接采用现有技术中可行的任何类似的进程,以达到本申请所要达到的对请求进行回应的目的,其中,上述写操作可以表示请求中调用的服务所执行的对该服务或该请求的提供方的数据进行更新的操作。值得注意的是,在本申请实施例中,虽然用于指示调用服务的消息由处理设备发出,然而,用于执行写操作的主体,可以是上述处理设备,也可以是上述处理设备以外的装置,本申请对此不作限定。
在以上描述的基础上,区别于现有技术,根据本申请实施例提供的处理设备,在第二执行单元402中,还可以进一步在处理设备的本地清空与服务对应的信息。在本申请实施例中,上述操作可以与前述第二判断单元206、第一执行模块302或第二执行模块304耦合,达到正确地对请求进行回应的技术效果。下面将结合图5对其原理进行阐述。
在图5中,某一请求可以至少需要调用3个原子化方法FE、FF、FG,其中,在靠前调用的原子化方法FE和靠后调用的原子化方法FG中,均包括对“通过查询条件查询数据库(queryA)”这一执行读操作的服务进行调用的线程,为便于描述,将该服务记为第一服务,在FE和FG之间被调用的原子化方法FF中,包括对“修改XML文档中的内容(modify B)”这一执行写操作的服务进行调用的线程,为便于描述,将该服务记为第二服务,其中,上述数据库和XML文档存储于处理设备本地以外的位置,例如可以位于第三方服务器上。
在上述场景下,根据本申请实施例提供的处理设备,在通过接收单元202接收到该请求后,将在顺序调用3个原子化方法中的服务时,分别先通过第一判断单元204对每一待调用的服务所执行的操作的类型进行判断,例如,对于原子化方法FE,可以在判断出其所调用的第一服务执行的是读操作,从而可以通过第一执行模块302或第二执行模块304从处理设备的本地或外部获取与第一服务对应的返回结果,例如符合查询条件的数据项A,并将获取的数据项A存储在处理设备本地,或者处理设备本地已经存有数据项A,进而将原子化方法FE的进程执行完毕。在这之后,对于原子化方法FF,可以判断出其所调用的第二服务执行的是写操作,从而可以通过第二执行单元402正常调用第二服务以执行对应的写操作,例如可以将数据项B写入XML文档,并在处理设备本地清空与第二服务对应的信息,进而将原子化方法FF的进程执行完毕。在这一场景下,若第一服务的返回结果也即读取的数据项A与第二服务是对应的,例如,数据项B所写入的XML文档在第三方服务器上运行的结果将影响到其数据库中存储的原数据项A,则可以在上述第二执行单元402中将处理设备本地存有的数据项A清空,进而,对于后续调用的原子化方法FG,同样可以判断出其所调用的第一服务执行的是读操作,从而在第二判断单元206中,由于数据项A已在本地被清空,可以判断出处理设备本地不存在与待调用的第一服务对应的返回结果,进而可以通过第二执行模块304正常地调用第一服务以从第三方服务器上的数据库中获取可能由于调用第二服务时数据项B的写操作导致值发生变化的数据项A,并将获取的可能是更新后的数据项A存储在处理设备的本地。
从以上描述可以看出,若在上述场景中不执行第二执行单元402中的清除操作,则可能导致处理需要对执行读操作和写操作的不同服务进行调用的请求时,无法及时获取在处理过程中更新的返回结果,从而造成对请求进行错误回应的问题。在另一方面,在本申请实施例中,通过第二执行单元402的引入,解决了上述技术问题,进而达到了提高对请求进行处理的准确性的技术效果。
需要说明的是,上述实施例作为示例提出,并不会对本申请构成任何限定。例如,上述待调用的服务所执行的写操作,既可以表示插入,也可以表示删除或替换等具体的写操作,并且该写操作的修改对象也可以为XML文档以外的其他任何可行的对象,本申请对此不作限定。
下面将结合表1和图6至图8,通过本申请的一些具体的实施例,对上述第一判断单元204中的读/写操作的具体判断实现方式,以及返回结果和服务的相关信息在处理设备本地的存储方式进行详细描述。
参考表1,作为一种可选的实施方式,在本申请实施例中,可以在处理设备上使用网格节点结构表来记录返回结果,其中,表1用于表示存储在处理设备本地的一个网格节点结构表。
表1
如表1所示,网格节点结构表可以包括以下信息:用于调用服务的输入参数、服务的调用类型、服务的描述信息、返回结果、请求的标识、调用服务所影响的数据的描述信息,其中,作为这些信息的标识项可以由表1第1列所示的字段名称形成。
其中,输入参数记录的信息内容可如表1第3列所示的,用于记录下调用服务的相关输入参数,也即调用服务过程开始时或过程中的相关输入参数,例如对于图1所示的请求,被调用的执行读操作“通过查询条件查询数据库(Query A)”的服务,其相关参数可以为查询条件“A”。
服务的调用类型的字段记录的信息内容可以用于记录下服务的调用类型,例如,其可以通过不同字段来分别表示数据库数据调用或者分布式同步接口调用服务,并在网格节点结构表中记录与被调用或待调用的服务对应的调用类型。一般而言,该调用类型可以根据本申请技术方案的实施环境所接触的不同的网络框架来进行分类,然而本申请对此不作限定。
服务的描述信息的字段可以用于记录与服务本身相关的信息,例如表1第3列所示的,如果是数据库数据调用,则该模型对象记录的可以是数据库的绝对地址和表名称,如果记录的是分布式同步接口调用服务,则记录的可以是该服务的绝对地址,以唯一决定该服务。
返回结果记录的信息可以用于记录读操作所得到的返回结果,例如作为对于如图1所示的请求的响应所返回的符合查询条件的数据项A。可选地,如图1第二列所示,记录在网格节点结构表中的返回结果可以具体表现为映射Map类型的数据结构,其中,该Map类型的数据结构可以包括由键(Key)和对应的值(Value)所组成的键值对,以便于后续调用的服务所执行的对该返回结果的调用操作。
请求的标识的字段记录的信息可以表示唯一标示该请求的句柄,例如,该请求的进程中记录的可以用作标识的字符串。请求的标识可以用于标识上述返回结果在哪一个请求的处理过程中被返回,从而可以在上述请求的处理方法中进一步判断该返回结果是否由当前待调用的服务所在的请求所获取,若是,则可以执行从本地获取该返回结果的操作,若否,则可以正常执行当前待调用的服务。
调用服务所影响的数据的描述信息可以用于记录受到影响的数据节点,例如,其可以为处理设备本地的一张数据表,等。如表1第二列所示,调用服务所影响的数据的描述信息可以具体表现为枚举类型,其记录的内容可以为空,也可以为一个数据节点,还可以为多个,例如对于如图5所示的至少需要调用3个原子化方法FE、FF、FG的请求,其中需要调用执行写操作的服务的原子化方法FF处理完成后,可以在网格节点结构表中的上述调用服务所影响的数据的描述信息中记录下该写操作所影响的所有数据,从而可以通过第二执行单元402执行的清除操作将这些数据清除,以便对于其后执行的原子化方法FG进行处理。
除此之外,表1第二列可以表示网格节点结构表中的上述多项信息在处理设备的本地的存储结构。
在本申请实施例中,上述网格节点结构表中所记录的信息均可以用于对与该网格节点结构表所对应的服务进行识别,并可以用于在上述第一执行模块302中在处理设备本地执行的返回结果和/或相关信息的调用。
当然,本领域技术人员应当理解,起到记录返回结果和服务的相关信息的作用的网格节点结构表也可以仅包括上述表1中的部分信息,此外,该网格节点结构表也可以表现为其他表格形式,或者不以表格形式出现。然而,在本申请所提供的申请构思内的上述本申请技术方案的变形,均应视为在本申请的保护范围之内。
进而如图6所示,可选地,在本申请实施例中,第一判断单元204可以包括:
1)查询模块602,用于查询待执行请求对应的配置文件以判断当前待调用的服务执行的是读操作还是写操作。
其中,查询模块602可以通过存储在处理设备本地的配置文件来对当前待调用的服务进行识别,在二者匹配成功的情形下,即可以通过配置文件来反映当前待调用的服务的相关信息,例如配置文件可以记录该服务执行的是读操作还是写操作,从而,在可以在查询模块602中通过对配置文件的查询判断出当前待调用的服务执行的是何种操作。值得注意的是,在本申请的一些实施例中,例如,对于相对封闭的网络环境,上述配置文件可以是静态的,然而在本申请的另一些实施例中,上述配置文件也可以是动态的,可以随本申请技术方案的实施环境的变动而进行调整。
配置文件在记录有服务执行的是读操作还是写操作之外,还可以包括以下内容:服务的调用类型、服务的描述信息、调用服务所影响的数据的描述信息、以及用于指示是否将处理设备从本地以外获取的返回结果记录到网格节点结构表中的信息。例如,在本申请的一个实施例中,配置文件可以具有如下格式:
(服务的调用类型:服务的描述信息:用于指示是否将处理设备从本地以外获取的返回结果记录到网格节点结构表中的信息:调用服务所影响的数据的描述信息:服务执行的操作的类型)
其中,在一个场景下,与之对应的配置文件的记录可以为:
(dubbo:com.alifi.venuscore.service.LoanApi.getLoan:Y:申请单:读)
在这一场景下,通过对配置文件的查询即可知,服务的调用类型可以为“dubbo”类型(一种现行的网络框架中定义的调用类型),服务的描述信息所体现出的服务的调用路径可以为“com.alifi.venuscore.service.LoanApi.getLoan”,用于指示是否将处理设备从本地以外获取的返回结果记录到网格节点结构表中的信息可以为“Y”,也即“是”,调用服务所影响的数据的描述信息可以为“申请单”,而服务执行的操作的类型可以为“读”,也即读操作。
从以上描述可以看出,通过对配置文件的配置,可以方便的对待调用的服务是否并入到网格节点结构表中,或者是否将指示信息通知给上述处理设备中的第二判断单元206、第一执行模块302或第二执行模块304进行调控。在另一方面,配置文件也可以用于与网格节点结构表对应地记录服务的相关信息,从而可以在将网格节点结构表作为动态更新的数据结构的情形下,作为保存周期相对较长的存储媒介,服务于第一执行模块302从处理设备本地对返回结果的调用。
进而如图7所示,可选地,在本申请实施例中,上述第二执行单元402可以包括:
1)检索模块702,用于查找与服务的配置文件对应的中的网格节点结构表,其中,与服务的配置文件对应的中的网格节点结构表中的描述信息与服务的配置文件中的描述信息相同;
2)删除模块704,用于删除查找到的网格节点结构表中的数据。
其中,检索模块702和删除模块704通过采用配置文件作为参照查询并删除对应的网格节点结构表中的数据的方式,可以简便、快速地完成第二执行单元402中所述的对于执行写操作的服务调用完成后所进行的清空操作。当然,本申请中所述的配置文件可以不仅用于以上目的,一般而言,配置文件可以对需要维护的服务进行定义,例如,定义服务为读操作还是写操作,以及读/写操作所影响到的数据等,从而可以起到管理服务描述的作用。
可选地,如图8所示,在本申请实施例中,在上述处理设备对上述请求处理完成后,根据本申请实施例提供的处理设备还可以包括:
1)删除单元802,用于在处理设备对请求处理完成之后,删除存储在处理设备本地的返回结果。
如前所述,在本申请实施例中,可以将网格节点结构表作为动态更新的数据结果,存储在为其分配的一个临时的存储空间内,例如,可以将网格节点结构表分配在数据处理速度相对较快的本地缓存中。在上述场景下,可以在一次请求的处理过程中,在满足前序的判断条件并在第二执行模块304中执行将返回结果存储在处理设备的本地的操作时,将记录有返回结果以及服务的相关信息的网格节点结构表存储于上述本地缓存中,并在该次请求的处理过程中之后调用的同一执行读操作的服务时,在第一执行模块302中,从位于本地缓存中的网格节点结构表获取数据,从而可以进一步加快请求的处理速度。
在上述场景下,在另一方面,还可以在处理设备执行完上述请求后,在删除单元802中,将存储在处理设备本地的返回结果删除,从而可以将上述的为返回结果分配的临时的存储空间,例如上述本地缓存中删除,从而释放的存储空间可以用于下次请求的处理过程,或者用于系统的其他进程使用,从而在根据本申请实施例提供的请求的处理方法对大量的请求同时进行处理时,达到提升内存的使用效率的技术效果。
实施例2
本申请还提供了一种请求的处理方法。如图9所示,该方法可以包括:
S902:处理设备接收待执行的请求,其中,请求至少用于指示对同一个服务进行多次调用;
S904:处理设备响应请求判断当前待调用的服务执行的是读操作还是写操作,
若是读操作,则执行步骤S906;
S906:处理设备判断本地是否存储有与当前待调用的服务对应的返回结果,
若是,则执行步骤S908,
若否,则执行步骤S910;
S908:获取存储的返回结果;
S910:调用服务以执行读操作,获取返回结果,并将获取到的返回结果存储在处理设备本地。
根据本申请实施例提供的请求的处理方法,在步骤S902中,可以通过处理设备接收待执行的请求。
首先应当明确的是,本申请技术方案所要解决的问题之一是提供一种方法对接收到的请求作出回应,其中,上述请求可以有多种具体的表现形式,例如客户端对网页进行访问的请求、网页对网络资源进行调用的请求、服务器对数据库中的数据进行读写操作的请求等,本申请对此不作限定。在另一方面,上述请求的生成也可以有多种方式,例如,对于客户端而言,一个请求通常可以由系统对某一个页面元素上的点击动作的识别生成,然而在本申请的一些实施例中,请求也可以由系统中定时任务的启动生成,此外,例如系统守护进程的单个线程开始执行也可以视为一个请求,本申请对此不作限定,当然,对于服务器和其他设备而言,请求也可以有多种来源,本申请在此不作累述。
进一步地,上述请求可以至少用于指示对同一个服务进行多次调用,例如,其可以如图1所示的,至少用于指示对分别存在于四个原子化方法FA、FB、FC和FD中的同一服务——“通过查询条件查询数据库(Query A)”进行多次调用。当然,以上只是一种示例,本申请对于上述服务的具体表现方式不作任何限定,例如,其还可以表现为执行更为复杂的操作的线程或进程。
值得注意的是,在本申请实施例中,上述用于接收或截留待执行的请求的处理设备,既可以与传统的用于对请求进行回应的处理装置相结合,从而形成为一体,也可以独立于系统中的其他装置之外,单独用于执行本申请技术方案中所称的处理操作,而无关于数据调用这一操作的执行以及后续的针对调用的数据的其他处理操作。对于本申请技术方案中的处理设备的具体表现形式,本申请不作任何限定。
进一步地,在处理设备接受到待执行的请求后,区别于现有技术方案中直接对该请求进行回应的方式,根据本申请实施例提供的请求的处理方法,在步骤S904中,可以响应于该请求,判断当前待调用的服务执行的是读操作还是写操作,其中,待调用的服务执行的读操作可以表示本地从外部读取数据,待调用的服务执行的写操作可以表示本地向外部写出数据。例如,对于图1所示的请求而言,其所要调用的服务执行的操作是“通过查询条件查询数据库(Query A)”,从而可以判断出该待调用的服务执行的是读操作,进而可以继续执行步骤S906。
在上述场景下,也即,在判断出当前待调用的服务执行的是读操作时,根据本申请实施例提供的请求的处理方法,在步骤S906中,可以进一步地通过处理设备判断本地是否存储有与当前待调用的服务对应的返回结果。
一般而言,在本申请实施例中,在处理设备的本地,对于如图1所示的需要对同一服务进行多次调用的请求,响应于该请求,对上述服务进行的多次调用,通常是分前后顺序执行的,从而上述的“当前”待调用的服务,应当理解为作为顺序执行的多次调用中的任意一次的调用对象的服务。
在以上描述的基础上,可以通过处理设备判断本地是否存在与当前待调用的服务对应的返回结果,例如,对于如图1所示的响应于请求被调用的进行读操作的查询服务,其对应的返回结果可以为数据表A中的一个数据项,从而,在步骤S906中,可以对本地是否存储有该数据项进行判断,若判断结果为存在该数据项,则可以进一步执行步骤S908,若判断结果为不存在该数据项,则可以进一步执行步骤S910,其中,可选地,该判断可以通过本地数据管理对本地数据的检索来实现。当然,以上只是一种示例,在本申请的一些实施例中,还可以通过其他方式对本地是否存有上述返回结果进行判断,上述返回结果也可以不具体表现为一个数据项,等,本申请对此不作限定。
根据本申请实施例提供的请求的处理方法,若在步骤S906中判断出本地未存储有上述返回结果,则可以在步骤S910中,调用服务以执行读操作,获取返回结果。一般而言,在本申请实施例中,上述调用服务以执行读操作并获取返回结果的过程,通常可以直接采用现有技术中可行的任何类似的进程,以达到本申请所要达到的对请求进行回应的目的。然而在此基础上,在本申请实施例中,还可以进一步地将获取到的返回结果存储在处理设备本地,从而存储在处理设备本地的返回结果可以在后续的操作中,替代存储在本地以外的返回结果,作为后续调用的同一服务的新的获取路径。
例如,对于如图1所示的响应于请求被调用的进行读操作的查询服务,其首次被调用时,例如图1所示的上述请求所调用的原子化方法FA中被调用,在处理设备的本地可以不存在与该查询服务对应的返回结果,例如数据库中符合查询条件的数据项A,从而可以在步骤S906中判断出本地未存储有上述返回结果,进而作为对于该请求的回应,在步骤S910中,可以直接调用该查询服务执行相应的读操作,以从处理设备的本地以外的位置,例如存储在第三方服务器上的数据库中获取数据项A,并将获取的数据项A存储在处理设备的本地。
当然,这只是一种示例,本申请对此不作任何限定,例如,具体地,本申请对于获取到的返回结果在处理设备本地的对应的存储设备、存储位置以及所采用的数据管理方式不作限定,等,例如上述返回结果可以存储于本地的缓存中,也可以存储于其他类型的存储器。
根据本申请实施例提供的请求的处理方法,若在步骤S906中判断出本地存储有上述返回结果,则可以在步骤S908中,获取存储的该返回结果。其中,区别于现有技术中在对请求进行回应时,通常同一化地直接调用服务执行读操作并获取返回结果,在本申请实施例中,根据在步骤S906中判断得出的结果,在本地已存有该返回结果时,例如在该返回结果已预先从本地以外获取并存储在本地的情形下,则可以不再继续调用该服务执行从外部获取返回结果的读操作,而是在步骤S908中,从本地直接获取预存的该返回结果。
例如,对于如图1所示的响应于请求被调用的进行读操作的查询服务,在结合上述步骤S906,从处理设备的本地以外获取查询服务对应的返回结果,并将该返回结果存储至处理设备的本地的基础上,在同一查询服务再次被调用时,例如在上述请求所调用的原子化方法FA之后的FB中被再次调用,由于本地已存在与该查询服务对应的返回结果,从而可以在步骤S906中判断出本地存储有上述返回结果,例如数据库中符合查询条件的数据项A,从而可以在步骤S908中从本地获取存储的数据项A。
从以上描述可以看出,通过本申请实施例提供的请求的处理方法,在步骤S908中,由于采用从本地获取存储的返回结果来代替从外部获取的被调用的服务对应的返回结果,从而显著地缩短了回应请求所需的返回结果的获取路径,进而达到了降低请求的处理时间的技术效果,并且由于在对一次请求的回应过程中,对于其中需要调用的相同或相似的服务,免除了这些服务对应的进程在运行中重复执行读操作以从外部设备,例如远端的第三方服务器进行数据调用,从而还达到了降低类似于上述服务器的网络节点的处理压力的技术效果,进而达到了提高作为本申请技术方案的实施环境的计算机网络的处理效率的技术效果。
在另一方面,如图10所示,作为一种可选的实施方式,在根据步骤S904对当前待调用的服务执行的是读操作还是写操作进行判断之后,若判断出执行的是写操作,则上述请求的处理方法还可以包括:
S1002:处理设备调用服务以执行写操作,并在处理设备本地清空与服务对应的信息。
一般而言,在本申请实施例中,上述的处理设备调用服务以执行写操作的过程,通常可以直接采用现有技术中可行的任何类似的进程,以达到本申请所要达到的对请求进行回应的目的,其中,上述写操作可以表示请求中调用的服务所执行的对该服务或该请求的提供方的数据进行更新的操作。值得注意的是,在本申请实施例中,虽然用于指示调用服务的消息由处理设备发出,然而,用于执行写操作的主体,可以是上述处理设备,也可以是上述处理设备以外的装置,本申请对此不作限定。
在以上描述的基础上,区别于现有技术,根据本申请实施例提供的请求的处理方法,在步骤S1002中,还可以进一步在处理设备中清空与服务对应的信息。在本申请实施例中,上述操作可以与前述步骤S906、S908或S910耦合,达到正确地对请求进行回应的技术效果。下面将结合图5对其原理进行阐述。
在图5中,某一请求可以至少需要调用3个原子化方法FE、FF、FG,其中,在靠前调用的原子化方法FE和靠后调用的原子化方法FG中,均包括对“通过查询条件查询数据库(queryA)”这一执行读操作的服务进行调用的线程,为便于描述,将该服务记为第一服务,在FE和FG之间被调用的原子化方法FF中,包括对“修改XML文档中的内容(modify B)”这一执行写操作的服务进行调用的线程,为便于描述,将该服务记为第二服务,其中,上述数据库和XML文档存储于处理设备本地以外的位置,例如可以位于第三方服务器上。
在上述场景下,根据本申请实施例提供的请求的处理方法,在通过步骤S902接收到该请求后,将在顺序调用3个原子化方法中的服务时,分别先通过步骤S904对每一待调用的服务所执行的操作的类型进行判断,例如,对于原子化方法FE,可以在判断出其所调用的第一服务执行的是读操作,从而可以通过步骤S908或S910从处理设备的本地或外部获取与第一服务对应的返回结果,例如符合查询条件的数据项A,并将获取的数据项A存储在处理设备本地,或者处理设备本地已经存有数据项A,进而将原子化方法FE的进程执行完毕。在这之后,对于原子化方法FF,可以判断出其所调用的第二服务执行的是写操作,从而可以通过步骤S1002正常调用第二服务以执行对应的写操作,例如可以将数据项B写入XML文档,并在处理设备本地清空与第二服务对应的信息,进而将原子化方法FF的进程执行完毕。在这一场景下,若第一服务的返回结果也即读取的数据项A与第二服务是对应的,例如,数据项B所写入的XML文档在第三方服务器上运行的结果将影响到其数据库中存储的原数据项A,则可以在上述步骤S1002中将处理设备本地存有的数据项A清空,进而,对于后续调用的原子化方法FG,同样可以判断出其所调用的第一服务执行的是读操作,从而在步骤S906中,由于数据项A已在本地被清空,可以判断出处理设备本地不存在与待调用的第一服务对应的返回结果,进而可以通过步骤S910正常地调用第一服务以从第三方服务器上的数据库中获取可能由于调用第二服务时数据项B的写操作导致值发生变化的数据项A,并将获取的可能是更新后的数据项A存储在处理设备的本地。
从以上描述可以看出,若在上述场景中不执行步骤S1002中的清除操作,则可能导致处理需要对执行读操作和写操作的不同服务进行调用的请求时,无法及时获取在处理过程中更新的返回结果,从而造成对请求进行错误回应的问题。在另一方面,在本申请实施例中,通过步骤S1002的引入,解决了上述技术问题,进而达到了提高对请求进行处理的准确性的技术效果。
需要说明的是,上述实施例作为示例提出,并不会对本申请构成任何限定。例如,上述待调用的服务所执行的写操作,既可以表示插入,也可以表示删除或替换等具体的写操作,并且该写操作的修改对象也可以为XML文档以外的其他任何可行的对象,本申请对此不作限定。
下面将结合实施1中所示的表1和图11至图13,通过本申请的一些具体的实施例,对上述请求的处理方法中的读/写操作的具体判断方式,以及返回结果和服务的相关信息在处理设备本地的存储方式进行详细描述。
参考实施1中所示的表1,作为一种可选的实施方式,在本申请实施例中,可以在处理设备上使用网格节点结构表来记录返回结果,其中,表1用于表示存储在处理设备本地的一个网格节点结构表。
如表1所示,网格节点结构表可以包括以下信息:用于调用服务的输入参数、服务的调用类型、服务的描述信息、返回结果、请求的标识、调用服务所影响的数据的描述信息,其中,作为这些信息的标识项可以由表1第1列所示的字段名称形成。
其中,输入参数记录的信息内容可如表1第3列所示的,用于记录下调用服务的相关输入参数,也即调用服务过程开始时或过程中的相关输入参数,例如对于图1所示的请求,被调用的执行读操作“通过查询条件查询数据库(Query A)”的服务,其相关参数可以为查询条件“A”。
服务的调用类型的字段记录的信息内容可以用于记录下服务的调用类型,例如,其可以通过不同字段来分别表示数据库数据调用或者分布式同步接口调用服务,并在网格节点结构表中记录与被调用或待调用的服务对应的调用类型。一般而言,该调用类型可以根据本申请技术方案的实施环境所接触的不同的网络框架来进行分类,然而本申请对此不作限定。
服务的描述信息的模型对象可以用于记录与服务本身相关的信息,例如表1第3列所示的,如果是数据库数据调用,则该模型对象记录的可以是数据库的绝对地址和表名称,如果记录的是分布式同步接口调用服务,则记录的可以是该服务的绝对地址,以唯一决定该服务。
返回结果记录的信息可以用于记录读操作所得到的返回结果,例如作为对于如图1所示的请求的响应所返回的符合查询条件的数据项A。可选地,如图1第二列所示,记录在网格节点结构表中的返回结果可以具体表现为映射Map类型的数据结构,其中,该Map类型的数据结构可以包括由键(Key)和对应的值(Value)所组成的键值对,以便于后续调用的服务所执行的对该返回结果的调用操作。
请求的标识的字段记录的信息可以表示唯一标示该请求的句柄,例如,该请求的进程中记录的可以用作标识的字符串。请求的标识可以用于标识上述返回结果在哪一个请求的处理过程中被返回,从而可以在上述请求的处理方法中进一步判断该返回结果是否由当前待调用的服务所在的请求所获取,若是,则可以执行从本地获取该返回结果的操作,若否,则可以正常执行当前待调用的服务。
调用服务所影响的数据的描述信息可以用于记录受到影响的数据节点,例如,其可以为处理设备本地的一张数据表,等。如表1第二列所示,调用服务所影响的数据的描述信息可以具体表现为枚举类型,其记录的内容可以为空,也可以为一个数据节点,还可以为多个,例如对于如图5所示的至少需要调用3个原子化方法FE、FF、FG的请求,其中需要调用执行写操作的服务的原子化方法FF处理完成后,可以在网格节点结构表中的上述调用服务所影响的数据的描述信息中记录下该写操作所影响的所有数据,从而可以通过步骤SX1002执行的清除操作将这些数据清除,以便对于其后执行的原子化方法FG进行处理。
除此之外,表1第二列可以表示网格节点结构表中的上述多项信息在处理设备的本地的存储结构。
在本申请实施例中,上述网格节点结构表中所记录的信息均可以用于对与该网格节点结构表所对应的服务进行识别,并可以用于在上述步骤S908中在处理设备本地执行的返回结果和/或相关信息的调用。
当然,本领域技术人员应当理解,起到记录返回结果和服务的相关信息的作用的网格节点结构表也可以仅包括上述表1中的部分信息,此外,该网格节点结构表也可以表现为其他表格形式,或者不以表格形式出现。然而,在本申请所提供的申请构思内的上述本申请技术方案的变形,均应视为在本申请的保护范围之内。
进而如图11所示,可选地,在本申请实施例中,步骤S904可以包括:
S1102:处理设备查询待执行请求对应的配置文件以判断当前待调用的服务执行的是读操作还是写操作。
其中,可以通过存储在处理设备本地的配置文件来对当前待调用的服务进行识别,在二者匹配成功的情形下,即可以通过配置文件来反映当前待调用的服务的相关信息,例如配置文件可以记录该服务执行的是读操作还是写操作,从而,在可以在步骤S1102中通过对配置文件的查询判断出当前待调用的服务执行的是何种操作。值得注意的是,在本申请的一些实施例中,例如,对于相对封闭的网络环境,上述配置文件可以是静态的,然而在本申请的另一些实施例中,上述配置文件也可以是动态的,可以随本申请技术方案的实施环境的变动而进行调整。
配置文件在记录有服务执行的是读操作还是写操作之外,还可以包括以下内容:服务的调用类型、服务的描述信息、调用服务所影响的数据的描述信息、以及用于指示是否将处理设备从本地以外获取的返回结果记录到网格节点结构表中的信息。例如,在本申请的一个实施例中,配置文件可以具有如下格式:
(服务的调用类型:服务的描述信息:用于指示是否将处理设备从本地以外获取的返回结果记录到网格节点结构表中的信息:调用服务所影响的数据的描述信息:服务执行的操作的类型)
其中,在一个场景下,与之对应的配置文件的记录可以为:
(dubbo:com.alifi.venuscore.service.LoanApi.getLoan:Y:申请单:读)
在这一场景下,通过对配置文件的查询即可知,服务的调用类型可以为“dubbo”类型(一种现行的网络框架中定义的调用类型),服务的描述信息所体现出的服务的调用路径可以为“com.alifi.venuscore.service.LoanApi.getLoan”,用于指示是否将处理设备从本地以外获取的返回结果记录到网格节点结构表中的信息可以为“Y”,也即“是”,调用服务所影响的数据的描述信息可以为“申请单”,而服务执行的操作的类型可以为“读”,也即读操作。
从以上描述可以看出,通过对配置文件的配置,可以方便的对待调用的服务是否并入到网格节点结构表中,或者是否继续执行上述请求的处理方法中的步骤S906、S908或S910进行调控。在另一方面,配置文件也可以用于与网格节点结构表对应地记录服务的相关信息,从而可以在将网格节点结构表作为动态更新的数据结构的情形下,作为保存周期相对较长的存储媒介,服务于步骤S908中从处理设备本地对返回结果的调用。
进而如图12所示,可选地,在本申请实施例中,上述步骤S1002中所述的在处理设备本地清空与服务对应的信息的操作可以包括:
S1202:查找与服务的配置文件对应的中的网格节点结构表,其中,与服务的配置文件对应的中的网格节点结构表中的描述信息与服务的配置文件中的描述信息相同;
S1204:删除查找到的网格节点结构表中的数据。
其中,通过采用配置文件作为参照查询并删除对应的网格节点结构表中的数据的方式,可以简便、快速地完成步骤S1002中所述的对于执行写操作的服务调用完成后所进行的清空操作。当然,本申请中所述的配置文件可以不仅用于以上目的,一般而言,配置文件可以对需要维护的服务进行定义,例如,定义服务为读操作还是写操作,以及读/写操作所影响到的数据等,从而可以起到管理服务描述的作用。
可选地,如图13所示,在本申请实施例中,在处理设备对上述请求处理完成后,根据本申请实施例提供的请求的处理方法还可以包括:
S1302:删除存储在处理设备本地的返回结果。
如前所述,在本申请实施例中,可以将网格节点结构表作为动态更新的数据结果,存储在为其分配的一个临时的存储空间内,例如,可以将网格节点结构表分配在数据处理速度相对较快的本地缓存中。在上述场景下,可以在一次请求的处理过程中,在满足前序的判断条件并在步骤S910中执行将返回结果存储在处理设备的本地的操作时,将记录有返回结果以及服务的相关信息的网格节点结构表存储于上述本地缓存中,并在该次请求的处理过程中之后调用的同一执行读操作的服务时,在步骤S908中,从位于本地缓存中的网格节点结构表获取数据,从而可以进一步加快请求的处理速度。
在上述场景下,在另一方面,还可以在处理设备执行完上述请求后,在步骤S1302中,将存储在处理设备本地的返回结果删除,从而可以将上述的为返回结果分配的临时的存储空间,例如上述本地缓存中删除,从而释放的存储空间可以用于下次请求的处理过程,或者用于系统的其他进程使用,从而在根据本申请实施例提供的请求的处理方法对大量的请求同时进行处理时,达到提升内存的使用效率的技术效果。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种请求的处理方法,其特征在于,包括:
处理设备接收待执行的请求,其中,所述请求至少用于指示对同一个服务进行多次调用;
所述处理设备响应所述请求判断当前待调用的所述服务执行的是读操作还是写操作;
若所述处理设备判断出所述当前待调用的所述服务执行的是所述读操作,则所述处理设备判断本地是否存储有与所述当前待调用的所述服务对应的返回结果;
若所述处理设备判断出本地存储有所述返回结果,则获取存储的所述返回结果;若所述处理设备判断出本地没有存储所述返回结果,则调用所述服务以执行所述读操作,获取所述返回结果,并将获取到的所述返回结果存储在所述处理设备本地。
2.根据权利要求1所述的方法,其特征在于,在所述处理设备响应所述请求判断所述当前待调用的所述服务执行的是读操作还是写操作之后,还包括:
若判断出所述当前待调用的所述服务执行的是所述写操作,则所述处理设备调用所述服务以执行所述写操作,并在所述处理设备本地清空与所述服务对应的信息。
3.根据权利要求1或2所述的方法,其特征在于,在所述处理设备上使用网格节点结构表来记录所述返回结果,其中,所述网格节点结构表包括以下至少之一:用于调用所述服务的输入参数、所述服务的调用类型、所述服务的描述信息、所述请求的标识、调用所述服务所影响的数据的描述信息。
4.根据权利要求3所述的方法,其特征在于,所述处理设备响应所述请求判断所述当前待调用的所述服务执行的是读操作还是写操作包括:
所述处理设备查询所述待执行请求对应的配置文件以判断所述当前待调用的所述服务执行的是读操作还是写操作,其中,所述配置文件记录有所述服务执行的是读操作还是写操作,所述配置文件至少包括以下至少之一:所述服务的调用类型、所述服务的描述信息、调用所述服务所影响的数据的描述信息、以及用于指示是否将所述处理设备从本地以外获取的所述返回结果记录到所述网格节点结构表中的信息。
5.根据权利要求3所述的方法,其特征在于,在所述处理设备中清空与所述服务对应的信息包括:
查找与所述服务的所述配置文件对应的中的网格节点结构表,其中,与所述服务的所述配置文件对应的中的网格节点结构表中的描述信息与所述服务的所述配置文件中的描述信息相同;
删除查找到的所述网格节点结构表中的数据。
6.根据权利要求1、2、4、5中任一项所述的方法,其特征在于,在所述处理设备对所述请求处理完成之后,还包括:
删除存储在所述处理设备本地的所述返回结果。
7.一种请求的处理设备,其特征在于,包括:
接收单元,用于接收待执行的请求,其中,所述请求至少用于指示对同一个服务进行多次调用;
第一判断单元,用于响应所述请求判断当前待调用的所述服务执行的是读操作还是写操作;
第二判断单元,用于在所述第一判断单元判断出所述当前待调用的所述服务执行的是所述读操作时,判断本地是否存储有与所述当前待调用的所述服务对应的返回结果;
第一执行单元,用于在所述第二判断单元判断出本地存储有所述返回结果时,获取存储的所述返回结果;以及用于在所述第二判断单元判断出本地没有存储所述返回结果时,调用所述服务以执行所述读操作,获取所述返回结果,并将获取到的所述返回结果存储在所述处理设备本地。
8.根据权利要求7所述的设备,其特征在于,还包括:
第二执行单元,用于在判断出所述当前待调用的所述服务执行的是所述写操作时,调用所述服务以执行所述写操作,并在所述处理设备本地清空与所述服务对应的信息。
9.根据权利要求7或8所述的设备,其特征在于,在所述处理设备上使用网格节点结构表来记录所述返回结果,其中,所述网格节点结构表包括以下至少之一:用于调用所述服务的输入参数、所述服务的调用类型、所述服务的描述信息、所述请求的标识、调用所述服务所影响的数据的描述信息。
10.根据权利要求9所述的设备,其特征在于,所述第一判断单元包括:
查询模块,用于查询所述待执行请求对应的配置文件以判断所述当前待调用的所述服务执行的是读操作还是写操作,其中,所述配置文件记录有所述服务执行的是读操作还是写操作,所述配置文件至少包括以下至少之一:所述服务的调用类型、所述服务的描述信息、调用所述服务所影响的数据的描述信息、以及用于指示是否将所述处理设备从本地以外获取的所述返回结果记录到所述网格节点结构表中的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310379490.6A CN104423982B (zh) | 2013-08-27 | 2013-08-27 | 请求的处理方法和处理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310379490.6A CN104423982B (zh) | 2013-08-27 | 2013-08-27 | 请求的处理方法和处理设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104423982A true CN104423982A (zh) | 2015-03-18 |
CN104423982B CN104423982B (zh) | 2018-03-06 |
Family
ID=52973064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310379490.6A Active CN104423982B (zh) | 2013-08-27 | 2013-08-27 | 请求的处理方法和处理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104423982B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936921A (zh) * | 2017-04-06 | 2017-07-07 | 福建新大陆软件工程有限公司 | 一种网络请求缓冲处理方法及系统 |
CN107273216A (zh) * | 2016-04-08 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及系统 |
CN108280091A (zh) * | 2017-01-06 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种任务请求执行方法和装置 |
CN108712498A (zh) * | 2018-05-23 | 2018-10-26 | 新华三大数据技术有限公司 | 服务的调用方法及装置 |
CN109491765A (zh) * | 2018-10-09 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 对跨域业务请求的处理方法及装置 |
CN110535966A (zh) * | 2019-09-05 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN111367683A (zh) * | 2018-12-25 | 2020-07-03 | 华为技术有限公司 | 一种结果获取方法、装置及设备 |
CN113688368A (zh) * | 2020-05-18 | 2021-11-23 | 华为技术有限公司 | 一种跨设备认证的方法 |
CN114257652A (zh) * | 2021-12-10 | 2022-03-29 | 中信银行股份有限公司 | 一种请求报文处理方法、装置、设备及可读存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832262A (en) * | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
US20010049762A1 (en) * | 2000-06-01 | 2001-12-06 | Akihiko Ohwada | Operation processing apparatus |
US20050015515A1 (en) * | 2003-05-23 | 2005-01-20 | Heppenstall Mark F. | Method and apparatus for transferring data across a protocol bridge |
CN101512527A (zh) * | 2006-10-05 | 2009-08-19 | 国际商业机器公司 | 用于处理请求的数据处理系统和方法 |
CN102073539A (zh) * | 2010-12-02 | 2011-05-25 | 华为技术有限公司 | 队列请求处理方法和装置 |
CN102495710A (zh) * | 2011-10-25 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种处理数据只读访问请求的方法 |
CN102541659A (zh) * | 2011-12-30 | 2012-07-04 | 重庆新媒农信科技有限公司 | 一种服务器业务请求处理方法和装置 |
CN102804158A (zh) * | 2010-03-19 | 2012-11-28 | 想象技术有限公司 | 总线架构中的请求和数据处理 |
CN103152433A (zh) * | 2013-01-14 | 2013-06-12 | 广东电子工业研究院有限公司 | 一种分布式服务端框架及其使用、交互、请求处理方法 |
CN103207841A (zh) * | 2013-03-06 | 2013-07-17 | 青岛海信传媒网络技术有限公司 | 基于键值对缓存的数据读写方法及装置 |
CN103995674A (zh) * | 2014-04-17 | 2014-08-20 | 华为技术有限公司 | 访问请求处理方法、装置和设备 |
-
2013
- 2013-08-27 CN CN201310379490.6A patent/CN104423982B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832262A (en) * | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
US20010049762A1 (en) * | 2000-06-01 | 2001-12-06 | Akihiko Ohwada | Operation processing apparatus |
US20050015515A1 (en) * | 2003-05-23 | 2005-01-20 | Heppenstall Mark F. | Method and apparatus for transferring data across a protocol bridge |
CN101512527A (zh) * | 2006-10-05 | 2009-08-19 | 国际商业机器公司 | 用于处理请求的数据处理系统和方法 |
CN102804158A (zh) * | 2010-03-19 | 2012-11-28 | 想象技术有限公司 | 总线架构中的请求和数据处理 |
CN102073539A (zh) * | 2010-12-02 | 2011-05-25 | 华为技术有限公司 | 队列请求处理方法和装置 |
CN102495710A (zh) * | 2011-10-25 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种处理数据只读访问请求的方法 |
CN102541659A (zh) * | 2011-12-30 | 2012-07-04 | 重庆新媒农信科技有限公司 | 一种服务器业务请求处理方法和装置 |
CN103152433A (zh) * | 2013-01-14 | 2013-06-12 | 广东电子工业研究院有限公司 | 一种分布式服务端框架及其使用、交互、请求处理方法 |
CN103207841A (zh) * | 2013-03-06 | 2013-07-17 | 青岛海信传媒网络技术有限公司 | 基于键值对缓存的数据读写方法及装置 |
CN103995674A (zh) * | 2014-04-17 | 2014-08-20 | 华为技术有限公司 | 访问请求处理方法、装置和设备 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273216B (zh) * | 2016-04-08 | 2020-10-13 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及系统 |
CN107273216A (zh) * | 2016-04-08 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及系统 |
CN108280091A (zh) * | 2017-01-06 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种任务请求执行方法和装置 |
CN106936921A (zh) * | 2017-04-06 | 2017-07-07 | 福建新大陆软件工程有限公司 | 一种网络请求缓冲处理方法及系统 |
CN108712498A (zh) * | 2018-05-23 | 2018-10-26 | 新华三大数据技术有限公司 | 服务的调用方法及装置 |
CN109491765B (zh) * | 2018-10-09 | 2021-07-30 | 创新先进技术有限公司 | 对跨域业务请求的处理方法及装置 |
CN109491765A (zh) * | 2018-10-09 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 对跨域业务请求的处理方法及装置 |
CN111367683A (zh) * | 2018-12-25 | 2020-07-03 | 华为技术有限公司 | 一种结果获取方法、装置及设备 |
CN110535966A (zh) * | 2019-09-05 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN110535966B (zh) * | 2019-09-05 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN113688368A (zh) * | 2020-05-18 | 2021-11-23 | 华为技术有限公司 | 一种跨设备认证的方法 |
CN114257652A (zh) * | 2021-12-10 | 2022-03-29 | 中信银行股份有限公司 | 一种请求报文处理方法、装置、设备及可读存储介质 |
CN114257652B (zh) * | 2021-12-10 | 2024-01-30 | 中信银行股份有限公司 | 一种请求报文处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104423982B (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
US9678969B2 (en) | Metadata updating method and apparatus based on columnar storage in distributed file system, and host | |
KR101994021B1 (ko) | 파일 조작 방법 및 장치 | |
KR102311032B1 (ko) | 데이터베이스 동기화 | |
CN107038222B (zh) | 数据库缓存实现方法及其系统 | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其系统 | |
US9135572B2 (en) | Method and arrangement for processing data | |
CN104881466A (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN109690522B (zh) | 一种基于b+树索引的数据更新方法、装置及存储装置 | |
CN109815240B (zh) | 用于管理索引的方法、装置、设备和存储介质 | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
CN108037967A (zh) | 一种基于多父子结构的菜单加载方法以及电子设备 | |
US7752225B2 (en) | Replication and mapping mechanism for recreating memory durations | |
US10747773B2 (en) | Database management system, computer, and database management method | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN110515979B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
WO2020192663A1 (zh) | 一种数据管理方法及相关设备 | |
CN109614411B (zh) | 数据存储方法、设备和存储介质 | |
CN111046106A (zh) | 缓存数据同步方法、装置、设备及介质 | |
CN112685417B (zh) | 数据库操作方法、系统、装置、服务器及存储介质 | |
US11157506B2 (en) | Multiform persistence abstraction | |
US8656410B1 (en) | Conversion of lightweight object to a heavyweight object |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191210 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands Patentee after: Innovative advanced technology Co., Ltd Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: Alibaba Group Holding Co., Ltd. |
|
TR01 | Transfer of patent right |