分布式重试方法、装置、电子设备和存储介质制造方法及图纸

技术编号:25478970 阅读:12 留言:0更新日期:2020-09-01 23:00
本发明专利技术提供了一种分布式重试方法、装置、电子设备和存储介质,应用于重试客户端时方法包括:在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据,并将重试数据和所述重试点对应的重试点标识发送给重试服务器,所述重试服务器用于对所述重试数据在所述重试客户端对应的集群中进行重试调度,所述重试点是执行业务逻辑的重试操作的入口;接收重试服务器发送来的重试调用指令,所述重试调用指令包括重试数据和重试点标识;根据所述重试调用指令,启动重试线程,通过所述重试线程调用接收到的重试数据执行重试点标识对应业务逻辑的重试操作。本发明专利技术不占用业务逻辑的主流程,不会影响集群的服务性能,而且降低了代码侵入性。

【技术实现步骤摘要】
分布式重试方法、装置、电子设备和存储介质
本专利技术涉及异常处理
,特别是涉及一种分布式重试方法、装置、电子设备和存储介质。
技术介绍
现有技术中,对于分布式环境下导致的服务异常、超时等异常,一般会在业务逻辑的代码中加“3次重试”的操作,以减少偶然超时导致的系统影响。现有技术的重试方式,代码侵入性较强,而且当所依赖的服务长时间出现不可恢复的问题时,“3次重试”会增加线程运行时间,导致长时间阻塞,进而导致自身服务性能的整体下降。
技术实现思路
鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种分布式重试方法、装置、电子设备和存储介质。依据本专利技术的第一方面,提供了一种分布式重试方法,包括:在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据,并将所述重试数据和所述重试点对应的重试点标识发送给重试服务器,所述重试服务器用于对所述重试数据在所述重试客户端对应的集群中进行重试调度,所述重试点是执行业务逻辑的重试操作的入口;接收重试服务器发送来的重试调用指令,所述重试调用指令包括重试数据和重试点标识;根据所述重试调用指令,启动重试线程,通过所述重试线程调用接收到的重试数据执行重试点标识对应业务逻辑的重试操作。依据本专利技术的第二方面,提供了一种分布式重试方法,包括:接收重试客户端发送的重试数据和对应的重试点标识,并将所述重试数据放入所述重试点标识对应的第一重试队列,所述重试点标识是预先注册的重试点的标识,所述重试点是执行业务逻辑的重试操作的入口;在到达所述第一重试队列中的重试数据对应的重试时间时,根据所述重试点标识对应的多个重试客户端,确定待执行重试操作的目标重试客户端,并将到达重试时间的重试数据作为目标重试数据;根据所述目标重试数据和所述重试点标识,生成重试调用指令,并将所述重试调用指令发送至所述目标重试客户端,所述重试调用指令用于指示所述目标重试客户端通过重试线程调用所述目标重试数据执行所述重试点标识对应业务逻辑的重试操作。依据本专利技术的第三方面,提供了一种分布式重试装置,包括:重试数据上报模块,用于在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据,并将所述重试数据和所述重试点对应的重试点标识发送给重试服务器,所述重试服务器用于对所述重试数据在所述重试客户端对应的集群中进行重试调度,所述重试点是执行业务逻辑的重试操作的入口;调用指令接收模块,用于接收重试服务器发送来的重试调用指令,所述重试调用指令包括重试数据和重试点标识;重试操作执行模块,用于根据所述重试调用指令,启动重试线程,通过所述重试线程调用接收到的重试数据执行重试点标识对应业务逻辑的重试操作。依据本专利技术的第四方面,提供了一种分布式重试装置,包括:重试数据接收模块,用于接收重试客户端发送的重试数据和对应的重试点标识,并将所述重试数据放入所述重试点标识对应的第一重试队列,所述重试点标识是预先注册的重试点的标识,所述重试点是执行业务逻辑的重试操作的入口;目标节点确定模块,用于在到达所述第一重试队列中的重试数据对应的重试时间时,根据所述重试点标识对应的多个重试客户端,确定待执行重试操作的目标重试客户端,并将到达重试时间的重试数据作为目标重试数据;调用指令发送模块,用于根据所述目标重试数据和所述重试点标识,生成重试调用指令,并将所述重试调用指令发送至所述目标重试客户端,所述重试调用指令用于指示所述目标重试客户端通过重试线程调用所述目标重试数据执行所述重试点标识对应业务逻辑的重试操作。依据本专利技术的第五方面,还提供了一种电子设备,处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面或第二方面所述的分布式重试方法。依据本专利技术的第六方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第二方面所述的分布式重试方法。本专利技术提供的分布式重试方法、装置、电子设备和存储介质,通过重试客户端监控预先注册的重试点对应业务逻辑的执行过程,在业务逻辑出现异常时将重试数据和重试点标识发送给重试服务器,重试服务器将重试数据放入与重试点标识对应的第一重试队列中,并对第一重试队列中的重试数据进行调度,在到达第一重试队列中的重试数据对应的重试时间时,确定待执行重试操作的目标重试客户端,并将包括目标重试数据和重试点标识的重试调用指令发送给重试客户端,重试客户端通过重试线程调用目标重试数据执行重试点标识对应业务逻辑的重试操作,由于在进行重试操作时由重试服务器对集群中的重试客户端进行统一调度,而且通过启动重试线程来执行重试操作,不占用业务逻辑的主流程,不会影响集群的服务性能,而且不会侵入业务逻辑的代码,降低了代码侵入性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。图1是本专利技术实施例提供的一种分布式重试系统的结构框图;图2是本专利技术实施例提供的一种分布式重试方法的步骤流程图;图3是本专利技术实施例中的重试客户端的内部交互图;图4是本专利技术实施例提供的一种分布式重试方法的步骤流程图;图5是本专利技术实施例提供的一种分布式重试方法的步骤流程图;图6是本专利技术实施例提供的一种分布式重试方法的步骤流程图;图7是本专利技术实施例中的重试服务器的内部交互图;图8是本专利技术实施例提供的一种分布式重试装置的结构框图;图9是本专利技术实施例提供的一种分布式重试装置的结构框图;图10为本专利技术实施例提供的一种电子设备的结构框图。具体实施方式下面将参照附图更详细地描述本专利技术的示例性实施例。虽然附图中显示了本专利技术的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术,并且能够将本专利技术的范围完整的传达给本领域的技术人员。图1是本专利技术实施例提供的一种分布式重试系统的结构框图,如图1所示,该分布式重试系统包括:重试服务器11,用于记录业务集群的集群信息、重试点信息、重试客户端的客户端标识以及重试数据等相关信息,对于自动重试的数据会根据重试点对应的重试策略进行重试调度;对于手动重试的数据,可通过可视化界面根据用户的重试指令触发重试调度;其中,所述重试点信息包括重试点标识和重试策略,所述重试策略包括重试时间计算方式、重试数据有效期和重试次数阈值;至少一个业务集群1本文档来自技高网...

【技术保护点】
1.一种分布式重试方法,其特征在于,应用于重试客户端,包括:/n在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据,并将所述重试数据和所述重试点对应的重试点标识发送给重试服务器,所述重试服务器用于对所述重试数据在所述重试客户端对应的集群中进行重试调度,所述重试点是执行业务逻辑的重试操作的入口;/n接收重试服务器发送来的重试调用指令,所述重试调用指令包括重试数据和重试点标识;/n根据所述重试调用指令,启动重试线程,通过所述重试线程调用接收到的重试数据执行重试点标识对应业务逻辑的重试操作。/n

【技术特征摘要】
1.一种分布式重试方法,其特征在于,应用于重试客户端,包括:
在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据,并将所述重试数据和所述重试点对应的重试点标识发送给重试服务器,所述重试服务器用于对所述重试数据在所述重试客户端对应的集群中进行重试调度,所述重试点是执行业务逻辑的重试操作的入口;
接收重试服务器发送来的重试调用指令,所述重试调用指令包括重试数据和重试点标识;
根据所述重试调用指令,启动重试线程,通过所述重试线程调用接收到的重试数据执行重试点标识对应业务逻辑的重试操作。


2.根据权利要求1所述的方法,其特征在于,在所述通过所述重试线程调用接收到的重试数据执行重试点标识对应业务逻辑的重试操作之后,还包括:
获取所述重试操作的执行结果,将所述执行结果存放到结果队列中;
通过回调线程从所述结果队列中读取所述执行结果,并将所述执行结果发送给所述重试服务器。


