CN103618590A - 一种事务处理过程的超时控制方法和装置 - Google Patents
一种事务处理过程的超时控制方法和装置 Download PDFInfo
- Publication number
- CN103618590A CN103618590A CN201310591266.3A CN201310591266A CN103618590A CN 103618590 A CN103618590 A CN 103618590A CN 201310591266 A CN201310591266 A CN 201310591266A CN 103618590 A CN103618590 A CN 103618590A
- Authority
- CN
- China
- Prior art keywords
- transaction
- consuming time
- node
- transactions requests
- threshold value
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种事务处理过程的超时控制方法和装置,属于控制技术领域。所述方法通过将携带全局超时控制信息的事务请求处理报文在各节点中传递,节点依据全局超时控制信息中的超时控制阈值实现对节点进行事务处理的超时控制,避免了现有技术中需要对每个节点配置管理超时控制时间而造成的管理复杂,维护成本高的问题。
Description
技术领域
本发明涉及数据通信技术领域,特别涉及一种事务处理过程的超时控制方法和装置。
背景技术
随着网络技术的快速发展,大型企业或组织机构内部大多已部署并运行着多个业务子***,而随着数据互联互通的需要,一次事务请求信息处理过程需要被多个子***处理的情况也日益普遍,这其中,只要一个步骤上的子***处理出现异常,则认为本次事务请求处理失败。因此,为了保证事务请求信息在各个子***都能被有效处理,引入了针对各子***的超时控制机制。
现有技术针对每个子***的超时控制方法,具体为:针对每个子***配置对应的超时控制时间,当事务请求信息依次到达各子***时,第一子***对接收到的请求进行处理并将处理结果发给第二子***;与此同时,第一子***判断接收来自第二子***响应消息的等待时间是否超出第一子***的超时控制时间,若超出,则返回失败响应消息。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有技术在配置各子***的超时控制时间时,为了保证各子***配置的超时控制时间合理,避免出现后面的子***还在超时控制时间内,而前面的子***已经超时退出的情况,需要了解各个子***的处理能力和处理耗时以配置合理的超时控制时间,而随着子***的数量不断增加,上述配置子***超时控制时间的做法就变得更加复杂,所需时间工作量急剧增加。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种信息交换过程的超时控制方法和装置。所述技术方案如下:
一方面,提供了一种一种信息交换过程的超时控制方法,所述方法包括:
所述方法包括:
获取第一事务请求报文,所述第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值;
获取当前第一节点处理所述第一事务请求报文的第一节点事务处理耗时;
获取与第二节点对应的第二超时控制阈值,所述第二超时控制阈值为所述第一超时控制阈值扣除所述第一节点事务处理耗时;
将所述第一事务请求报文转换生成第二事务请求报文,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值;
将所述第二事务请求报文发往对应的第二节点;
确定第一节点响应等待耗时,所述第一节点响应等待耗时包括从所述第二事务请求报文发出时起至当前时间;
确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息;重复执行该步骤,直到接收到来自第二节点的第二事务处理响应信息。
可选地,
所述获取第一事务请求报文,具体包括:
从第一事务请求队列中获取第一事务请求报文;
所述方法还包括:
获取所述第一事务请求报文在所述第一事务请求队列中的第一队列等待耗时;
所述获取第二超时控制阈值,具体包括:
用所述第一超时控制阈值扣除所述第一队列等待耗时和第一节点事务处理耗时得到第二超时控制阈值;
所述将第二事务请求报文发往对应的第二节点,具体包括:
将第二事务请求报文发往第二节点对应的第二事务请求队列;
所述确定第一节点总耗时,具体包括:
确定第一节点总耗时,所述第一节点总耗时包括所述第一队列等待耗时与所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
可选地,所述获取第一节点事务处理耗时之后,还包括:
判断所述第一节点事务处理耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息。
可选地,所述获取与第二节点对应的第二超时控制阈值之后,所述生成第二报文之前,还包括:
获取第二节点的事务处理标准耗时Ts;
判断所述第二超时控制阈值是否小于所述第二节点事务处理标准耗时Ts*2,
若是,则终止当前事务处理,并返回错误信息。
可选地,所述获取第二节点的事务处理标准耗时Ts,具体包括:
获取与所述第二节点已进行的事务处理次数N1和事务处理成功次数N2;
若所述事务处理次数N1小于50或者所述事务处理成功次数N2等于0,则所述第二节点的事务处理标准耗时Ts为0;
若所述事务处理次数N1大于50并且所述事务处理成功次数N2大于0,则所述第二节点的事务处理标准耗时Ts=(Tmin*4+2*Tave/N1)/12;其中,所述Tmin是与所述第二节点进行事务处理耗费的最小时间,所述Tave是与所述第二节点进行事务处理耗费的平均时间。
依据本发明的另一方面,还提供了一种事务处理过程的超时控制装置,所述装置包括:
事务请求报文获取模块,用于获取第一事务请求报文,所述第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值;
节点事务处理耗时获取模块,用于获取第一节点处理所述事务请求报文获取模块所获取的第一事务报文的第一节点事务处理耗时;
超时控制阈值获取模块,用于获取与第二节点对应的第二超时控制阈值,所述第二超时控制阈值为所述第一超时控制阈值扣除所述第一节点事务处理耗时;
第二事务请求报文生成模块,用于将所述第一事务请求报文转换生成第二事务请求报文,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值;
第二事务请求报文发送模块,用于将所述第二事务请求报文发往对应的第二节点;
第一节点响应等待耗时确定模块,用于确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
第一节点总耗时确定模块,用于确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
超时检测模块,用于按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息;重复执行该步骤,直到接收到来自第二节点的第二事务处理响应信息。
可选地,
所述事务请求报文获取模块,具体还用于从第一事务请求队列中获取第一事务请求报文;
所述装置还包括:
第一队列等待耗时获取模块,用于获取所述第一事务请求报文在所述第一事务请求队列中的第一队列等待耗时;
所述超时控制阈值获取模块,具体还用于用所述第一超时控制阈值扣除所述第一队列等待耗时和第一节点事务处理耗时得到第二超时控制阈值;
所述第二事务请求报文发送模块,具体还用于将第二事务请求报文发往第二节点对应的第二事务请求队列;
所述第一节点总耗时确定模块,还用于确定第一节点总耗时,所述第一节点总耗时包括所述第一队列等待耗时与所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
可选地,所述装置还包括:
第一超时判断模块,用于判断所述第一节点事务处理耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息。
可选地,所述装置还包括:
标准时间获取模块,用于获取第二节点的事务处理标准耗时Ts;
第二超时判断模块,用于判断所述第二超时控制阈值是否小于所述第二节点事务处理标准耗时Ts*2,若是,则终止当前事务处理,并返回错误信息。
其中,所述标准时间获取模块具体包括:
事务次数子模块,用于获取与所述第二节点已进行的事务处理次数N1和事务处理成功次数N2;
判断子模块,用于判断若所述事务处理次数N1小于50或者所述事务处理成功次数N2等于0,则所述第二节点的事务处理标准耗时Ts为0;
若所述事务处理次数N1大于50并且所述事务处理成功次数N2大于0,则所述第二节点的事务处理标准耗时Ts=(Tmin*4+2*Tave/N1)/12;其中,所述Tmin是与所述第二节点进行事务处理耗费的最小时间,所述Tave是与所述第二节点进行事务处理耗费的平均时间。
本发明技术方案带来的有益效果是:
本发明实施例通过将携带全局超时控制信息的事务请求处理报文在各节点中传递,节点依据全局超时控制信息中的超时控制阈值实现对节点进行事务处理的超时控制,避免了现有技术中需要对每个节点配置管理超时控制时间而造成的管理复杂,维护成本高的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种事务处理过程的超时控制方法流程图;
图2是本发明实施例二提供的一种事务处理过程的超时控制方法流程图;
图3是本发明实施例三提供的一种事务处理过程的超时控制方法流程图;
图4是本发明实施例四提供的一种事务处理过程的超时控制装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本实施例提供了一种事务处理过程的超时控制方法,参见图1,本实施例提供的方法流程具体如下:
S101,获取第一事务请求报文。
其中,第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值。
本发明实施例中,将事务处理所经过的多个节点称为第一节点,第二节点...第n节点,其中,第一节点既可以是事务处理的起始节点,也可以是其中任意一个节点,本发明对此不作限制。为便于描述,本发明实施例以事务处理的起始节点为第一节点。
全局超时控制信息用于承载完成事务处理所对应的总的超时控制时间,其初始值即为第一超时控制阈值。该全局超时控制信息随着事务请求报文被依次传递到各个节点,每到达一个节点,该节点完成对事务请求报文的处理后,对全局超时控制信息进行更新,然后将更新后的全局超时控制信息随事务请求报文一起发送至下一节点。
具体实施时,可在事务请求报文的报文头中添加字段'time-out'来承载全局超时控制信息,并且由本领域技术人员根据各节点的性能、处理事务请求报文的平均时间等因素设置全局超时控制信息的初始值。
S102,获取当前第一节点处理所述第一事务请求报文的第一节点事务处理耗时。
可选的,步骤102之后还包括:
判断所述第一节点事务处理耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息。
第一节点事务处理耗时超出第一超时控制阈值,意味着该事务请求报文在经第一节点处理后所耗时间已经超出了该事务处理总的超时控制时间,继续向下个节点转发事务请求报文已经毫无意义,因此,通过及时终止当前事务处理,避免***资源的浪费和消耗。
S103,获取与第二节点对应的第二超时控制阈值。
其中,所述第二超时控制阈值为所述第一超时控制阈值扣除所述第一节点事务处理耗时。
例如,若完成事务处理总的超时控制时间设置为60秒,那么第一超时控制阈值也为60秒,假设第一节点完成事务处理耗时10秒,则第二超时控制阈值=(第一超时控制阈值-第一节点事务处理耗时),即第二超时控制阈值为50秒。
S104,将所述第一事务请求报文转换生成第二事务请求报文。
其中,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值。
事务处理过程中,各节点对外提供数据接口,内部则独立完成对事务请求报文的处理,因此,将第一事务请求报文和/或第一事务请求报文的处理结果转换生成符合第二节点接口规范的第二事务请求报文,并且在该第二事务请求报文中携带全局超时控制信息。
S105,将所述第二事务请求报文发往对应的第二节点。
S106,确定第一节点响应等待耗时。
其中,所述第一节点响应等待耗时为从所述第二事务请求报文发出时起至当前时间。
第一节点将第二事务请求报文发出后就将始终处于接收响应信息的状态,本发明实施例将第二事务报文发出时间至当前时间确定为第一节点响应等待耗时。
S107,确定第一节点总耗时。
其中,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
S108,按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息;重复执行本步骤,直到接收到来自第二节点的第二事务处理响应信息。
本发明实施例通过将携带全局超时控制信息的事务请求处理报文在各节点中传递,节点依据全局超时控制信息中的超时控制阈值实现对节点进行事务处理的超时控制,避免了现有技术中需要对每个节点配置管理超时控制时间而造成的管理复杂,维护成本高的问题。
在本发明实施例中,可将需要处理的事务请求报文直接发送给节点,另外,为了避免同一时刻高并发的事务处理请求导致的***拥塞,也可以按照先进先出的方式,将事务请求报文放入事务请求队列,然后各节点从对应的事务请求队列获取事务请求报文进行处理。下面,参见图2和实施例二对本发明提供另一种事务处理过程的超时控制方法进行描述:
实施例二
参见图2,图2示出了本发明实施例提供的一种事务处理过程的超时控制方法流程示意图,所述超时控制方法包括:
S201,从第一事务请求队列中获取第一事务请求报文。
其中,第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值。
进一步的,将第一事务请求报文放入事务请求队列时,可在预先设置的报文登记区中记录报文登记信息,该报文登记信息包括:事务标识、事务请求发送方、事务请求接收方、报文放入队列时间等。
S202,获取当前第一节点处理所述第一事务报文的第一节点事务处理耗时。
S203,获取所述第一事务请求报文在所述第一事务请求队列中的第一队列等待耗时。
具体的,获取第一事务请求报文在第一事务请求队列中对应的报文登记信息,并依据该报文登记信息中的报文放入队列时间和当前时间确定第一队列等待耗时,即第一队列等待耗时=(当前时间-报文放入队列时间)。
S204,获取与第二节点对应的第二超时控制阈值。
具体包括:用第一超时控制阈值扣除所述第一队列等待耗时和第一节点事务处理耗时得到第二超时控制阈值。
S205,将所述第一事务请求报文转换生成第二事务请求报文。
其中,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值。
S206,将第二事务请求报文发往第二节点对应的第二事务请求队列。
S207,确定第一节点响应等待耗时。
其中,所述第一节点响应等待耗时为从所述第二事务请求报文发出时起至当前时间。
S208,确定第一节点总耗时。
其中,所述第一节点总耗时包括所述第一队列等待耗时与所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
S209,按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息;重复执行步骤S209,直到接收到来自第二节点的第二事务处理响应信息。
与实施例一相比,实施例二在确定第一节点总耗时时,增加了对第一队列等待耗时计算,使得第一节点总耗时的计算结果更加接近第一节点实际消耗时间,有效提高了事务处理过程中超时控制的精度。
实施例三
参见图3,图3示出了本发明实施例提供的一种事务处理过程的超时控制方法流程示意图,所述超时控制方法包括:
S301,从第一事务请求队列中获取第一事务请求报文。
其中,第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值。
S302,获取当前第一节点处理所述第一事务报文的第一节点事务处理耗时。
S303,判断所述第一节点事务处理耗时是否超出所述第一超时控制阈值,若超出,则执行步骤S313。
S304,获取所述第一事务请求报文在所述第一事务请求队列中的第一队列等待耗时。
S305,获取与第二节点对应的第二超时控制阈值。
本步骤具体包括:用第一超时控制阈值扣除所述第一队列等待耗时和第一节点事务处理耗时得到第二超时控制阈值。
S306,获取第二节点的事务处理标准耗时Ts。
进一步的,本步骤具体包括:
获取与所述第二节点已进行的事务处理次数N1和事务处理成功次数N2;
若所述事务处理次数N1小于50或者所述事务处理成功次数N2等于0,则所述第二节点的事务处理标准耗时Ts为0;
若所述事务处理次数N1大于50并且所述事务处理成功次数N2大于0,则所述第二节点的事务处理标准耗时Ts=(Tmin*4+2*Tave/N1)/12;其中,所述Tmin是与所述第二节点进行事务处理耗费的最小时间,所述Tave是与所述第二节点进行事务处理耗费的平均时间。
需要说明的是,所述用于和事务处理次数N1进行比较的参数50仅是本发明实施例优选的取值,在实施本发明时,本领域技术人员可根据实际需要决定该参数的大小,本发明对此不作具体限制。
S307,判断所述第二超时控制阈值是否小于所述第二节点事务处理标准耗时Ts*2,若是,则执行步骤S313。
若所述第二超时控制阈值小于第二节点事务处理标准耗时Ts*2,则说明当前第一节点处理完所述第一事务请求报文后剩余的超时控制时间远不足以第二节点对当前事务请求的后续处理,针对该情况,及时终止对当前事务请求的后续处理,避免执行无效的处理请求,有效节约了***资源。
本领域技术人员应当理解,所述用2倍的Ts(Ts*2)与第二超时控制阈值比较只是本发明优选的方法,在实施本发明时,本领域技术人员可根据需要选择比较值的大小,本发明对此不作限制,例如,用Ts*m,其中,m为大于零的整数。S308,将所述第一事务请求报文转换生成第二事务请求报文。
其中,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值。
S309,将第二事务请求报文发往第二节点对应的第二事务请求队列。
S310,确定第一节点响应等待耗时。
其中,所述第一节点响应等待耗时为从所述第二事务请求报文发出时起至当前时间。
S311,确定第一节点总耗时。
其中,所述第一节点总耗时包括所述第一队列等待耗时与所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
S312,按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则执行步骤S313;若未超出,则重复执行步骤S311,直到接收到来自第二节点的第二事务处理响应信息。
若超时退出前成功收到来自第二节点的处理响应,表示当前事务处理成功,返回成功响应消息。
S313,终止当前事务处理,返回错误信息。
由于事务处理过程涉及多个节点,事务请求报文在各节点之间传递,每个节点接收来自上一个节点的处理请求,并向下一个节点传递处理结果,因此,任何一个节点处理异常都会影响当前事务处理的数据一致性。为了避免节点异常导致的数据不一致,通常还要提供与事务处理相对应的冲正处理,例如,当第一节点接收到来自第二节点返回的失败响应消息后,第一节点对当前事务请求的相关数据做冲正处理,以消除第二节点对数据的影响,以保证事务请求的相关数据恢复至第二节点处理前的状态。
本发明实施例通过判断第二超时控制阈值是否小于或远小于第二节点事务处理标准耗时,若判断当前剩余的超时控制时间远不能满足第二节点处理所需时间,就不再向第二节点发送事务请求报文,而是直接终止当前事务处理过程,并返回错误信息,这样一来,由于第二节点不再执行可能超时的事务处理,避免了占用***资源,同时保证了数据的一致性;另外,第一节点也不再需要进任何冲正处理,避免了现有技术因冲正处理而导致的***资源消耗。
以上实施例对本发明提供的一种事务处理超时控制方法进行了描述,为了更好地理解本发明,下面结合实际应用环境,对本发明所述方法做进一步说明。
实施例四
信息交换***是一种广泛应用的事务处理***,该信息交换***和不同的子***进行互联以完成各子***间信息的交互与转换。因此,可将本发明提供的方法应用于所述信息交换***和对应的子***间,其中,信息交换***即相当于第一节点、与信息交换***连接的子***相当于第二节点...第n节点,由信息交换***和各子***完成的一次事务请求处理称为一笔交易。
另外,本发明提供的事务处理过程超时控制方法亦可应用于同一***内不同组件之间事务处理,例如,在交换***内部,一笔交易要经过服务端通讯组件、业务处理组件、目的端通讯组件的处理,其中,服务方通讯组件提供监听服务,接收来自外部的通讯请求,相当于本发明实施例所述的第一节点;业务处理组件用于处理交易数据,相当于第二节点;目的端通信组件用于向外部发送通讯请求,相当于第三节点。下面,对所述超时控制方法实施于信息交换***时的过程进行说明。
为了让本发明提供方法的效果更加直观,首先,对现有技术为各节点配置超时控制时间来控制超时的方法描述如下:
现有技术为第一节点(服务端通讯组件)设置超时控制时间为60秒,为第二节点(业务组件)设置超时控制时间为50秒,为第三节点(目的端通讯组件)设置超时控制时间为40秒。交易请求信息在服务端通讯组件处理耗时10秒,在业务处理组件耗时45秒,这样交易请求信息传递到目的端通讯组件时,已经耗时55秒,这时服务方通讯组件还剩5秒超时,业务处理组件也还剩5秒就超时,而目的端通讯组件上次交易请求处理的平均最小处理时间是10秒,也就是说在目的端通讯组件收到应答信息前,服务端通讯组件和业务处理组件都会达到超时先退出。这样就只有目的端通讯组件还在等待接收响应信息,而且收到信息后由于请求方已经超时退出,这些信息不再需要因此只能作为垃圾信息被丢弃,浪费了宝贵的***资源。
相对于现有技术,采用本发明提供的超时控制方法:当交易请求信息传递到目的端通讯组件时,该组件会计算其当前剩余的超时时间60-10-45=5,目的端通讯组件会以5秒作为自身的超时控制阈值。同时根据统计的目的端通讯组件平均最小交易处理时间判断是否还有足够时间完成交易,由于平均最小交易处理时间10秒远大于5秒的剩余超时控制时间,因此组件判断无法成功完成交易,不再进行对外的交易通讯,而是终止交易,直接出错返回。这样目的端通讯组件给业务处理组件返回失败信息,业务处理组件给服务端通讯组件返回失败信息,服务端通讯组件给渠道返回失败信息,这样每个环节上都收到了明确的应答信息,避免了超时后不知道交易处理结果,造成交易数据不一致的情况,同时对于不可能成功完成的交易让其迅速失败,确保了有限的***资源能被其他的交易使用,不会因为等待超时而被一致占用。
以上对本发明实施例提供的一种事务处理过程的超时控制方法进行了描述,下面,参照上述实施例的内容,对本发明实施例提供的一种事务处理过程的超时控制装置进行描述。
实施例五
参见图4,图4示出了本发明提供的一种事务处理过程的超时控制装置实施例的结构示意图,所述装置包括:
事务请求报文获取模块501,用于获取第一事务请求报文,所述第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值;
节点事务处理耗时获取模块502,用于获取第一节点处理所述事务请求报文获取模块所获取的第一事务报文的第一节点事务处理耗时;
超时控制阈值获取模块503,用于获取与第二节点对应的第二超时控制阈值,所述第二超时控制阈值为所述第一超时控制阈值扣除所述第一节点事务处理耗时;
第二事务请求报文生成模块504,用于将所述第一事务请求报文转换生成第二事务请求报文,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值;
第二事务请求报文发送模块505,用于将所述第二事务请求报文发往对应的第二节点;
第一节点响应等待耗时确定模块506,用于确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
第一节点总耗时确定模块507,用于确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
超时检测模块508,用于按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息;重复执行该步骤,直到接收到来自第二节点的第二事务处理响应信息。
其中,
所述事务请求报文获取模块,具体还用于从第一事务请求队列中获取第一事务请求报文;
所述装置还包括:
第一队列等待耗时获取模块509,用于获取所述第一事务请求报文在所述第一事务请求队列中的第一队列等待耗时;
所述超时控制阈值获取模块,具体还用于用所述第一超时控制阈值扣除所述第一队列等待耗时和第一节点事务处理耗时得到第二超时控制阈值;
所述第二事务请求报文发往模块,具体还用于将第二事务请求报文发往第二节点对应的第二事务请求队列;
所述第一节点总耗时确定模块,还用于确定第一节点总耗时,所述第一节点总耗时包括所述第一队列等待耗时与所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
进一步的,所述装置还包括:
第一超时判断模块510,用于判断所述第一节点事务处理耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息。
进一步的,所述装置还包括:
标准时间获取模块511,用于获取第二节点的事务处理标准耗时Ts;
第二超时判断模块512,用于判断所述第二超时控制阈值是否小于所述第二节点事务处理标准耗时Ts*2,若是,则终止当前事务处理,并返回错误信息。
进一步的,所述标准时间获取模块具体包括:
事务次数子模块,用于获取与所述第二节点已进行的事务处理次数N1和事务处理成功次数N2;
判断子模块,用于判断若所述事务处理次数N1小于50或者所述事务处理成功次数N2等于0,则所述第二节点的事务处理标准耗时Ts为0;
若所述事务处理次数N1大于50并且所述事务处理成功次数N2大于0,则所述第二节点的事务处理标准耗时Ts=(Tmin*4+2*Tave/N1)/12;其中,所述Tmin是与所述第二节点进行事务处理耗费的最小时间,所述Tave是与所述第二节点进行事务处理耗费的平均时间。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的点击操作实现装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种事务处理过程的超时控制方法,其特征在于,所述方法包括:
获取第一事务请求报文,所述第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值;
获取当前第一节点处理所述第一事务请求报文的第一节点事务处理耗时;
获取与第二节点对应的第二超时控制阈值,所述第二超时控制阈值为所述第一超时控制阈值扣除所述第一节点事务处理耗时;
将所述第一事务请求报文转换生成第二事务请求报文,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值;
将所述第二事务请求报文发往对应的第二节点;
确定第一节点响应等待耗时,所述第一节点响应等待耗时包括从所述第二事务请求报文发出时起至当前时间;
确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息;重复执行该步骤,直到接收到来自第二节点的第二事务处理响应信息。
2.如权利要求1所述的方法,其特征在于,
所述获取第一事务请求报文,具体包括:
从第一事务请求队列中获取第一事务请求报文;
所述方法还包括:
获取所述第一事务请求报文在所述第一事务请求队列中的第一队列等待耗时;
所述获取第二超时控制阈值,具体包括:
用所述第一超时控制阈值扣除所述第一队列等待耗时和第一节点事务处理耗时得到第二超时控制阈值;
所述将第二事务请求报文发往对应的第二节点,具体包括:
将第二事务请求报文发往第二节点对应的第二事务请求队列;
所述确定第一节点总耗时,具体包括:
确定第一节点总耗时,所述第一节点总耗时包括所述第一队列等待耗时与所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
3.如权利要求1所述的方法,其特征在于,所述获取第一节点事务处理耗时之后,还包括:
判断所述第一节点事务处理耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息。
4.如权利要求1所述的方法,其特征在于,所述获取与第二节点对应的第二超时控制阈值之后,所述生成第二报文之前,还包括:
获取第二节点的事务处理标准耗时Ts;
判断所述第二超时控制阈值是否小于所述第二节点事务处理标准耗时Ts*2,
若是,则终止当前事务处理,并返回错误信息。
5.如权利要求4所述的方法,其特征在于,所述获取第二节点的事务处理标准耗时Ts,具体包括:
获取与所述第二节点已进行的事务处理次数N1和事务处理成功次数N2;
若所述事务处理次数N1小于50或者所述事务处理成功次数N2等于0,则所述第二节点的事务处理标准耗时Ts为0;
若所述事务处理次数N1大于50并且所述事务处理成功次数N2大于0,则所述第二节点的事务处理标准耗时Ts=(Tmin*4+2*Tave/N1)/12;其中,所述Tmin是与所述第二节点进行事务处理耗费的最小时间,所述Tave是与所述第二节点进行事务处理耗费的平均时间。
6.一种事务处理过程的超时控制装置,其特征在于,所述装置包括:
事务请求报文获取模块,用于获取第一事务请求报文,所述第一事务请求报文携带有全局超时控制信息;所述全局超时控制信息包括与当前第一节点对应的第一超时控制阈值;
节点事务处理耗时获取模块,用于获取第一节点处理所述事务请求报文获取模块所获取的第一事务报文的第一节点事务处理耗时;
超时控制阈值获取模块,用于获取与第二节点对应的第二超时控制阈值,所述第二超时控制阈值为所述第一超时控制阈值扣除所述第一节点事务处理耗时;
第二事务请求报文生成模块,用于将所述第一事务请求报文转换生成第二事务请求报文,所述第二事务请求报文携带有所述全局超时控制信息,所述全局超时控制信息包括所述第二超时控制阈值;
第二事务请求报文发送模块,用于将所述第二事务请求报文发往对应的第二节点;
第一节点响应等待耗时确定模块,用于确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
第一节点总耗时确定模块,用于确定第一节点总耗时,所述第一节点总耗时包括所述第一节点事务处理耗时和所述第一节点响应等待耗时之和;
超时检测模块,用于按预定时间间隔判断所述第一节点总耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息;重复执行该步骤,直到接收到来自第二节点的第二事务处理响应信息。
7.如权利要求6所述的装置,其特征在于,
所述事务请求报文获取模块,具体还用于从第一事务请求队列中获取第一事务请求报文;
所述装置还包括:
第一队列等待耗时获取模块,用于获取所述第一事务请求报文在所述第一事务请求队列中的第一队列等待耗时;
所述超时控制阈值获取模块,具体还用于用所述第一超时控制阈值扣除所述第一队列等待耗时和第一节点事务处理耗时得到第二超时控制阈值;
所述第二事务请求报文发送模块,具体还用于将第二事务请求报文发往第二节点对应的第二事务请求队列;
所述第一节点总耗时确定模块,还用于确定第一节点总耗时,所述第一节点总耗时包括所述第一队列等待耗时与所述第一节点事务处理耗时和所述第一节点响应等待耗时之和。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
第一超时判断模块,用于判断所述第一节点事务处理耗时是否超出所述第一超时控制阈值,若超出,则终止当前事务处理,并返回错误信息。
9.如权利要求7所述的装置,其特征在于,所述装置还包括:
标准时间获取模块,用于获取第二节点的事务处理标准耗时Ts;
第二超时判断模块,用于判断所述第二超时控制阈值是否小于所述第二节点事务处理标准耗时Ts*2,若是,则终止当前事务处理,并返回错误信息。
10.如权利要求9所述的装置,其特征在于,所述标准时间获取模块具体包括:
事务次数子模块,用于获取与所述第二节点已进行的事务处理次数N1和事务处理成功次数N2;
判断子模块,用于判断若所述事务处理次数N1小于50或者所述事务处理成功次数N2等于0,则所述第二节点的事务处理标准耗时Ts为0;
若所述事务处理次数N1大于50并且所述事务处理成功次数N2大于0,则所述第二节点的事务处理标准耗时Ts=(Tmin*4+2*Tave/N1)/12;其中,所述Tmin是与所述第二节点进行事务处理耗费的最小时间,所述Tave是与所述第二节点进行事务处理耗费的平均时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310591266.3A CN103618590B (zh) | 2013-11-20 | 2013-11-20 | 一种事务处理过程的超时控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310591266.3A CN103618590B (zh) | 2013-11-20 | 2013-11-20 | 一种事务处理过程的超时控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103618590A true CN103618590A (zh) | 2014-03-05 |
CN103618590B CN103618590B (zh) | 2017-03-29 |
Family
ID=50169294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310591266.3A Active CN103618590B (zh) | 2013-11-20 | 2013-11-20 | 一种事务处理过程的超时控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103618590B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022672A (zh) * | 2015-07-23 | 2015-11-04 | 北京南天软件有限公司 | 基于分布式***架构下的交易全局时间控制方法和*** |
CN105635231A (zh) * | 2014-11-06 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种分布式***的调用方法和装置 |
CN105721337A (zh) * | 2014-12-04 | 2016-06-29 | ***通信集团公司 | 软件定义网络中的分布式事务处理方法及装置 |
CN106156233A (zh) * | 2015-04-24 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 修订数据处理状态的方法及装置 |
CN107370639A (zh) * | 2017-08-14 | 2017-11-21 | 苏州众天力信息科技有限公司 | 一种基于梯形时间算法的网关多场景控制方法 |
CN107704370A (zh) * | 2017-09-28 | 2018-02-16 | 四川长虹电器股份有限公司 | 基于响应时间和运行状态双维度的事务成功率统计方法 |
CN109472546A (zh) * | 2018-10-12 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 一种分布式事务处理的智能监控方法及服务器 |
CN112671835A (zh) * | 2020-12-07 | 2021-04-16 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、***及存储介质 |
CN113810383A (zh) * | 2021-08-25 | 2021-12-17 | 杭州安恒信息技术股份有限公司 | Web应用防火墙及拥塞控制方法、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301288A1 (en) * | 2007-05-28 | 2008-12-04 | Sandisk Il Ltd. | Method and device for monitoring a transaction |
CN101727648A (zh) * | 2009-12-01 | 2010-06-09 | 中国建设银行股份有限公司 | 服务***中的超时控制方法及服务*** |
CN101447857B (zh) * | 2008-05-26 | 2012-07-18 | 中兴通讯股份有限公司 | 一种消息处理过程中动态调整时间参数的方法 |
-
2013
- 2013-11-20 CN CN201310591266.3A patent/CN103618590B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301288A1 (en) * | 2007-05-28 | 2008-12-04 | Sandisk Il Ltd. | Method and device for monitoring a transaction |
CN101447857B (zh) * | 2008-05-26 | 2012-07-18 | 中兴通讯股份有限公司 | 一种消息处理过程中动态调整时间参数的方法 |
CN101727648A (zh) * | 2009-12-01 | 2010-06-09 | 中国建设银行股份有限公司 | 服务***中的超时控制方法及服务*** |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105635231A (zh) * | 2014-11-06 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种分布式***的调用方法和装置 |
CN105721337B (zh) * | 2014-12-04 | 2019-06-25 | ***通信集团公司 | 软件定义网络中的分布式事务处理方法及装置 |
CN105721337A (zh) * | 2014-12-04 | 2016-06-29 | ***通信集团公司 | 软件定义网络中的分布式事务处理方法及装置 |
CN106156233A (zh) * | 2015-04-24 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 修订数据处理状态的方法及装置 |
CN105022672B (zh) * | 2015-07-23 | 2018-12-07 | 北京南天软件有限公司 | 基于分布式***架构下的交易全局时间控制方法和*** |
CN105022672A (zh) * | 2015-07-23 | 2015-11-04 | 北京南天软件有限公司 | 基于分布式***架构下的交易全局时间控制方法和*** |
CN107370639A (zh) * | 2017-08-14 | 2017-11-21 | 苏州众天力信息科技有限公司 | 一种基于梯形时间算法的网关多场景控制方法 |
CN107704370A (zh) * | 2017-09-28 | 2018-02-16 | 四川长虹电器股份有限公司 | 基于响应时间和运行状态双维度的事务成功率统计方法 |
CN109472546A (zh) * | 2018-10-12 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 一种分布式事务处理的智能监控方法及服务器 |
CN112671835A (zh) * | 2020-12-07 | 2021-04-16 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、***及存储介质 |
CN112671835B (zh) * | 2020-12-07 | 2022-08-09 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、***及存储介质 |
CN113810383A (zh) * | 2021-08-25 | 2021-12-17 | 杭州安恒信息技术股份有限公司 | Web应用防火墙及拥塞控制方法、介质及电子设备 |
CN113810383B (zh) * | 2021-08-25 | 2022-12-20 | 杭州安恒信息技术股份有限公司 | Web应用防火墙及拥塞控制方法、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103618590B (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103618590A (zh) | 一种事务处理过程的超时控制方法和装置 | |
CN103209439B (zh) | 一种数据流量监控的方法、装置和设备 | |
CN110413424B (zh) | 可配置的第三方消息回调方法、装置、服务器和存储介质 | |
US10609125B2 (en) | Method and system for transmitting communication data | |
CN104753817A (zh) | 一种云计算消息队列服务本地模拟方法和*** | |
CN102946376B (zh) | 一种异步通讯的实现方法 | |
KR101416280B1 (ko) | 이벤트 처리 시스템 및 방법 | |
CN110134534B (zh) | 基于nio针对大数据分布式***进行消息处理优化的***及方法 | |
CN110413425B (zh) | 第三方消息回调方法、装置、服务器和存储介质 | |
CN102394925A (zh) | 远程监测诊断中心与地区调度中心的通讯方法及装置 | |
CN101741746B (zh) | 基于iocp的双向cas网关与用户终端的通信方法 | |
CN101977358A (zh) | 一种数据短信的传输方法、装置及设备 | |
CN104852828A (zh) | 一种网络时延检测方法,装置及*** | |
CN1973282A (zh) | 用于管理针对集群配置的改变的***和方法 | |
CN108259595A (zh) | 一种服务间异步调用的方法及*** | |
EP2439881A1 (en) | Cluster system and request message distribution method for processing multi-node transaction | |
CN103037483A (zh) | 网络服务器以及维持其与应用服务器的连接的方法 | |
CN109981478A (zh) | 一种报文处理方法及装置 | |
CN101207617A (zh) | 网络储存***的数据传输方法 | |
CN111200653B (zh) | 多平台通讯方法、多平台通讯装置及中间服务器 | |
CN109144676A (zh) | 一种应用程序的自启动检测方法、装置及服务器 | |
CN104572315A (zh) | 实现子***间通信的方法、通信实体及分布式通信*** | |
CN111245660A (zh) | 一种基于网络的设备升级自适应传输方法 | |
CN101494569B (zh) | 一种报文处理方法和装置 | |
CN110928828B (zh) | 处理器间业务处理*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |