掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及金融科技(Fintech)领域,尤其涉及一种断开连接的方法及装置。

背景技术

随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出的更高的要求。

目前,网络环境中的应用系统可能由不同的编程语言开发完成,这些不同语言开发的应用系统不能直接进行消息传输通信,需要通过中间方的多语言代理进行消息的解码、翻译、转发,以使不同的编程语言开发的交互系统进行通信。现有技术中,在消息传输通信的过程中,各应用系统之间会建立一条连接进行通信,应用系统从请求信息的发出至收到响应信息,通常需要等待一定的时间。在通信过程中,发送方或者接收方在没有保护措施的情况下主动断开这条用来通信的连接,易造成发送方的请求信息丢失或者接收方的响应信息丢失。

因此,现需要一种断开通信连接的方法,防止发送方或接收方与消息中间件断开连接时,导致请求信息或响应信息丢失。

发明内容

本发明实施例提供一种断开连接的方法及装置,用于保证交互方在与中间方断开连接时,信息不丢失,增加中间方的稳定性,减小中间方丢失信息的可能性。

第一方面,本发明实施例提供一种断开连接的方法,包括:

中间方接收请求方发送的断开连接请求;

所述中间方确定第一收发记录中的收发数是否符合设定条件;所述第一收发记录是从各交互方的收发记录中确定出包含所述请求方的收发记录;每个交互方的收发记录均是所述中间方根据该交互方的消息收发数生成的;每个交互方的收发记录都设置有各自的访问锁;

所述中间方确定所述第一收发记录中的收发数符合所述设定条件,则向所述请求方发送断开连接允许响应。

上述技术方案中,请求方为交互方中的任一方,中间方在接收到断开连接请求后,获取交互方的访问锁,查询交互方的收发记录,因为交互方的收发记录所记录的是交互方的信息收发数(即中间方接收到发送方的请求消息并发送到接收方后,等待接收方回复响应消息的数目),因此在确定交互方的收发记录符合预设条件时,向请求方发送断开连接允许响应,以告知请求方可以断开连接,以此保证了交互方在与中间方断开连接时,信息不丢失,增加了中间方的稳定性,减小了中间方丢失信息的可能性。

可选的,每个交互方的收发记录都设置有各自的访问锁,包括:

所述中间方接收交互方发送的注册信息,所述注册信息包括发送方的标识信息和接收方的标识信息;

所述中间方根据所述发送方的标识信息和所述接收方的标识信息,生成用于访问所述交互方的收发记录的访问锁;

所述中间方在发送锁表中添加以所述发送方的标识信息为键,以所述接收方的标识信息和所述访问锁为值的键值对;

所述中间方在接收锁表中添加以所述接收方的标识信息为键,以所述发送方的标识信息和所述访问锁为值的键值对。

上述技术方案中,通过发送方的标识信息和接收方的标识信息为交互方生成用于访问交互方收发记录的访问锁,即中间方只有通过访问锁才能访问对应交互方的收发记录,以防止信息高并发时,中间方记录交互方的收发记录出错,提升了中间方的可靠性和准确性。

可选的,所述第一收发记录是从各交互方的收发记录中确定出包含所述请求方的收发记录,包括:

所述请求方是发送方,则从所述发送锁表中确定出键为所述发送方的标识信息所对应的值;根据所述值中的接收方的标识信息和所述发送方的标识信息,查找所述第一收发记录,并使用所述值中的访问锁访问所述第一收发记录;

所述请求方是接收方,则从所述接收锁表中确定出键为所述接收方的标识信息所对应的值;根据所述值中的发送方的标识信息和所述接收方的标识信息,查找所述第一收发记录,并使用所述值中的访问锁访问所述第一收发记录。

上述技术方案中,中间方在访问第一收发记录之前,需要在交互方的锁表中确定出请求方对应的访问锁,只有获取到访问锁,才能在第一收发记录中查询或修改请求方的收发记录,以防止信息高并发时,中间方记录请求方的收发记录出错,提升了中间方的可靠性和准确性。

可选的,所述请求方为接收方;