3.根据权利要求1所述的方法,其特征在于,在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据之前,还包括:
获取所述重试客户端所在集群的集群信息,并获取所述集群中的重试点信息,所述重试点信息包括重试点标识和重试策略,所述重试策略包括重试时间计算方式、重试数据有效期和重试次数阈值;
根据所述集群信息、重试点信息和所述重试客户端的客户端标识,生成注册信息,并将所述注册信息发送至重试服务器。


4.根据权利要求1所述的方法,其特征在于,所述在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据,并将所述重试数据和所述重试点对应的重试点标识发送给重试服务器,包括:
在监控到预先注册的重试点对应的业务逻辑在执行过程中出现异常时,获取重试数据,并确定所述业务逻辑对应的重试类型,所述重试类型包括自动重试或手动重试;
将所述重试数据、重试类型和所述重试点标识发送给重试服务器。


5.一种分布式重试方法,其特征在于,应用于重试服务器,包括:
接收重试客户端发送的重试数据和对应的重试点标识,并将所述重试数据放入所述重试点标识对应的第一重试队列,所述重试点标识是预先注册的重试点的标识,所述重试点是执行业务逻辑的重试操作的入口;
在到达所述第一重试队列中的重试数据对应的重试时间时,根据所述重试点标识对应的多个重试客户端,确定待执行重试操作的目标重试客户端,并将到达重试时间的重试数据作为目标重试数据;
根据所述目标重试数据和所述重试点标识,生成重试调用指令,并将所述重试调用指令发送至所述目标重试客户端,所述重试调用指令用于指示所述目标重试客户端通过重试线程调用所述目标重试数据执行所述重试点标识对应业务逻辑的重试操作。


6.根据权利要求5所述的方法,其特征在于,在接收重试客户端发送的重试数据之前,还包括:
接收重试客户端发送来的注册信息,所述注册信息包括集群信息、重试点信息和客户端标识,所述重试点信息包括重试点标识和重试策略,所述重试策略包括重试时间计算方式、重试数据有效期和重试次数阈值;
保存所述注册信息。


7.根据权利要求5所述的方法,其特征在于,所述根据所述重试点标识对应的多个重试客户端,确定待执行重试操作的目标重试客户端,包括:
对所述重试点标识对应的多个重试客户端进行轮询;
若轮询到的重试客户端可用,则将该重试客户端作为待执行重试操作的目标重试客户端;
若轮询到的重试客户端不可用,则将下一个可用的重试客户端作为待执行重试操作的目标重试客户端。


8.根据权利要求5所述的方法,其特征在于,所述接收重试客户端发送的重试数据和对应的重试点标识,并将所述重试数据放入所述重试点标识对应的第一重试队列,包括:
接收重试客户端发送的重试数据、重试点标识和重试类型;
若所述重试类型为自动重试,则将所述重试数据放入所述重试点标识对应的第一重试队列;
所述方法还包括:
若所述重试类型为手动重试,则将所述重试数据放入所述重试点标识对应的第二重试队列。
<...

【专利技术属性】
技术研发人员:马文斌
申请(专利权)人:瑞庭网络技术上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1