发明内容
本发明提供一种消息传输方法及装置、系统,用以解决现有技术中由于数据丢失,消息系统从业务数据发起的源头重新发送该业务数据,导致的传输时延较长、传输效率较低的问题。
第一方面,本发明提供一种消息传输方法,包括:
节点将上一节点发送的业务消息发送给下一节点,所述业务消息中包括所述业务消息的标识信息;
所述节点接收所述下一节点发送的重新发送请求消息,所述重新发送请求消息中包括所述业务消息的标识信息;
所述节点根据所述业务消息的标识信息,确定所述节点缓存有与所述业务消息的标识对应的业务消息,将所述缓存的业务消息发送给所述下一节点。
基于第一方面,在第一种可能的实现方式中,所述节点将上一节点发送的业务消息发送给下一节点之前,包括:
所述节点缓存所述上一节点发送的业务消息。
基于第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点将上一节点发送的业务消息发送给下一节点之后,还包括:
所述节点接收到所述下一节点发送的确认消息,所述确认消息中包括所述业务消息的标识信息;
所述节点根据所述业务消息的标识信息,将缓存的与所述业务消息的标识对应的业务消息予以删除。
基于第一方面,在第三种可能的实现方式中,所述节点接收到所述下一节点发送的重新发送请求消息之后,还包括:
所述节点根据所述业务消息的标识信息,确定所述节点没有缓存有与所述业务消息的标识对应的业务消息,将所述重新发送请求消息发送给所述上一节点。
基于第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述节点接收到所述下一节点发送的确认消息之后,还包括:
所述节点向所述上一节点发送所述确认消息,所述确认消息中包括所述业务消息的标识信息;以使所述上一节点根据所述确认消息,删除所述上一节点缓存的与所述业务消息的标识对应的业务消息。
第二方面,本发明提供一种消息传输装置,位于节点侧,包括:
发送模块,用于将上一节点发送的业务消息发送给下一节点,所述业务消息中包括所述业务消息的标识信息;
接收模块,用于在发送模块将上一节点发送的业务消息发送给下一节点之后,接收所述下一节点发送的重新发送请求消息,所述重新发送请求消息中包括所述业务消息的标识信息;
确定模块,用于根据所述业务消息的标识信息,确定所述节点中缓存有与所述业务消息的标识对应的业务消息,将所述缓存的业务消息通过所述发送模块发送给所述下一节点。
基于第二方面,在第一种可能的实现方式中,所述装置还包括:
缓存模块,用于在所述发送模块将所述上一节点发送的业务消息发送给下一节点之前,缓存所述上一节点发送的业务消息。
基于第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收模块,还用于在所述发送模块将所述上一节点发送的业务消息发送给所述下一节点之后,接收所述下一节点发送的确认消息,所述确认消息中包括所述业务消息的标识信息;
所述装置还包括:
删除模块,用于根据所述业务消息的标识信息,将缓存的与所述业务消息的标识对应的业务消息予以删除。
基于第二方面,在第三种可能的实现方式中,所述确定模块,还用于在所述接收模块接收所述下一节点发送的重新发送请求消息之后,根据所述业务消息的标识信息,确定所述节点没有缓存有与所述业务消息的标识对应的业务消息,将所述重新发送请求消息通过所述发送模块发送给所述上一节点。
基于第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述发送模块,还用于在所述接收模块接收到所述下一节点发送的确认消息之后,向所述上一节点发送所述确认消息,所述确认消息中包括所述业务消息的标识信息;以使所述上一节点根据所述确认消息,删除所述上一节点缓存的与所述业务消息的标识对应的业务消息。
第三方面,本发明提供一种消息传输系统,包括:多个节点;
所述多个节点中的任一节点包括上述消息传输装置。
本发明实施例通过节点在接收到上一节点发送的业务消息时,将该业务消息进行缓存,从而使得当该节点的下一节点发生业务消息丢失并向该节点发送重新发送请求消息时,该节点可以根据重新发送请求消息中包含的业务消息的标识信息,确定是否缓存有相应的业务消息,若是则直接将缓存的业务消息发送给下一节点,从而不需要从发起业务消息的源节点处重新发送业务消息,可以降低传输时延,提高传输效率,减轻沿途各节点的传输负担,节省网络带宽。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的消息传输方法的流程示意图,如图1所示,本实施例的消息传输方法可以包括:
101、节点将上一节点发送的业务消息发送给下一节点,所述业务消息中包括所述业务消息的标识信息。
本实施例的消息传输系统包括多个节点,每个节点中均部署有互联网服务总线(英文:InternetServiceBus,简称ISB)和消息存储单元(MessageStore)。其中,每个节点之间通过互联网服务总线连接。
当节点接收到上一节点发送的业务消息时,可以将该业务消息缓存在消息存储单元中。其中,业务消息中包括所述业务消息的标识信息,所述业务消息的标识信息包括所述业务消息的编号;进一步地,所述业务消息的标识信息中还可以包括上一节点的标识。
节点缓存上一节点发送的业务消息之后,节点将该业务消息发送给下一节点。
102、所述节点接收所述下一节点发送的重新发送请求消息,所述重新发送请求消息中包括所述业务消息的标识信息。
假设下一节点遭遇意外灾害,使得从节点处发送的业务消息丢失时,下一节点可以向节点发送重新发送请求消息,其中,该重新发送请求消息中包括所述业务消息的标识信息。
又假设下一节点接收到节点发送的业务消息,并成功地将该业务消息发送给下一节点的下一个节点,则下一节点可以向节点发送确认消息,所述确认消息中包括所述业务消息的标识信息;使得节点根据下一节点发送的确认消息之后,删除所述节点中缓存的与所述业务消息的标识对应的业务消息。进一步地,节点根据下一节点发送的确认消息之后,节点可以向上一节点发送确认消息,使得上一节点根据节点发送的确认消息中包括的业务消息的标识信息,删除上一节点中缓存的与所述业务消息的标识对应的业务消息。
103、所述节点根据所述业务消息的标识信息,确定所述节点缓存有与所述业务消息的标识对应的业务消息,将所述缓存的业务消息发送给所述下一节点。
假设节点接收到下一节点发送的重新发送请求消息之后,根据重新发送请求消息中包含的业务消息的标识信息,若确定节点中缓存有与所述业务消息的标识对应的业务消息,则将所述节点缓存的业务消息发送给所述下一节点。
又假设节点接收到下一节点发送的重新发送请求消息之后,根据重新发送请求消息中包含的业务消息的标识信息,若确定节点中没有缓存有与所述业务消息的标识对应的业务消息,则将所述重新发送请求消息发送给所述上一节点;使得所述上一节点根据重新发送请求消息中包含的业务消息的标识信息,确定所述上一节点中是否缓存有与所述业务消息的标识对应的业务消息,若是则所述上一节点将缓存的所述业务消息通过所述节点发送给所述下一节点,否则,所述上一节点将所述重新发送请求消息发送给上一节点的上一个节点,直至回溯到发起该业务消息的源节点为止。
可选地,假设所述节点的下一节点为多个,且多个下一节点之间为相邻节点时,当所述节点将业务消息发送给多个下一节点时,假设其中一个下一节点遭遇意外灾害,使得从节点处发送的业务消息丢失时,该丢失业务消息的下一节点除了可以向所述节点发送重新发送请求消息之外,还可以向与该丢失业务消息的下一节点相邻的其他下一节点发送重新发送请求消息,其中,该重新发送请求消息中包括所述业务消息的标识信息,使得与该丢失业务消息的下一节点相邻的其他下一节点根据业务消息的标识信息,确定是否缓存有与该业务消息的标识对应的业务消息,若是,则将缓存的业务消息发送给丢失业务消息的下一节点。
本发明实施例通过节点在接收到上一节点发送的业务消息时,将该业务消息进行缓存,从而使得当该节点的下一节点发生业务消息丢失并向该节点发送重新发送请求消息时,该节点可以根据重新发送请求消息中包含的业务消息的标识信息,确定是否缓存有相应的业务消息,若是则直接将缓存的业务消息发送给下一节点,从而不需要从发起业务消息的源节点处重新发送业务消息,可以降低传输时延,提高传输效率,减轻沿途各节点的传输负担,节省网络带宽。
进一步地,当节点接收到下一节点接收的确认消息时,可以将缓存的业务消息予以删除,从而释放节点的缓存空间。
图2为本发明一实施例应用的消息传输系统的结构示意图,如图2所示,假设A、B、C、D、E节点分别为消息传输系统中的节点,每个节点均部署有互联网服务总线和消息存储单元。
假设用户在A节点发起业务消息,该业务消息需要途经B节点和C节点,才能到达目的地D节点和E节点。其中,A节点为源节点,D节点和E节点为目的节点,B节点和C节点为中间节点,B节点为C节点的上一节点。
当A节点将业务消息发送给B节点之后,B节点在将业务消息发送C节点之前,会暂时保存该业务消息在节点B的消息存储单元中。C节点在将业务消息成功转发给D节点和E节点之后,会向B节点发送确认消息。B节点接收到来自C节点发送的确认消息之后,会删除B节点中缓存的业务消息。
图3为本发明另一实施例应用的消息传输系统的结构示意图,如图3所示,假设A、B、C、D、E节点分别为消息传输系统中的节点,每个节点均部署有互联网服务总线和消息存储单元。
假设用户在A节点发起业务消息,该业务消息需要途经B节点和C节点,才能到达目的地D节点和E节点。其中,A节点为源节点,D节点和E节点为目的节点,B节点和C节点为中间节点,B节点为C节点的上一节点。
当A节点将业务消息发送给B节点之后,B节点在将业务消息发送C节点之前,会暂时保存该业务消息在节点B的消息存储单元中。
假设C节点遭遇意外灾害,发现从B节点发送的业务消息丢失时,C节点可以向B节点发送重新发送请求消息,B节点接收到来自C节点的重新发送请求消息之后,会查询B节点的消息存储单元,如果确定缓存有该业务消息,则将该业务消息重新发送给C节点。
进一步假设B节点也发生了数据丢失,则B节点可以向上一个节点(A节点)重新发送该业务消息。
图4为本发明另一实施例应用的消息传输系统的结构示意图,如图4所示,假设A、B、C、D、E节点分别为消息传输系统中的节点,且D节点和E节点为相邻节点,每个节点均部署有互联网服务总线和消息存储单元。
假设用户在A节点发起业务消息,该业务消息需要途经B节点和C节点,才能到达目的地D节点和E节点。其中,A节点为源节点,D节点和E节点为目的节点,B节点和C节点为中间节点,B节点为C节点的上一节点。
当A节点将业务消息发送给B节点之后,B节点在将业务消息发送C节点之前,会暂时保存该业务消息在节点B的消息存储单元中。
假设C节点在将业务消息成功转发给D节点和E节点之后,会向B节点发送确认消息。B节点接收到来自C节点发送的确认消息之后,会删除B节点中缓存的业务消息。
进一步假设D节点成功接收到C节点发送的业务消息,但是E节点遭遇意外灾害,发现从C节点发送的业务消息丢失时,E节点可以向C节点发送重新发送请求消息,此时,C节点若确定缓存有该业务消息时,可以向E节点重新发送该业务消息。
可选地,D节点为E节点的相邻节点,此时,E节点也可以向D节点发送获取业务消息的请求消息,其中,该获取业务消息的请求消息中包含业务消息的标识信息,D节点根据业务消息的标识信息,确定保存有与该业务消息的标识对应的业务消息,则将该业务消息发送给E节点。
本发明实施例通过节点在接收到上一节点发送的业务消息时,将该业务消息进行缓存,从而使得当该节点的下一节点发生业务消息丢失并向该节点发送重新发送请求消息时,该节点可以根据重新发送请求消息中包含的业务消息的标识信息,确定是否缓存有相应的业务消息,若是则直接将缓存的业务消息发送给下一节点,从而不需要从发起业务消息的源节点处重新发送业务消息,可以降低传输时延,提高传输效率,减轻沿途各节点的传输负担,节省网络带宽。
进一步地,当节点接收到下一节点接收的确认消息时,可以将缓存的业务消息予以删除,从而释放节点的缓存空间。
图5为本发明另一实施例提供的消息传输装置的结构示意图;位于节点侧,如图5所示,所述消息传输装置包括:
发送模块51,用于将上一节点发送的业务消息发送给下一节点,所述业务消息中包括所述业务消息的标识信息;
接收模块52,用于在发送模块51将上一节点发送的业务消息发送给下一节点之后,接收所述下一节点发送的重新发送请求消息,所述重新发送请求消息中包括所述业务消息的标识信息;
确定模块53,用于根据所述接收模块52接收的业务消息的标识信息,确定所述节点中缓存有与所述业务消息的标识对应的业务消息,将所述缓存的业务消息通过所述发送模块51发送给所述下一节点。
举例来说,所述消息传输装置还包括:
缓存模块54,用于在接收模块52接收所述上一节点发送的业务消息之后,在发送模块51将所述上一节点发送的业务消息发送给下一节点之前,缓存所述上一节点发送的业务消息。
举例来说,接收模块52,还用于在所述发送模块51将所述上一节点发送的业务消息发送给所述下一节点之后,接收所述下一节点发送的确认消息,所述确认消息中包括所述业务消息的标识信息;
举例来说,所述消息传输装置还包括:
删除模块55,用于根据所述接收模块52接收的业务消息的标识信息,将缓存的与所述业务消息的标识对应的业务消息予以删除。
举例来说,确定模块53,还用于在所述接收模块52接收所述下一节点发送的重新发送请求消息之后,根据所述业务消息的标识信息,确定所述节点没有缓存有与所述业务消息的标识对应的业务消息,将所述重新发送请求消息通过所述发送模块51发送给所述上一节点。
举例来说,发送模块51,还用于在所述接收模块52接收到所述下一节点发送的确认消息之后,向所述上一节点发送所述确认消息,所述确认消息中包括所述业务消息的标识信息;以使所述上一节点根据所述确认消息,删除所述上一节点缓存的与所述业务消息的标识对应的业务消息。
本发明实施例通过节点在接收到上一节点发送的业务消息时,将该业务消息进行缓存,从而使得当该节点的下一节点发生业务消息丢失并向该节点发送重新发送请求消息时,该节点可以根据重新发送请求消息中包含的业务消息的标识信息,确定是否缓存有相应的业务消息,若是则直接将缓存的业务消息发送给下一节点,从而不需要从发起业务消息的源节点处重新发送业务消息,可以降低传输时延,提高传输效率,减轻沿途各节点的传输负担,节省网络带宽。
进一步地,当节点接收到下一节点接收的确认消息时,可以将缓存的业务消息予以删除,从而释放节点的缓存空间。
图6为本发明另一实施例提供的消息传输装置的结构示意图,具体可以为节点,如图6所示,所述节点具体包括处理器、存储器、通信总线,其中,处理器通过通信总线与存储器连接,存储器中保存有实现消息传输方法的指令;进一步地,所述节点还包括通信接口,通过通信接口与其他网元设备(例如上一节点或下一节点)进行通信连接。
当处理器调取存储器中的指令时,可以执行如下步骤:
将上一节点发送的业务消息发送给下一节点,所述业务消息中包括所述业务消息的标识信息;
接收所述下一节点发送的重新发送请求消息,所述重新发送请求消息中包括所述业务消息的标识信息;
根据所述业务消息的标识信息,确定所述节点缓存有与所述业务消息的标识对应的业务消息,将所述缓存的业务消息发送给所述下一节点。
在第一种可能的实现方式中,将上一节点发送的业务消息发送给下一节点之前,包括:
缓存所述上一节点发送的业务消息。
基于第一种可能的实现方式,在第二种可能的实现方式中,将上一节点发送的业务消息发送给下一节点之后,还包括:
接收到所述下一节点发送的确认消息,所述确认消息中包括所述业务消息的标识信息;
根据所述业务消息的标识信息,将缓存的与所述业务消息的标识对应的业务消息予以删除。
在第三种可能的实现方式中,接收到所述下一节点发送的重新发送请求消息之后,还包括:
根据所述业务消息的标识信息,确定所述节点没有缓存有与所述业务消息的标识对应的业务消息,将所述重新发送请求消息发送给所述上一节点。
基于第二种可能的实现方式,在第四种可能的实现方式中,接收到所述下一节点发送的确认消息之后,还包括:
向所述上一节点发送所述确认消息,所述确认消息中包括所述业务消息的标识信息;以使所述上一节点根据所述确认消息,删除所述上一节点缓存的与所述业务消息的标识对应的业务消息。
本发明实施例通过节点在接收到上一节点发送的业务消息时,将该业务消息进行缓存,从而使得当该节点的下一节点发生业务消息丢失并向该节点发送重新发送请求消息时,该节点可以根据重新发送请求消息中包含的业务消息的标识信息,确定是否缓存有相应的业务消息,若是则直接将缓存的业务消息发送给下一节点,从而不需要从发起业务消息的源节点处重新发送业务消息,可以降低传输时延,提高传输效率,减轻沿途各节点的传输负担,节省网络带宽。
进一步地,当节点接收到下一节点接收的确认消息时,可以将缓存的业务消息予以删除,从而释放节点的缓存空间。
本发明实施例还提供一种消息传输系统,具体包括多个节点,所述多个节点中的任一节点包括如图5或图6所述的消息传输装置,详细内容参考图5或图6所示的消息传输装置中的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以以代码的形式存储在一个计算机可读取存储介质中。上述代码存储在一个计算机可读存储介质中,包括若干指令用以使处理器或硬件电路执行本发明各个实施例所述方法的部分或全部步骤。而前述的存储介质包括:通用串行总线接口的无需物理驱动器的微型高容量移动存储盘、移动硬盘、只读存储器(英文:Read-OnlyMemory,简称ROM)、随机存取存储器(英文:RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。