所述中间方确定第一收发记录中的收发数是否符合设定条件,包括:

所述中间方使用所述值中的访问锁访问所述第一收发记录;

所述中间方确定所述第一收发记录中的收发数符合所述设定条件,向所述请求方发送第一断开连接允许响应之后,还包括:

所述中间方在接收到所述接收方发送的连接断开通知后,释放所述访问锁。

上述技术方案中,在请求方为接收方时,中间方通过对应的访问锁访问接收方的收发记录之前,需要先获取接收方的访问锁,因为中间方获取了接收方的访问锁,所以在值中与接收方交互的发送发无法使用该访问锁,即发送方无法向该接收方发送信息,保证了接收方在断开连接时,发送方的信息不丢失,减小了中间方丢失信息的可能性。

可选的,所述请求方为发送方;

所述方法还包括:

所述中间方接收所述发送方的消息;所述消息包括目标接收方的标识信息;

所述中间方若从所述发送锁表中未获取到所述发送方与所述目标接收方的访问锁,则从所述发送锁表中获取所述发送方与替代接收方的访问锁,并将所述消息发送至所述替代接收方;所述替代接收方与所述目标接收方具有相同功能。

上述技术方案中,目标接收方即为发送方访问的接收方,中间方在发送锁表中未获取到发送方与目标接收方的访问锁时,则获取发送方与替代接收方的访问锁,以防止中间方直接发送给发送方失败消息,提升了发送方访问的成功率。

可选的,所述方法还包括:

所述中间方确定所述第一收发记录中的收发数不符合所述设定条件,则向所述请求方发送断开连接等待响应;

所述中间方接收所述交互方中的接收方发送的消息,通过所述第一收发记录的访问锁修改所述第一收发记录中的收发数;

所述中间方确定所述第一收发记录中的收发数符合所述设定条件或等待时长符合设定阈值,则向所述请求方发送所述断开连接允许响应。

可选的,每个交互方的收发记录均是所述中间方根据该交互方的消息收发数生成的,包括:

所述中间方若接收到交互方中的发送方发送的消息,则获取所述交互方的收发记录对应的访问锁;

所述中间方通过所述访问锁,将所述交互方的收发记录中的访问数加1;

所述中间方若接收到所述交互方中的接收方发送的消息,则获取所述交互方的收发记录对应的访问锁;

所述中间方通过所述访问锁,将所述交互方的收发记录中的访问数减1。

上述技术方案中,中间方针对接收方,需要在接收锁表中获取访问锁,针对发送方,需要在发送表中获取访问锁,通过发送锁表和接收锁表中设置的相应访问规则,中间方修改交互方的收发记录的访问数,以使中间方可以明确发送方等待接收方回复响应消息的数目,防止了中间方与交互方断开连接时,接收方回复的响应信息丢失或发送方的请求信息丢失,提升了中间方的可靠性和准确性。

可选的,所述方法还包括:

所述中间方在发起连接断开前,拒绝所述各交互方中的发送方发送的消息;

所述中间方在确定所述各交互方的收发记录中的访问数符合所述设定条件,断开与所述各交互方的连接。

上述技术方案中,在中间方发起连接断开时,拒绝各发送方发送的消息,防止发送方的消息丢失,且会确定各交互方的收发记录中的访问数符合设定条件,防止接收方反馈的消息丢失。

第二方面,本发明实施例提供一种断开连接的装置,包括:

接收模块,用于接收请求方发送的断开连接请求;

处理模块,用于确定第一收发记录中的收发数是否符合设定条件;所述第一收发记录是从各交互方的收发记录中确定出包含所述请求方的收发记录;每个交互方的收发记录均是所述中间方根据该交互方的消息收发数生成的;每个交互方的收发记录都设置有各自的访问锁;

确定所述第一收发记录中的收发数符合所述设定条件,则向所述请求方发送断开连接允许响应。

可选的,所述处理模块具体用于:

接收交互方发送的注册信息,所述注册信息包括发送方的标识信息和接收方的标识信息;

根据所述发送方的标识信息和所述接收方的标识信息,生成用于访问所述交互方的收发记录的访问锁;

在发送锁表中添加以所述发送方的标识信息为键,以所述接收方的标识信息和所述访问锁为值的键值对;

在接收锁表中添加以所述接收方的标识信息为键,以所述发送方的标识信息和所述访问锁为值的键值对。

可选的,所述处理模块具体用于:

所述请求方是发送方,则从所述发送锁表中确定出键为所述发送方的标识信息所对应的值;根据所述值中的接收方的标识信息和所述发送方的标识信息,查找所述第一收发记录,并使用所述值中的访问锁访问所述第一收发记录;

所述请求方是接收方,则从所述接收锁表中确定出键为所述接收方的标识信息所对应的值;根据所述值中的发送方的标识信息和所述接收方的标识信息,查找所述第一收发记录,并使用所述值中的访问锁访问所述第一收发记录。

可选的,所述处理模块具体用于:

使用所述值中的访问锁访问所述第一收发记录;

确定所述第一收发记录中的收发数符合所述设定条件,向所述请求方发送第一断开连接允许响应之后,在接收到所述接收方发送的连接断开通知后,释放所述访问锁。

可选的,所述请求方为发送方;

所述处理模块还用于:

接收所述发送方的消息;所述消息包括目标接收方的标识信息;

若从所述发送锁表中未获取到所述发送方与所述目标接收方的访问锁,则从所述发送锁表中获取所述发送方与替代接收方的访问锁,并将所述消息发送至所述替代接收方;所述替代接收方与所述目标接收方具有相同功能。

可选的,所述处理模块还用于:

确定所述第一收发记录中的收发数不符合所述设定条件,则向所述请求方发送断开连接等待响应;

接收所述交互方中的接收方发送的消息,通过所述第一收发记录的访问锁修改所述第一收发记录中的收发数;

确定所述第一收发记录中的收发数符合所述设定条件或等待时长符合设定阈值,则向所述请求方发送所述断开连接允许响应。

可选的,所述处理模块具体用于:

若接收到交互方中的发送方发送的消息,则获取所述交互方的收发记录对应的访问锁;

通过所述访问锁,将所述交互方的收发记录中的访问数加1;

若接收到所述交互方中的接收方发送的消息,则获取所述交互方的收发记录对应的访问锁;

通过所述访问锁,将所述交互方的收发记录中的访问数减1。

可选的,所述处理模块还用于:

在发起连接断开前,拒绝所述各交互方中的发送方发送的消息;

在确定所述各交互方的收发记录中的访问数符合所述设定条件,断开与所述各交互方的连接。

第三方面,本发明实施例还提供一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述断开连接的方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述断开连接的方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种连接断开的流程示意图;

图2为本发明实施例提供的一种数据丢失的示意图;

图3为本发明实施例提供的一种系统架构;

图4为本发明实施例提供的一种断开连接的方法的流程示意图;

图5为本发明实施例提供的一种交互方工作状态的示意图;

图6为本发明实施例提供的一种访问锁的示意图;

图7为本发明实施例提供的一种第一收发记录的示意图;

图8为本发明实施例提供的一种中间方工作状态的示意图;

图9为本发明实施例提供的一种发送方断开连接的方法示意图;

图10为本发明实施例提供的一种接收方断开连接的方法示意图;

图11为本发明实施例提供的一种中间方断开连接的方法示意图;

图12为本发明实施例提供的一种断开连接的装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

现有技术中,网络环境中的应用系统可能由不同的编程语言开发完成,通常情况下,这些不同语言开发的应用系统不能直接进行消息传输通信,需要有多语言代理程序进行消息的解码、翻译、转发,进而实现不同的编程语言开发的系统之间进行交互。其中,多语言代理程序一般存在与消息中间件中,消息中间件是基于消息队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。消息队列是一种消息的传输过程中保存消息的容器,用以保存进程间通信或同一进程的不同线程间的通信过程中产生的消息。

