报错报文重试方法、装置、电子设备及存储介质与流程



1.本发明涉及报错报文重试领域,具体涉及一种报错报文重试方法、装置、电子设备及存储介质。


背景技术:



2.kubernetes(k8s)csi sidecar containers是一组标准容器,旨在简化kubernetes上csi驱动程序的开发和部署。这些容器会观察kubernetes api的通用逻辑,触发针对csi卷驱动程序容器的适当操作,并根据需要更新kubernetes api。
3.在批量操作k8s资源时,由于后端网络问题/存储资源不足/参数错误等问题失败后,csi sidecar会根据指数退避算法,下发重试请求,即使这样也会产生大量的需要重新发送的错误报文,大量错误报文的不断发送占用计算机设备大量的cpu资源,增加计算机设备的负担。


技术实现要素:



4.有鉴于此,本发明实施例提供了一种报错报文重试方法,旨在解决现有技术会导致大量错误报文的不断发送占用计算机设备大量的cpu资源,增加计算机设备的负担的问题。
5.根据第一方面,本发明实施例提供了一种报错报文重试方法,包括:
6.获取目标报错报文对应的目标错误信息;
7.对目标错误信息进行解析,确定目标报错报文对应的错误来源;其中,错误来源用于表征返回目标错误信息的设备;
8.根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文;
9.根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。
10.本发明实施例提供的报错报文重试方法,获取目标报错报文对应的目标错误信息,然后,对目标错误信息进行解析,确定目标报错报文对应的错误来源,保证了确定的目标报错报文对应的错误来源的准确性。根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文,保证了确定的与目标报错报文对应的错误来源相同的其他报错报文的准确性。根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。上述方法,不需要重新发送大量的错误报文,大量错误报文的不断发送占用计算机设备大量的cpu资源,增加计算机设备的负担。因此,上述方法减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的cpu资源,减轻了计算机设备的负担。
11.结合第一方面,在第一方面第一实施方式中,根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,包括:
12.对目标错误信息进行解析,确定目标报错报文对应的目标等待时间
13.获取其他报错报文对应的其他等待时间;
14.根据目标等待时间与其他等待时间之间的关系,确定目标报错报文对应的候选重试时间;
15.根据候选重试时间,对目标报错报文进行重新发送。
16.本发明实施例提供的报错报文重试方法,对目标错误信息进行解析,确定目标报错报文对应的目标等待时间,保证了确定目标报错报文对应的目标等待时间的准确性。然后,获取其他报错报文对应的其他等待时间;根据目标等待时间与其他等待时间之间的关系,确定目标报错报文对应的候选重试时间,保证了确定的目标报错报文对应的候选重试时间的准确性。根据候选重试时间,对目标报错报文进行重新发送,保证了对目标报错报文进行重新发送的准确性,减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的cpu资源,减轻了计算机设备的负担。
17.结合第一方面第一实施方式,在第一方面第二实施方式中,根据目标等待时间与其他等待时间之间的关系,确定目标报错报文对应的候选重试时间,包括:
18.对目标错误信息进行解析,确定目标报错报文对应的第一权重信息;
19.获取其他报错报文对应的第二权重信息;
20.基于第一权重信息、第二权重信息、目标等待时间以及其他等待时间之间的关系,确定目标报错报文对应的候选重试时间。
21.本发明实施例提供的报错报文重试方法,对目标错误信息进行解析,确定目标报错报文对应的第一权重信息,保证了确定的目标报错报文对应的第一权重信息的准确性。获取其他报错报文对应的第二权重信息,然后,基于第一权重信息、第二权重信息、目标等待时间以及其他等待时间之间的关系,确定目标报错报文对应的候选重试时间,保证了确定的目标报错报文对应的候选重试时间的准确性,减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的cpu资源,减轻了计算机设备的负担。
22.结合第一方面第二实施方式,在第一方面第三实施方式中,基于第一权重信息、第二权重信息、目标等待时间以及其他等待时间之间的关系,确定目标报错报文对应的候选重试时间,包括:
23.利用第一权重信息除以第一权重信息与第二权重信息的和,得到目标报错报文对应的目标权重信息;
24.利用第二权重信息除以第一权重信息与第二权重信息的和,得到其他报错报文对应的其他权重信息;
25.将目标权重信息乘以目标等待时间的积加上其他权重信息乘以其他等待时间的积,计算得到目标报错报文对应的候选重试时间。
26.本发明实施例提供的报错报文重试方法,利用第一权重信息除以第一权重信息与第二权重信息的和,得到目标报错报文对应的目标权重信息,保证了得到的目标报错报文对应的目标权重信息的准确性。利用第二权重信息除以第一权重信息与第二权重信息的和,得到其他报错报文对应的其他权重信息,保证了计算得到的其他报错报文对应的其他权重信息的准确性,将目标权重信息乘以目标等待时间的积加上其他权重信息乘以其他等待时间的积,计算得到目标报错报文对应的候选重试时间,保证了计算得到的候选重试时间的准确性。
27.结合第一方面第一实施方式,在第一方面第四实施方式中,根据候选重试时间,对目标报错报文进行重新发送,包括:
28.获取目标报错报文对应的发送次数;
29.利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间;
30.将候选重试时间与候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间;
31.在目标重试时间之后,对目标报错报文进行重新发送。
32.本发明实施例提供的报错报文重试方法,获取目标报错报文对应的发送次数,利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间,保证了计算得到的目标报错报文对应的候选等待时间的准确性。将候选重试时间与候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间,保证了确定的目标报错报文对应的目标重试时间的准确性。然后,在目标重试时间之后,对目标报错报文进行重新发送,保证了发送目标报错报文的时间间隔不会太长也不会太短,从而减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的cpu资源,减轻了计算机设备的负担。
33.结合第一方面第四实施方式,在第一方面第六实施方式中,方法还包括:
34.在对目标报错报文重新发送失败之后,再次计算目标报错报文对应的候选重试时间;
35.利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间;
36.将目标报错报文对应的候选重试时间与目标报错报文对应的候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间;
37.在目标重试时间之后,对目标报错报文进行重新发送。
38.本发明实施例提供的报错报文重试方法,在对目标报错报文重新发送失败之后,再次计算目标报错报文对应的候选重试时间,保证了计算得到的候选重试时间的准确性。然后,指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间,保证了计算得到的目标报错报文对应的候选等待时间的准确性。将目标报错报文对应的候选重试时间与目标报错报文对应的候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间,保证了确定的目标报错报文对应的目标重试时间的准确性。在目标重试时间之后,对目标报错报文进行重新发送,从而保证了可以对目标报错报文进行多次发送,且保证了发送目标报错报文的时间间隔不会太长也不会太短,从而减少了需要重新发送的错误报文的数量,减轻了计算机设备的负担。
39.结合第一方面,在第一方面第六实施方式中,方法还包括:
40.获取其他报错报文对应的其他错误信息;
41.将其他错误信息和目标错误信息存储至同一存储空间;
42.在目标报错报文发送成功后,从存储空间中删除其他错误信息,并重新发送其他
报错报文。
43.本发明实施例提供的报错报文重试方法,获取其他报错报文对应的其他错误信息;将其他错误信息和目标错误信息存储至同一存储空间,可以保证电子设备可以对目标报错报文以及其他报错报文进行更新和记录,在目标报错报文发送成功后,电子设备确定从电子设备到目标报错报文对应的错误来源设备之间的通信链路正常。电子设备不需要在记录目标报错报文和其他报错报文,因此,从存储空间中删除其他错误信息,并重新发送其他报错报文,保证了目标报错报文和其他报错报文均可以正常发送。
44.根据第二方面,本发明实施例还提供了一种报错报文重试装置,包括:
45.第一获取模块,用于获取目标报错报文对应的目标错误信息;
46.第一确定模块,用于对所述目标错误信息进行解析,确定所述目标报错报文对应的错误来源;其中,所述错误来源用于表征返回所述目标错误信息的设备;
47.第二确定模块,用于根据所述错误来源,确定与所述目标报错报文对应的错误来源相同的其他报错报文;
48.发送模块,用于根据所述目标报错报文与所述其他报错报文之间的关系,对所述目标报错报文进行重新发送,并在所述目标报错报文发送成功之前禁止对所述其他报错报文进行重新发送。
49.本发明实施例提供的报错报文重试装置,获取目标报错报文对应的目标错误信息,然后,对目标错误信息进行解析,确定目标报错报文对应的错误来源,保证了确定的目标报错报文对应的错误来源的准确性。根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文,保证了确定的与目标报错报文对应的错误来源相同的其他报错报文的准确性。根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。上述装置,不需要重新发送大量的错误报文,大量错误报文的不断发送占用计算机设备大量的cpu资源,增加计算机设备的负担。因此,减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的cpu资源,减轻了计算机设备的负担。
50.根据第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中的报错报文重试方法。
51.根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行第一方面或者第一方面的任意一种实施方式中的报错报文重试方法。
附图说明
52.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1是应用本发明实施例提供的sidecar容器的工作流程示意图;
54.图2是应用本发明另一实施例提供的报错报文重试方法的流程图;
55.图3是应用本发明另一实施例提供的报错报文重试方法中错误码调用和配置的流程图;
56.图4是应用本发明另一实施例提供的报错报文重试方法的流程图;
57.图5是应用本发明另一实施例提供的报错报文重试方法的流程图;
58.图6是应用本发明另一实施例提供的根据错误来源对报错报文进行分类的示意图;
59.图7是应用本发明实施例提供的报错报文重试装置的功能模块图;
60.图8是应用本发明实施例提供的报错报文重试装置的功能模块图;
61.图9是应用本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
62.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
63.kubernetes csi sidecar containers是一组标准容器,旨在简化kubernetes上csi驱动程序的开发和部署。这些容器会观察kubernetes api的通用逻辑,触发针对csi卷驱动程序容器的适当操作,并根据需要更新kubernetes api。
64.csi是容器存储接口(container storage interface)的简写,旨在能为容器编排引擎co(container orchestrator system)和存储供应商sp(storage provider)之间建立一套标准的存储调用接口,从而定义行业标准,使存储供应商(sp)能够开发一个符合csi标准的插件并使其可以在多个容器编排(co)系统中工作。
65.csi规定co通过rpc(rpc是远程过程调用(remote procedure call))方式与插件交互。每个sp必须提供:
66.node plugin:一个grpc端点,提供必须在节点上运行的csi rpc接口,这些接口一般用于挂载/卸载卷相关的功能。
67.controller plugin:一个grpc端点,提供可以在任何地方运行的csi rpc接口,一般用于创建/删除卷相关的的功能。
68.kubernetes开发团队维护以下kubernetes csi sidecar containers的功能,示例性的如下表1所示。
69.表1 kubernetes csi sidecar containers的功能
[0070][0071]
示例性的,如图1所示,sidecar容器主动通过grpc请求,调用csi的接口时,完成以下功能动作:
[0072]
创建/删除/扩容pvc;
[0073]
创建/删除/回滚volumesnapshot;
[0074]
挂载/卸载pvc。
[0075]
当底层csi出现错误时,sidecar会通过把请求重新入队,来完成后续的重试动作,为了避免错误后的重试风暴,采用了指数退避算法来解决重试风暴的问题。但是,这样会产生大量的需要重新发送的错误报文,大量错误报文的不断发送占用计算机设备大量的cpu资源,增加计算机设备的负担。
[0076]
因此,本技术实施例提供了一种报错报文重试方法,旨在解决现有技术会导致大量错误报文的不断发送占用计算机设备大量的cpu资源,增加计算机设备的负担的问题。
[0077]
需要说明的是,本技术实施例提供的报错报文重试的方法,其执行主体可以是报错报文重试的装置,该报错报文重试的装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是服务器或者终端,其中,本技术实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集,本技术实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等
其他智能硬件设备。下述方法实施例中,均以执行主体是电子设备为例来进行说明。
[0078]
在本技术一个实施例中,如图2所示,提供了一种报错报文重试方法,以该方法应用于电子设备为例进行说明,包括以下步骤:
[0079]
s11、获取目标报错报文对应的目标错误信息。
[0080]
在本技术一种可选的实施方式中,电子设备可以向其他设备发送报文消息,在报文消息发送失败之后,获取目标报错报文,并获取目标报错报文对应的目标错误信息。
[0081]
在本技术另一种可选的实施方式中,电子设备还可以接收其他设备发送的目标报错报文对应的目标错误信息,或者接收用户输入的目标报错报文对应的目标错误信息,本技术实施例对电子设备获取目标报错报文对应的目标错误信息的具体方式不做具体限定。
[0082]
s12、对目标错误信息进行解析,确定目标报错报文对应的错误来源。
[0083]
其中,错误来源用于表征返回目标错误信息的设备。
[0084]
具体地,电子设备在获取到目标报错报文对应的目标错误信息之后,电子设备可以对目标错误信息进行读取并进行解析,从而确定目标报错报文对应的错误来源。
[0085]
在本技术一种可选的实施方式中,目标报错报文对应的目标错误信息中可以包括目标报错报文对应的错误来源和错误原因。其中,错误来源用于表征返回目标错误信息的设备。
[0086]
示例性的,假设电子设备将目标报错报文发送给设备d,需要经过设备a、b、c,当电子设备将目标报错报文发送给设备a之后,发送成功,但是当设备a将目标报错报文转发给设备b时,目标报错报文发送失败。因此,设备b会向设备a返回目标报文信息对应的目标错误信息,设备b再次将目标报文信息对应的目标错误信息返回给电子设备,此时,目标错误信息中包括的错误来源用于表征设备b向电子设备返回的目标错误信息。
[0087]
示例性的,假设目标错误信息中包括错误原因和错误来源。示例性的,错误原因可以包括网络错误、参数错误、资源不足等,错误来源可以是存储资源a有故障、网关资源b、集c等。当错误原因和错误来源两者结合后,目标错误信息就可以呈现以下的效果:xxyyyy。是举个例子:目标错误信息为01000a,其中01表示错误来源,例如存储集a,网关b等等。这一项内容,来至于csi自身识别到的错误来源而决定。因为csi是直接对接后端存储的,所以从csi自身可以明确设定出01表示哪一个来源。只要保证同一个来源是同一个错误码即可。而000a表示具体的错误原原因,例如网络错误、参数错误等等。这一项内容,则由用户来进行配置。示例性的,错误码调用和配置的流程可以如下图3所示。具体地,sidecar向cis下发请求,cis转发请求到后端存储,后端存储向cis返回错误,cis根据错误,查询configmap,返回给sidecar。
[0088]
s13、根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文。
[0089]
具体地,电子设备在确定了目标报错报文对应的错误来源,可以根据错误来源与存储空间之间的对应关系,确定目标报错报文对应的存储空间,将目标报错报文对应的目标错误信息,存储至对应的存储空间。然后,在存储空间中确定与目标报错报文对应的错误来源相同的其他报错报文。
[0090]
其中,其他报错报文的数量可以是1个、2个和多个,电子设备对其他报错报文的数量不做具体限定。
[0091]
s14、根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发
送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。
[0092]
在本技术一种可选的实施方式中,电子设备可以基于预设方法计算目标报错报文对应的发送时间,在确定目标报错报文对应的发送时间之后,在发送时间对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。
[0093]
本发明实施例提供的报错报文重试方法,获取目标报错报文对应的目标错误信息,然后,对目标错误信息进行解析,确定目标报错报文对应的错误来源,保证了确定的目标报错报文对应的错误来源的准确性。根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文,保证了确定的与目标报错报文对应的错误来源相同的其他报错报文的准确性。根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。上述方法,不需要重新发送大量的错误报文,大量错误报文的不断发送占用计算机设备大量的cpu资源,增加计算机设备的负担。因此,减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的cpu资源,减轻了计算机设备的负担。
[0094]
在本技术一个实施例中,如图4所示,提供了一种报错报文重试方法,以该方法应用于电子设备为例进行说明,包括以下步骤:
[0095]
s21、获取目标报错报文对应的目标错误信息。
[0096]
关于该步骤请参见图2对s11的介绍,在此不进行赘述。
[0097]
s22、对目标错误信息进行解析,确定目标报错报文对应的错误来源。
[0098]
关于该步骤请参见图2对s12的介绍,在此不进行赘述。
[0099]
s23、根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文。
[0100]
关于该步骤请参见图2对s13的介绍,在此不进行赘述。
[0101]
s24、根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。
[0102]
在本技术一种可选的实施方式中,上述s24“根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送”,可以包括如下步骤:
[0103]
s241、对目标错误信息进行解析,确定目标报错报文对应的目标等待时间。
[0104]
在本技术一种可选的实施方式中,电子设备在获取目标报错报文对应的目标错误信息之后,电子设备可以对目标错误信息进行读取并进行解析,确定目标报错报文对应的目标等待时间。
[0105]
在本技术另一种可选的实施方式中,电子设备还可以将目标错误信息与预设错误信息表中的错误信息进行对比,根据对比结果,确定目标报错报文对应的目标等待时间。
[0106]
其中,预设错误信息表中可以包括各个报错报文对应的报错信息以及报错报文对应的等待时间。
[0107]
s242、获取其他报错报文对应的其他等待时间。
[0108]
在本技术一种可选的实施方式中,电子设备可以接收其他设备发送的其他报错报文对应的其他等待时间,或者接收用户输入的其他报错报文对应的其他等待时间。
[0109]
在本技术另一种可选的实施方式中,电子设备可以获取其他报错报文对应的其他错误信息,并将其他错误信息与预设错误信息表中的错误信息进行对比,根据对比结果,确
定其他报错报文对应的其他等待时间。
[0110]
其中,预设错误信息表中可以包括各个报错报文对应的报错信息以及报错报文对应的等待时间。
[0111]
s243、根据目标等待时间与其他等待时间之间的关系,确定目标报错报文对应的候选重试时间。
[0112]
在本技术一种可选的实施方式中,电子设备在获取到目标报错报文对应的目标等待时间以及其他报错报文对应的其他等待时间之后,电子设备可以将目标等待时间与其他等待时间进行对比,从目标等待时间与其他等待时间中确定最大时间为目标报错报文对应的候选重试时间。
[0113]
在本技术另一种可选的实施方式中,上述s243“根据目标等待时间与其他等待时间之间的关系,确定目标报错报文对应的候选重试时间”,可以包括如下步骤:
[0114]
(1)对目标错误信息进行解析,确定目标报错报文对应的第一权重信息。
[0115]
在本技术一种可选的实施方式中,电子设备还可以将目标错误信息与预设错误信息表中的错误信息进行对比,根据对比结果,确定目标报错报文对应的第一权重信息。
[0116]
其中,预设错误信息表中可以包括各个报错报文对应的报错信息以及报错报文对应的权重信息。
[0117]
在本技术另一种可选的实施方式中,电子设备还可以接收其他设备发送的目标报错报文对应的第一权重信息,或者接收用户输入的目标报错报文对应的第一权重信息。
[0118]
(2)获取其他报错报文对应的第二权重信息。
[0119]
在本技术一种可选的实施方式中,电子设备还可以接收其他设备发送的其他报错报文对应的第二权重信息,或者接收用户输入的其他报错报文对应的第二权重信息。
[0120]
在本技术另一种可选的实施方式中,电子设备可以获取其他报错报文对应的其他错误信息,并将其他错误信息与预设错误信息表中的错误信息进行对比,根据对比结果,确定其他报错报文对应的第二权重信息。
[0121]
其中,预设错误信息表中可以包括各个报错报文对应的报错信息以及报错报文对应的权重信息。
[0122]
(3)基于第一权重信息、第二权重信息、目标等待时间以及其他等待时间之间的关系,确定目标报错报文对应的候选重试时间。
[0123]
在本技术一种可选的实施方式中,电子设备可以将第一权重信息乘以目标等待时间的积加上第二权重信息乘以其他等待时间的积进行相加,得到目标报错报文对应的候选重试时间。
[0124]
在本技术另一种可选的实施方式中,上述步骤(3)“基于第一权重信息、第二权重信息、目标等待时间以及其他等待时间之间的关系,确定目标报错报文对应的候选重试时间”,可以包括如下步骤:
[0125]
(31)利用第一权重信息除以第一权重信息与第二权重信息的和,得到目标报错报文对应的目标权重信息;
[0126]
(32)利用第二权重信息除以第一权重信息与第二权重信息的和,得到其他报错报文对应的其他权重信息;
[0127]
(33)将目标权重信息乘以目标等待时间的积加上其他权重信息乘以其他等待时
间的积,计算得到目标报错报文对应的候选重试时间。
[0128]
具体地,电子设备可以利用第一权重信息除以第一权重信息与第二权重信息的和,得到目标报错报文对应的目标权重信息,并利用第二权重信息除以第一权重信息与第二权重信息的和,得到其他报错报文对应的其他权重信息。然后,电子设备将目标权重信息乘以目标等待时间的积加上其他权重信息乘以其他等待时间的积,计算得到目标报错报文对应的候选重试时间。
[0129]
s244、根据候选重试时间,对目标报错报文进行重新发送。
[0130]
在本技术一种可选的实施方式中,电子设备在确定了目标报错报文对应的候选重试时间之后,电子设备可以在重试时间之后,对目标报错报文进行重新发送。
[0131]
在本技术另一种可选的实施方式中,上述s244“根据候选重试时间,对目标报错报文进行重新发送”,可以包括如下步骤:
[0132]
(1)获取目标报错报文对应的发送次数。
[0133]
具体地,电子设备在确定目标报错报文对应的候选重试时间之后,电子设备可以根据对目标报错报文发送次数的记录,获取目标报错报文对应的发送次数。
[0134]
(2)利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间。
[0135]
具体地,电子设备在获取到目标报错报文对应的发送次数之后,电子设备可以利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间。
[0136]
其中,退避算法就是网络上的节点在发送数据冲突后,等待一定时间后再发,等待时间是随指数增长,从而避免频繁的触发冲突。在计算机网络中,二进制指数退避算法或截断指数退避算法常常作为避免网络堵塞的一部分用于同一数据块的重发策略。发生n次冲突后,等待时间在0~2^n-1个间隙时间(slot times)之间选择随机选择。比如,发生第一次冲突后,每个发送方将会等待0或1个间隙时间(slot times);第二次冲突后,每个发送方的等待时间将会在0到3个间隙时间(slot times)之间任意选择;第三次冲突后,每个发送方的等待时间将会在0到7个间隙时间(slot times)之间任意选择,以此类推,随着冲突次数的增加,发送方的等待时间将会有成倍增加的可能性。而从“截断(truncated)”的是意思是指,到一定次数,指数运算会停止,也就是说等待时间不会再无限的增加下去。比如,设置上限n=10,则最长等待时间为1023个间隙时间。因为在等待时间内某些场景同样有冲突发生的可能性,所以一般流程会在16次重试后终止。具体的退避算法如下:
[0137]
确定基本退避时间,它就是争用期(总线上的单程端到端传播时延记为x,以太网的端到端往返时间2x)。以太网把争用期定为51.2us。对于10mb/s以太网,在争用期内可发送512bit,即64字节。也可以说争用期是512比特时间。1比特时间就是发送1比特所需要的时间。所以这种时间单位与数据率密切相关。
[0138]
从离散的整数集合[0,1,

,]中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期。上面的参数k按下面的公式计算:k=min[重传次数,10]可见当重传次数不超过10时,参数k等于重传次数;但当重传次数超过10时,k就不在增大而一直等于10。
[0139]
当重传达16次仍不能成功时(这表明同时打算发送的数据站太多,以致连续发生冲突),则丢弃该,并向高层报告。例如,在第1次重传时,k=1,随机数r从整数{0,1}中选一
个数。因此重传推迟的时间是0或争用期,在这两个时间中随机选择一个。若再发生碰撞,则重传时,k=2,随机数r就从整数{0,1,2,3}中选一个数。因此重传推迟的时间是在0,2x,4x和6x这4个时间中随机抽取一个。同样,若在发生碰撞,则重传时k=3,随机数r就从整数{0,1,2,3,4,5,6,7}中选一个数。以此类推。若连续多次发生冲突,就表明可能有较多的站参与争用信道。但使用退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
[0140]
(3)将候选重试时间与候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间。
[0141]
具体地,电子设备在计算得到目标报错报文对应的候选等待时间之后,电子设备可以将候选重试时间与候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间。
[0142]
(4)在目标重试时间之后,对目标报错报文进行重新发送。
[0143]
具体地,电子设备在确定目标报错报文对应的目标重试时间之后,可以在目标重试时间之后,对目标报错报文进行重新发送。
[0144]
在本技术一种可选的实施方式中,上述方法还可以包括如下步骤:
[0145]
(5)在对目标报错报文重新发送失败之后,再次计算目标报错报文对应的候选重试时间。
[0146]
(6)利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间。
[0147]
(7)将目标报错报文对应的候选重试时间与目标报错报文对应的候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间;
[0148]
(8)在目标重试时间之后,对目标报错报文进行重新发送。
[0149]
具体地,当第一次在目标重试时间之后发送目标报错报文,且目标报错报文发送失败之后,电子设备需要再次计算目标报错报文对应的候选重试时间,并利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间。然后,电子设备将目标报错报文对应的候选重试时间与目标报错报文对应的候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间。在目标重试时间之后,对目标报错报文进行重新发送。其中,电子设备计算目标报错报文对应的候选重试时间以及候选等待时间的方式可以参见上文,再次不进行赘述。
[0150]
本发明实施例提供的报错报文重试方法,对目标错误信息进行解析,确定目标报错报文对应的目标等待时间,保证了确定目标报错报文对应的目标等待时间的准确性。然后,对目标错误信息进行解析,确定目标报错报文对应的第一权重信息,保证了确定的目标报错报文对应的第一权重信息的准确性。获取其他报错报文对应的第二权重信息。然后,利用第一权重信息除以第一权重信息与第二权重信息的和,得到目标报错报文对应的目标权重信息,保证了得到的目标报错报文对应的目标权重信息的准确性。利用第二权重信息除以第一权重信息与第二权重信息的和,得到其他报错报文对应的其他权重信息,保证了计算得到的其他报错报文对应的其他权重信息的准确性,将目标权重信息乘以目标等待时间的积加上其他权重信息乘以其他等待时间的积,计算得到目标报错报文对应的候选重试时
间,保证了计算得到的候选重试时间的准确性。在计算得到目标报错报文对应的候选重试时间之后,电子设备获取目标报错报文对应的发送次数,利用指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间,保证了计算得到的目标报错报文对应的候选等待时间的准确性。将候选重试时间与候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间,保证了确定的目标报错报文对应的目标重试时间的准确性。然后,在目标重试时间之后,对目标报错报文进行重新发送,保证了发送目标报错报文的时间间隔不会太长也不会太短,从而减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的cpu资源,减轻了计算机设备的负担。
[0151]
此外,在对目标报错报文重新发送失败之后,再次计算目标报错报文对应的候选重试时间,保证了计算得到的候选重试时间的准确性。然后,指数退避算法,基于目标报错报文对应的发送次数,计算目标报错报文对应的候选等待时间,保证了计算得到的目标报错报文对应的候选等待时间的准确性。将目标报错报文对应的候选重试时间与目标报错报文对应的候选等待时间进行对比,从候选重试时间和候选等待时间中确定最大值,为目标报错报文对应的目标重试时间,保证了确定的目标报错报文对应的目标重试时间的准确性。在目标重试时间之后,对目标报错报文进行重新发送,从而保证了可以对目标报错报文进行多次发送,且保证了发送目标报错报文的时间间隔不会太长也不会太短,从而减少了需要重新发送的错误报文的数量,减轻了计算机设备的负担。
[0152]
在本技术一个实施例中,如图5所示,提供了一种报错报文重试方法,以该方法应用于电子设备为例进行说明,包括以下步骤:
[0153]
s31、获取目标报错报文对应的目标错误信息。
[0154]
关于该步骤请参见图4对s21的介绍,在此不进行赘述。
[0155]
s32、对目标错误信息进行解析,确定目标报错报文对应的错误来源。
[0156]
关于该步骤请参见图4对s22的介绍,在此不进行赘述。
[0157]
s33、根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文。
[0158]
关于该步骤请参见图4对s23的介绍,在此不进行赘述。
[0159]
s34、根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。
[0160]
关于该步骤请参见图4对s24的介绍,在此不进行赘述。
[0161]
s35、获取其他报错报文对应的其他错误信息。
[0162]
在本技术一种可选的实施方式中,电子设备可以接收其他设备发送的其他报错报文对应的其他错误信息,或者接收其他设备发送的其他报错报文对应的其他错误信息。
[0163]
在本技术另一种可选的实施方式中,电子设备还可以根据对报错报文进行记录的结果,其他报错报文对应的其他错误信息。
[0164]
s36、将其他错误信息和目标错误信息存储至同一存储空间。
[0165]
具体地,在确定了目标报错报文对应的目标错误信息以及其他报错报文对应的其他报错信息之后,电子设备可以将其他错误信息和目标错误信息存储至同一存储空间。
[0166]
示例性的,电子设备可以将其他错误信息和目标错误信息放入到不同的错误池中。不同池里的错误原因可以相同,因为他们的错误来源不同。示例性的,如图6所示,电子
设备根据报错报文对应的错误来源进行分类,分为错误来源1、错误来源2以及错误来源3,其中,错误来源1中可以包括同属于错误来源1的目标错误信息以及其他错误信息。其中,目标错误信息以及其他错误信息对应的错误来源相同,但是错误原因可以相同也可以不同。
[0167]
s37、在目标报错报文发送成功后,从存储空间中删除其他错误信息,并重新发送其他报错报文。
[0168]
具体地,电子设备在将目标报错报文发送成功之后,电子设备确定该目标报错报文对应的错误来源问题已经解决,因此,电子设备可以从存储空间中删除其他错误信息,并重新发送其他报错报文。
[0169]
本发明实施例提供的报错报文重试方法,获取其他报错报文对应的其他错误信息;将其他错误信息和目标错误信息存储至同一存储空间,可以保证电子设备可以对目标报错报文以及其他报错报文进行更新和记录,在目标报错报文发送成功后,电子设备确定从电子设备到目标报错报文对应的错误来源设备之间的通信链路正常。电子设备不需要在记录目标报错报文和其他报错报文,因此,从存储空间中删除其他错误信息,并重新发送其他报错报文,保证了目标报错报文和其他报错报文均可以正常发送。
[0170]
应该理解的是,虽然图2、图4以及图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4以及图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0171]
如图7所示,本实施例提供一种报错报文重试装置,包括:
[0172]
第一获取模块41,用于获取目标报错报文对应的目标错误信息;
[0173]
第一确定模块42,用于对目标错误信息进行解析,确定目标报错报文对应的错误来源;其中,所述错误来源用于表征返回所述目标错误信息的设备;
[0174]
第二确定模块43,用于根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文;
[0175]
发送模块44,用于根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。
[0176]
在本技术一个实施例中,上述发送模块44,具体用于对目标错误信息进行解析,确定目标报错报文对应的目标等待时间;获取其他报错报文对应的其他等待时间;根据目标等待时间与其他等待时间之间的关系,确定目标报错报文对应的候选重试时间;根据候选重试时间,对目标报错报文进行重新发送。
[0177]
在本技术一个实施例中,上述发送模块44,具体用于对目标错误信息进行解析,确定目标报错报文对应的第一权重信息;获取其他报错报文对应的第二权重信息;基于第一权重信息、第二权重信息、目标等待时间以及其他等待时间之间的关系,确定目标报错报文对应的候选重试时间。
[0178]
在本技术一个实施例中,上述发送模块44,具体用于利用第一权重信息除以第一权重信息与第二权重信息的和,得到目标报错报文对应的目标权重信息;利用第二权重信
architecture,简称eisa)总线等。通信总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0189]
其中,存储器54可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:hdd)或固态硬盘(英文:solid-state drive,缩写:ssd);存储器54还可以包括上述种类的存储器的组合。
[0190]
其中,处理器51可以是中央处理器(英文:central processing unit,缩写:cpu),网络处理器(英文:network processor,缩写:np)或者cpu和np的组合。
[0191]
其中,处理器51还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:asic),可编程逻辑器件(英文:programmable logic device,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:fpga),通用阵列逻辑(英文:generic array logic,缩写:gal)或其任意组合。
[0192]
可选地,存储器54还用于存储程序指令。处理器51可以调用程序指令,实现如本技术图2、图4以及图5实施例中所示的报错报文重试方法。
[0193]
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的报错报文重试方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0194]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

