[发明专利]请求处理/状态码查询方法及装置、下/上游节点、介质在审
申请号: | 201710963183.0 | 申请日: | 2017-10-16 |
公开(公告)号: | CN107861825A | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 洪腾 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 中科专利商标代理有限责任公司11021 | 代理人: | 张远 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 请求 处理 状态 查询 方法 装置 上游 节点 介质 | ||
技术领域
本公开涉及互联网技术领域,更具体地,涉及请求处理方法、下游节点、上游节点、状态码查询方法、计算机可读介质、请求处理装置和状态码查询装置。
背景技术
近年来,随着网络技术的发展和在各个领域应用的增加,网络信息爆炸式增长,越来越多的服务器面临高并发请求的问题。存在如下的场景:在互联网高并发请求的请求执行过程中,上游节点可能并不需要知道下游节点的执行结果,而只需要根据请求ID去查询该请求的最终执行状态。
所谓执行结果,用于记录每个节点执行成功或者失败的结果。该结果由请求处理方(接收到请求的下游节点)记录。所谓请求执行状态,用于跟踪每个请求执行到哪个环节,该系统中每层节点对应一个状态,表明一个请求执行到了哪一个节点,该状态由请求处理方(接收到请求的下游节点)记录。
在现有的请求处理中,上游节点必须以同步或异步的方式来等待下游节点返回请求响应数据。为了实现数据的请求和响应,在现有技术中,例如利用如下技术。其一,利用BSD Socket的编程接口配合select、epoll等多路并发机制实现数据请求和响应。其二,利用流行的网络库来实现相应请求。
若将现有技术的运用到上述场景中,则在上游节点调用下游节点的接口发起请求的过程中,同步的等待下游节点返回结果往往会占用了整个请求过程中很大一部分的时间,尤其是在高并发的系统中,对处理速度有着极高要求的情况下,这种等待会极大的影响整个系统的处理速度。
在实现本公开过程中,发明人发现现有技术中至少存在如下问题。其一,如果中间某个节点出错,不能及时定位到出错节点。其二,每次请求必须等待下游响应数据,网络耗时较大,影响处理速度。
公开内容
有鉴于此,本公开的一个方面提供一种请求处理方法,在包含上游节点和下游节点的系统中在下游节点处执行,该方法包括如下操作:从上游节点接收请求;执行接收的请求,并生成请求状态记录,请求状态记录包括是否成功的标识,标识表示请求执行成功或者失败;在根据请求状态记录中的标识而确认为请求失败的情况下,将该失败请求插入到用于记录失败的请求的失败重试队列;和对插入到失败重试队列中的失败请求进行重试。
根据本公开的实施例,每一个请求被分配有一个在系统中唯一标识该请求的全局请求标识码即全局请求ID,在请求状态记录中还包括全局请求ID和状态码,状态码用于跟踪每个请求执行到哪一层的下游节点。
根据本公开的实施例,全局请求ID是通用唯一识别码即UUID或数据库自增ID。
根据本公开的实施例,在生成请求状态记录时,采用分库分表方式将请求状态记录写到数据库。
根据本公开的实施例,进行重试包括:对失败重试队列进行轮询,以对请求进行重试。
根据本公开的实施例,在重试给定次数后仍不能成功的情况下,放弃重试。
本公开的另一方面提供了一种下游节点,是包含上游节点和下游节点的系统中的下游节点,包括:请求接收模块,用于从上游节点接收请求;请求状态记录生成模块,用于执行接收的请求,并生成请求状态记录,请求状态记录包括是否成功的标识,其中标识表示请求执行成功或者失败;失败请求插入模块,用于在根据请求状态记录中的标识而确认为请求失败的情况下,将该失败请求插入到用于记录失败的请求的失败重试队列;和重试模块,用于对插入到失败重试队列中的失败请求进行重试。
本公开的另一方面提供了一种状态码查询方法,在包含上游节点和下游节点的系统中在上游节点处执行,该方法包括如下操作:向下游节点发出请求,对每一个请求分配一个在系统中唯一标识该请求的全局请求ID;根据全局请求ID查询状态码,全局请求ID和状态码包含于在下游节点处生成的请求状态记录中,状态码用于跟踪每个请求执行到哪一层的下游节点。
本公开的另一方面提供了一种上游节点,是包含上游节点和下游节点的系统中的上游节点,包括:请求发送模块,用于向下游节点发出请求,对每一个请求分配一个在系统中唯一标识该请求的全局请求ID;状态码查询模块,根据全局请求ID来查询状态码,全局请求ID和状态码包含于在下游节点处生成的请求状态记录中,状态码用于跟踪每个请求执行到哪一层的下游节点。
本公开的另一方面提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时根据上述任一项记载的方法。
本公开的另一方面提供了一种请求处理装置,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的请求处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710963183.0/2.html,转载请声明来源钻瓜专利网。