例如,应用系统a是使用a1编程语言开发完成的,应用系统b是使用b1编程语言开发完成的,应用系统a和应用系统b通过消息中间件进行通信,应用系统a根据a1编程语言编写的请求信息发送至消息中间件,消息中间件将a1编程语言编写的请求信息解码翻译为b1编程语言编写的请求信息,然后发送至应用系统b,再由应用系统b反馈b1编程语言编写的响应信息。消息中间件再将b1编程语言编写的响应信息解码翻译为a1编程语言编写的响应信息,反馈至应用系统a。其中,应用系统包括发送方和接收方,在上述例子中,应用系统a为发送方,应用系统b为接收方,接收方在收到发送方传输过来的请求信息,生成一个响应信息,回复给发送方,告知发送方请求信息的处理结果。

在上述通信过程中,一般通过建立TCP(Transmission Control Protocol,传输控制协议)连接进行通信,而目前发送方和接收方之间的连接断开过程通常只遵循了TCP连接层面的“四次挥手”的规范,图1示例性的示出了一种连接断开的流程示意图,如图1所示,主动方发起连接断开请求,发送至被动方。被动方在接收到连接断开请求之后,向主动方反馈确认信息,并进行连接断开准备,然后在准备好之后,向主动方发送断开连接准备就绪信息。主动方接收到被动方发送的断开连接准备就绪信息之后,主动方与消息中间件断开连接。其中,主动方可以是接收方或发送方的任一方,被动方是主动方对应的一方。

但是,在上述断开连接的方法中,在接收方或发送方任一方断开连接时,发送至消息中间件的请求信息或响应信息容易发生丢失,仅仅在应用系统与消息中间件之间的TCP连接层面实现了优雅断连,但是却并未保证在通信过程中请求信息或响应信息的优雅断连,即无法保证请求信息或响应信息不发生丢失。发送方从发出请求信息到收到响应信息,通常需要等待一定的时间。如果在等待过程中,发送方或者接收方主动断开与消息中间件的通信连接,会造成发送方的请求信息丢失或者接收方响应信息丢失,这个过程就是不优雅的。反之,如果在断开连接时没有发送方的请求信息丢失或者接收方的响应信息丢失,则称之为优雅断连。

图2示例性的示出了一种数据丢失的示意图,如图2中a图所示,发送方将消息发送到消息中间件后,在消息中间件未反馈响应信息时,若发送方与消息中间件断开,该请求信息对应的响应信息将无法反馈至发送方,导致该请求信息对应的响应信息丢失。

如图2中b图所示,发送方将消息发送到消息中间件后,在消息中间件未将转码翻译后的请求信息发送至接收方之前,若接收方与消息中间件断开,则该请求信息无法发送至接收方,导致该请求信息丢失。

因此,现需要一种断开通信连接的方法,防止发送方或接收方与消息中间件断开连接时,导致请求信息或响应信息丢失。

图3示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括接收方310、消息中间件320和发送方330。

其中,请求方可以为接收方310和发送方330中的任一方,消息中间件320为中间方。

接收方310,用于接收消息中间件320解码翻译之后转发的请求信息,并反馈响应信息至消息中间件320。用于作为请求方,向消息中间件320发送断开连接请求,并在接收到消息中间件320发送的断开连接允许响应之后,与消息中间件320断开连接。接收方310可以为客户端、消息中间件或服务器等。

消息中间件320,用于解码翻译接收方310发送的响应信息和发送方发送的请求信息,并进行转发。用于在请求方发送断开连接请求时,获取交互方对应的访问锁,然后查询第一收发记录,并在确定第一收发记录中的交互方的访问数符合设定条件时,向请求方发送断开连接允许响应,以告知请求方可以断开连接。

发送方330,用于接收消息中间件320解码翻译之后转发的响应信息或发送请求信息至消息中间件320。用于作为请求方,向消息中间件320发送断开连接请求,并在接收到消息中间件320发送的断开连接允许响应之后,与消息中间件320断开连接。发送方330可以为客户端、消息中间件或服务器等。

需要说明的是,上述图3所示的结构仅是一种示例,本发明实施例对此不做限定。