技术特征:


1.一种报错报文重试方法,其特征在于,包括:获取目标报错报文对应的目标错误信息;对所述目标错误信息进行解析,确定所述目标报错报文对应的错误来源;其中,所述错误来源用于表征返回所述目标错误信息的设备;根据所述错误来源,确定与所述目标报错报文对应的错误来源相同的其他报错报文;根据所述目标报错报文与所述其他报错报文之间的关系,对所述目标报错报文进行重新发送,并在所述目标报错报文发送成功之前禁止对所述其他报错报文进行重新发送。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标报错报文与所述其他报错报文之间的关系,对所述目标报错报文进行重新发送,包括:对所述目标错误信息进行解析,确定所述目标报错报文对应的目标等待时间;获取所述其他报错报文对应的其他等待时间;根据所述目标等待时间与所述其他等待时间之间的关系,确定所述目标报错报文对应的候选重试时间;根据所述候选重试时间,对所述目标报错报文进行重新发送。3.根据权利要求2所述的方法,其特征在于,所述根据所述目标等待时间与所述其他等待时间之间的关系,确定所述目标报错报文对应的候选重试时间,包括:对所述目标错误信息进行解析,确定所述目标报错报文对应的第一权重信息;获取所述其他报错报文对应的第二权重信息;基于所述第一权重信息、所述第二权重信息、所述目标等待时间以及所述其他等待时间之间的关系,确定所述目标报错报文对应的候选重试时间。4.根据权利要求3所述的方法,其特征在于,所述基于所述第一权重信息、所述第二权重信息、所述目标等待时间以及所述其他等待时间之间的关系,确定所述目标报错报文对应的候选重试时间,包括:利用所述第一权重信息除以所述第一权重信息与所述第二权重信息的和,得到所述目标报错报文对应的目标权重信息;利用所述第二权重信息除以所述第一权重信息与所述第二权重信息的和,得到所述其他报错报文对应的其他权重信息;将所述目标权重信息乘以所述目标等待时间的积加上所述其他权重信息乘以所述其他等待时间的积,计算得到所述目标报错报文对应的所述候选重试时间。5.根据权利要求2所述的方法,其特征在于,所述根据所述候选重试时间,对所述目标报错报文进行重新发送,包括:获取所述目标报错报文对应的发送次数;利用指数退避算法,基于所述目标报错报文对应的发送次数,计算所述目标报错报文对应的候选等待时间;将所述候选重试时间与所述候选等待时间进行对比,从所述候选重试时间和所述候选等待时间中确定最大值,为所述目标报错报文对应的目标重试时间;在所述目标重试时间之后,对所述目标报错报文进行重新发送。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在对所述目标报错报文重新发送失败之后,再次计算所述目标报错报文对应的候选重
试时间;利用指数退避算法,基于所述目标报错报文对应的发送次数,计算所述目标报错报文对应的候选等待时间;将所述目标报错报文对应的候选重试时间与所述目标报错报文对应的候选等待时间进行对比,从所述候选重试时间和所述候选等待时间中确定最大值,为所述目标报错报文对应的目标重试时间;在所述目标重试时间之后,对所述目标报错报文进行重新发送。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述其他报错报文对应的其他错误信息;将所述其他错误信息和所述目标错误信息存储至同一存储空间;在所述目标报错报文发送成功后,从所述存储空间中删除所述其他错误信息,并重新发送所述其他报错报文。8.一种报错报文重试装置,其特征在于,包括:第一获取模块,用于获取目标报错报文对应的目标错误信息;第一确定模块,用于对所述目标错误信息进行解析,确定所述目标报错报文对应的错误来源;其中,所述错误来源用于表征返回所述目标错误信息的设备;第二确定模块,用于根据所述错误来源,确定与所述目标报错报文对应的错误来源相同的其他报错报文;发送模块,用于根据所述目标报错报文与所述其他报错报文之间的关系,对所述目标报错报文进行重新发送,并在所述目标报错报文发送成功之前禁止对所述其他报错报文进行重新发送。9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的报错报文重试方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的报错报文重试方法。

技术总结


本发明涉及报错报文重试领域,具体涉及一种报错报文重试方法、装置、电子设备及存储介质。该包括:获取目标报错报文对应的目标错误信息;对目标错误信息进行解析,确定目标报错报文对应的错误来源;其中,错误来源用于表征返回目标错误信息的设备;根据错误来源,确定与目标报错报文对应的错误来源相同的其他报错报文;根据目标报错报文与其他报错报文之间的关系,对目标报错报文进行重新发送,并在目标报错报文发送成功之前禁止对其他报错报文进行重新发送。上述方法,减少了需要重新发送的错误报文的数量,减少了占用的计算机设备的CPU资源,减轻了计算机设备的负担。减轻了计算机设备的负担。减轻了计算机设备的负担。


技术研发人员:

何智勇 王伟 吴学含 白亚文

受保护的技术使用者:

天翼云科技有限公司

技术研发日:

2022.07.29

技术公布日:

2022/12/16

本文发布于:2024-09-20 23:42:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/39934.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报文   报错   目标   时间
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议