基于上述描述,图4示例性的示出了本发明实施例提供的一种断开连接的方法的流程示意图,该流程可由断开连接的装置执行。

如图4所示,该流程具体包括:

步骤410,中间方接收请求方发送的断开连接请求。

本发明实施例中,请求方可以为交互方中的任一方,交互方包括发送方和接收方,交互方在发送断开连接请求时,会改变自身的工作状态,以告知中间方进行后续处理。例如,交互方的工作状态是根据状态机确定的,图5示例性的示出了一种交互方工作状态的示意图,如图5所示,交互方的工作状态包括正常工作态、请求断连态、断连就绪态、连接断开态,交互方在正常工作态时,可以向中间方发送断开连接请求,若中间方未返回失败消息,则交互方进入请求断连态,中间方在交互方处于请求断连态之后,拒绝交互方中的发送方的请求包,并等待交互方中的接收方的响应信息反馈完成后,向请求方发送断开连接允许响应。请求方在接收到断开连接允许响应之后,进入断连就绪态,然后向中间方发送断开信息,与中间方断开连接,进入连接断开态,重启后可以重新进入正常工作态。针对交互方不同工作状态所处理的方法在下述步骤中进行具体描述。

步骤420,所述中间方确定第一收发记录中的收发数是否符合设定条件。

本发明实施例中,请求方在发送断开连接请求之后,进入请求断连态,然后中间方确定第一收发记录中的收发数是否符合设定条件,其中第一收发记录是从各交互方的收发记录中确定出包含请求方的收发记录,每个交互方的收发记录均是中间方根据该交互方的消息收发数生成的,每个交互方的收发记录都设置有各自的访问锁。

其中,交互方各自的访问锁可以根据交互方的名称生成,或根据交互方的地址进行生成。

本发明实施例中,每个交互方对应的访问锁是根据交互方中的接收方和发送方的标识信息确定的,具体的,中间方接收交互方发送的注册信息,注册信息包括发送方的标识信息和接收方的标识信息,再根据发送方的标识信息和接收方的标识信息,生成用于访问交互方的收发记录的访问锁,然后在发送锁表中添加以发送方的标识信息为键,以接收方的标识信息和访问锁为值的键值对,最后在接收锁表中添加以接收方的标识信息为键,以发送方的标识信息和访问锁为值的键值对。

也就是说,中间方根据发送方的标识信息和接收方的标识信息生成了两个锁表,包括发送锁表和接收锁表,针对同一个发送方和接收方,发送锁表和接收锁表中的锁是同一个锁。图6示例性的示出了一种访问锁的示意图,如图6所示,发送方包括S1和S2,接收方包括R3和R4,其中1、2、3和4表示交互方对应的标识信息。

由图可知,发送锁表中是以发送方的标识信息为键(S1和S2),以接收方的标识信息(R3和R4)和访问锁为值(如1,3)的键值对。接收锁表中是以接收方的标识信息(R3和R4)为键,以发送方的标识信息(S1和S2)和访问锁为值(如1,4)的键值对,实现各交互方设置有各自的访问锁,如S1和R3的访问锁为(1,3)。

中间方在获取请求方的访问锁之后,则可以访问第一收发记录,其中第一收发记录包括各交互方的收发记录,根据请求方的标识信息即可确定出对应的收发记录。图7示例性的示出了一种第一收发记录的示意图,如图7所示,各交互方有对应的收发记录的访问数,例如交互方“:1”是发送方为S1,接收方为R3的交互方的收发记录的访问数。

进一步地,请求方是发送方,则从发送锁表中确定出键为发送方的标识信息所对应的值,根据值中的接收方的标识信息和发送方的标识信息,查找第一收发记录,并使用值中的访问锁访问第一收发记录。例如,请求方为发送方S1,则在发送锁表中,确定出键为发送方的标识信息所对应的值(包括1,3和1,4),然后再根据值中的接收方的标识信息(如4),确定申请方的访问锁(1,4)。

请求方是接收方,则从接收锁表中确定出键为接收方的标识信息所对应的值,根据值中的发送方的标识信息和接收方的标识信息,查找第一收发记录,并使用值中的访问锁访问第一收发记录。例如,请求方为接收方R3,则在接收锁表中,确定出键为接收方的标识信息所对应的值(包括1,3和2,3),然后再根据值中的发送方的标识信息(如1),确定申请方的访问锁(1,3)。

本发明实施例中,设定条件可以包括第一收发记录中的收发数符合设定条件或等待时长符合设定阈值,其中,第一收发记录中的收发数符合设定条件可以为是否达到数量阈值或是0。例如,如图7所示,第一收发记录中,交互方的收发记录的访问数为1,交互方的收发记录的访问数为2,交互方的收发记录的访问数为0,交互方的收发记录的访问数为0,需要说明的是,交互方的收发记录的访问数可以根据交互方发送的信息进行修改,例如,在发送方发送请求信息时,将收发记录的访问数乘以预设倍数,或加权求和等方法。

进一步地,中间方若接收到交互方中的发送方发送的消息,则获取交互方的收发记录对应的访问锁,通过访问锁,将交互方的收发记录中的访问数加1。若接收到交互方中的接收方发送的消息,则获取交互方的收发记录对应的访问锁,通过访问锁,将交互方的收发记录中的访问数减1。因此,在确定交互方的收发记录的访问数为0时,可以确定交互方的收发记录中的收发数是否符合设定条件。

例如,如图7所示,第一收发记录中,交互方的收发记录的访问数为1,则表示接收方R3有1个响应信息未反馈。交互方的收发记录的访问数为2,则表示接收方R4有2个响应信息未反馈。交互方的收发记录的访问数为0,则表示交互方的收发记录中的收发数符合设定条件。交互方的收发记录的访问数为0,则表示交互方的收发记录中的收发数符合设定条件。

步骤430,所述中间方确定所述第一收发记录中的收发数符合所述设定条件,则向所述请求方发送断开连接允许响应。

本发明实施例中,中间方在向请求方发送断开连接允许响应之后,请求方会进入断连就绪态,并准备与中间方断开连接。

示例性的,在请求方为接收方时,中间方使用值中的访问锁访问第一收发记录,确定第一收发记录中的收发数符合设定条件,向接收方发送第一断开连接允许响应之后,在接收到接收方发送的连接断开通知后,释放访问锁。且接收方进入连接断开态。例如,如图6和图7所示,请求方为接收方R3,中间方根据接收方的标识信息确定值(1,3和2,3),然后使用值中的访问锁(),因为此时的的访问数为1,则接收方R3的收发数不符合设定条件,则中间方向接收方R3反馈断开连接请求失败信息,并占用访问锁(),使访问锁中的发送方(S1和S2)无法发送请求信息。

若此时的的访问数为0,则接收方R3的收发数符合设定条件,然后向接收方R3发送第一断开连接允许响应,接收方R3在收到第一断开连接允许响应之后,进入连接断开态。然后接收方R3向中间方发送连接断开通知,中间方与接收方R3断开连接,并释放访问锁()。

示例性的,在请求方为发送方时,若发送方的请求信息中包括的目标接收方无法访问时,可以向发送方返回失败消息,或返回发送方更换接收方的消息或选项。

进一步地,中间方接收发送方的消息,其中,消息包括目标接收方的标识信息。中间方若从发送锁表中未获取到发送方与目标接收方的访问锁,则从发送锁表中获取发送方与替代接收方的访问锁,并将消息发送至替代接收方,需要说明的是,替代接收方与目标接收方具有相同功能。

本发明实施例中,目标接收方会存在停机升级等原因与中间方断开连接,因此,此时的发送方无法与目标接收方进行交互,中间方会将发送方与替代接收方进行交互,并记录相应的访问数,其中,中间方确定替代接收方可以根据目标接收方的资源类型进行确定,或者根据发送方的请求信息进行确定。例如,针对发送方的请求信息,目标接收方和替代接收方所待反馈的响应信息一致,则认为替代接收方与所述目标接收方具有相同功能,将方法放与替代接收方进行交互。

示例性的,中间方在确定第一收发记录中的收发数不符合设定条件,则向请求方发送断开连接等待响应,直至中间方确定第一收发记录中的收发数符合设定条件或等待时长超过设定阈值,则向请求方发送断开连接允许响应。其中,设定阈值是根据经验预设的,如设定阈值可以为1分钟,5分钟等。

示例性的,本发明实施例中,中间方在不同的工作状态所在处理任务是不同的,例如,交互方的工作状态是根据状态机确定的,图8示例性的示出了一种中间方工作状态示意图,如图8所示,中间方的工作状态包括正常工作态、请求断连态、连接断开态,其中,中间方在正常工作态时,所处理的任务包括上述所述的技术方案,再次不作赘述,在中间方向交互方发送断开连接请求时,进入请求断连态,并在发起连接断开前,拒绝各交互方中的发送方发送的消息,防止在与接收方断开连接时,发送方发送的信息丢失,然后在确定各交互方的收发记录中的访问数符合所述设定条件,断开与各交互方的连接,进入连接断开态,再重启之后,可恢复至正常工作态。

为了更好的解释上述技术方案,下面再具体实例中阐述断开连接的方法。

实例1

图9示例性的示出了一种发送方断开连接的方法示意图,如图9所示,

发送方(S1和S2)通过中间方连接与接收方(R3和R4)交互。发送方S1可以通过状态机向中间方发送断开连接请求,中间方确定第一收发记录中含有发送方S1的访问数(:1和:0),在确定将接收方R1反馈的响应信息发送至发送方S1时,将“:1”修改为“:0”,此时向发送方S1发送断开连接允许响应,通知发送方S1可以与中间方断开连接。若中间方在设定阈值(1分钟)内,未收到响应信息,向发送方S1发送断开连接允许响应,通知发送方S1可以与中间方断开连接。

实例2

图10示例性的示出了一种接收方断开连接的方法示意图,如图10所示,接收方(R3和R4)通过中间方连接与发送方(S1和S2)交互。接收方R3可以通过状态机向中间方发送断开连接请求,中间方获取接收方R3的访问锁,如图6所示,占用访问锁(1,3)和访问锁(2,3),并拒绝发送方S1和发送方S2发送请求信息,再确定第一收发记录中含有接收方R3的访问数(:1和:0),然后在确定将接收方R3反馈的响应信息发送至发送方S1时,将“:1”修改为“:0”,此时向接收方R3发送断开连接允许响应,通知接收方R3可以与中间方断开连接。若中间方在设定阈值(1分钟)内,未收到响应信息,向接收方R3发送断开连接允许响应,通知接收方R3可以与中间方断开连接。

实例3

图11示例性的示出了一种中间方断开连接的方法示意图,如图11所示,中间方与发送方(S1和S2)和接收方(R3和R4)连接。中间方拒绝发送方(S1和S2)的请求消息,查询第一收发记录中的所有交互方的访问数,在确定第一收发记录中的所有交互方的访问数都为0时,断开与发送方和接收方的连接。若交互方的访问数不为0,则等待所有交互方的访问数为0,若中间方在等待超过设定阈值(1分钟)时间之后,仍然存在交互方的访问数不为0的收发记录,则强制断开与发送方和接收方的连接。

需要说明的是,上述技术方案中,发送方若确定向中间方发送请求信息失败,则连接其他中间方。

本发明实施例中,请求方为交互方中的任一方,即发送方或接收方,中间方在接收到断开连接请求后,获取交互方的访问锁,查询交互方的收发记录,因为交互方的收发记录所记录的交互方的信息收发数,中间方在访问第一收发记录之前,需要在交互方的锁表中确定出请求方对应的访问锁,只有获取到访问锁,才能在第一收发记录中查询或修改请求方的收发记录,以防止信息高并发时,中间方记录请求方的收发记录出错,提升了中间方的可靠性和准确性。因为交互方的收发记录所记录的是交互方的信息收发数(即中间方接收到发送方的请求消息并发送到接收方后,等待接收方回复响应消息的数目),因此在确定交互方的收发记录符合预设条件时,向请求方发送断开连接允许响应,以告知请求方可以断开连接,以此保证了交互方在与中间方断开连接时,信息不丢失,增加了中间方的稳定性,减小了中间方丢失信息的可能性。

基于相同的技术构思,图12示例性的示出了本发明实施例提供的一种断开连接的装置的结构示意图,该装置可以执行的流程。

如图12所示,该装置具体包括:

接收模块1210,用于接收请求方发送的断开连接请求;

处理模块1220,用于确定第一收发记录中的收发数是否符合设定条件;所述第一收发记录是从各交互方的收发记录中确定出包含所述请求方的收发记录;每个交互方的收发记录均是所述中间方根据该交互方的消息收发数生成的;每个交互方的收发记录都设置有各自的访问锁;

确定所述第一收发记录中的收发数符合所述设定条件,则向所述请求方发送断开连接允许响应。

可选的,所述处理模块1220具体用于:

接收交互方发送的注册信息,所述注册信息包括发送方的标识信息和接收方的标识信息;

根据所述发送方的标识信息和所述接收方的标识信息,生成用于访问所述交互方的收发记录的访问锁;

在发送锁表中添加以所述发送方的标识信息为键,以所述接收方的标识信息和所述访问锁为值的键值对;

在接收锁表中添加以所述接收方的标识信息为键,以所述发送方的标识信息和所述访问锁为值的键值对。

可选的,所述处理模块1220具体用于:

所述请求方是发送方,则从所述发送锁表中确定出键为所述发送方的标识信息所对应的值;根据所述值中的接收方的标识信息和所述发送方的标识信息,查找所述第一收发记录,并使用所述值中的访问锁访问所述第一收发记录;

所述请求方是接收方,则从所述接收锁表中确定出键为所述接收方的标识信息所对应的值;根据所述值中的发送方的标识信息和所述接收方的标识信息,查找所述第一收发记录,并使用所述值中的访问锁访问所述第一收发记录。

可选的,所述处理模块1220具体用于:

使用所述值中的访问锁访问所述第一收发记录;

确定所述第一收发记录中的收发数符合所述设定条件,向所述请求方发送第一断开连接允许响应之后,在接收到所述接收方发送的连接断开通知后,释放所述访问锁。

可选的,所述请求方为发送方;

所述处理模块1220还用于:

接收所述发送方的消息;所述消息包括目标接收方的标识信息;

若从所述发送锁表中未获取到所述发送方与所述目标接收方的访问锁,则从所述发送锁表中获取所述发送方与替代接收方的访问锁,并将所述消息发送至所述替代接收方;所述替代接收方与所述目标接收方具有相同功能。

可选的,所述处理模块1220还用于:

确定所述第一收发记录中的收发数不符合所述设定条件,则向所述请求方发送断开连接等待响应;

接收所述交互方中的接收方发送的消息,通过所述第一收发记录的访问锁修改所述第一收发记录中的收发数;

确定所述第一收发记录中的收发数符合所述设定条件或等待时长符合设定阈值,则向所述请求方发送所述断开连接允许响应。

可选的,所述处理模块1220具体用于:

若接收到交互方中的发送方发送的消息,则获取所述交互方的收发记录对应的访问锁;

通过所述访问锁,将所述交互方的收发记录中的访问数加1;

若接收到所述交互方中的接收方发送的消息,则获取所述交互方的收发记录对应的访问锁;

通过所述访问锁,将所述交互方的收发记录中的访问数减1。

可选的,所述处理模块1220还用于:

在发起连接断开前,拒绝所述各交互方中的发送方发送的消息;

在确定所述各交互方的收发记录中的访问数符合所述设定条件,断开与所述各交互方的连接。

基于相同的技术构思,本发明实施例还提供一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述断开连接的方法。

基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行断开连接的方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 用于在通信系统中配置断开连接的TCP连接的方法和装置、切换支持方法及其装置
  • 用于将浮动单元与连接到海底装置上的浮筒连接和断开的连接系统和方法
技术分类

06120112805255