消息发送方法及服务端与流程

文档序号:12478288阅读:329来源:国知局
消息发送方法及服务端与流程

本发明涉及网络通信技术领域,尤其涉及一种消息发送方法及服务端。



背景技术:

消息中间件是一种由消息传送机制或消息队列模式组成的中间件技术,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。一般来说,消息中间件并不要求系统具备一个可靠的底部传输层,而是通过以消息的形式收发应用程序数据来连接运行于不同系统上的应用程序。消息中间件主要有以下特点:1)分布式;2)可靠性;3)异步;4)松耦合;5)事件驱动。对于消息中间件来说,可靠性是几个特点中非常重要的一个。

在现有的技术中,大多数的消息中间件产品只解决单程消息的可靠性,只从发送端和服务端的角度去考虑,没有从发送端到接收端的角度去考虑,导致无法保证接收端能够接收到发送端发送的消息。



技术实现要素:

本发明的主要目的在于提供一种消息发送方法及服务端,旨在解决现有的消息中间件产品无法保证接收端能够接收到发送端发送的业务消息的技术问题。

为实现上述目的,本发明提供的一种消息发送方法,所述消息发送方法应用于消息中间件,所述消息中间件中内置有服务端,分别与接入所述消息中间件的发送端和接收端连接,所述消息发送方法包括:

所述服务端接收所述发送端发送的业务消息,存储所述业务消息;

将所述业务消息发送给所述接收端,以供所述接收端处理所述业务消息,当所述接收端处理完所述业务消息后,返回第一确认消息;

当接收到所述接收端返回的所述第一确认消息后,删除所存储的所述业务消息。

优选地,所述接收发送端发送的业务消息,存储所述业务消息步骤之后,还包括:

发送第二确认消息给所述发送端,以供所述发送端接收到所述第二确认消息时,删除所述业务消息;

其中,当所述发送端在预设时间内未接收到所述第二确认消息时,所述发送端重新发送所述业务消息给所述服务端。

优选地,所述发送第二确认消息给所述发送端,以供所述发送端接收到所述第二确认消息时,删除所述业务消息的步骤包括:

所述服务端的主节点将所述业务消息同步到所述服务端中至少两个从节点中;

当接收到任一从节点发送的第三确认消息时,发送第二确认消息给所述发送端,以供所述发送端接收到所述第二确认消息,删除所述业务消息。

优选地,所述服务端接收所述发送端发送的业务消息,存储所述业务消息的步骤包括:

所述服务端接收所述发送端发送的业务消息,检测所述业务消息的完整性;

若所述业务消息完整,则存储所述业务消息。

优选地,所述服务端接收所述发送端发送的业务消息,并检测所述业务消息的完整性的步骤之后,还包括:

若所述业务消息不完整,则删除不完整的业务消息,且不发送第二确认消息给所述发送端,以使所述发送端重新发送所述业务消息给所述服务端。

此外,为实现上述目的,本发明还提供一种服务端,所述服务端内置于消息中间件中,分别与接入所述消息中间件的发送端和接收端连接,所述服务端包括:

存储模块,用于接收发送端发送的业务消息,存储所述业务消息;

发送模块,用于将所述业务消息发送给所述接收端,以供所述接收端处理所述业务消息,当所述接收端处理完所述业务消息后,返回第一确认消息;

删除模块,用于当接收到所述接收端返回的所述第一确认消息后,删除所存储的所述业务消息。

优选地,所述发送模块,还用于发送第二确认消息给所述发送端,以供所述发送端接收到所述第二确认消息时,删除所述业务消息;

其中,当所述发送端在预设时间内未接收到所述第二确认消息时,所述发送端重新发送所述业务消息给所述服务端。

优选地,所述发送模块包括:

同步单元,用于将所述业务消息同步到所述服务端中至少两个从节点中;

发送单元,用于当接收到任一从节点发送的第三确认消息时,发送第二确认消息给所述发送端,以供所述发送端接收到所述第二确认消息,删除所述业务消息。

优选地,所述存储模块包括:

检测单元,用于接收所述发送端发送的业务消息,检测所述业务消息的完整性;

存储单元,用于若所述业务消息完整,则存储所述业务消息。

优选地,所述存储模块还包括:

删除单元,用于若所述业务消息不完整,则删除不完整的业务消息,且不发送第二确认消息给所述发送端,以使所述发送端重新发送所述业务消息给所述服务端。

本发明通过将所述发送端和所述接收端接入所述消息中间件中,并将所述发送端和所述接收端与所述消息中间件中的服务端连接,当所述服务端接收所述发送端发送的业务消息时,所述服务端存储所述业务消息,并将所述业务消息发送给所述接收端,以供所述接收端处理完所述业务消息后,返回第一确认消息;当所述服务端接收到所述接收端返回的所述第一确认消息后,删除所存储的所述业务消息。实现了根据所述服务端是否接收到所述接收端返回的第一确认消息来判断所述接收端是否成功接收到所述发送端发送的业务消息,只有当所述接收端接收到所述业务消息,并成功处理所述业务消息后,所述服务端才会删除存储的所述业务消息,保证了消息中间件产品的接收端能够成功接收到所述发送端发送的业务消息,并进一步保证所述接收端可以成功处理所述业务消息。

附图说明

图1为本发明消息中间件的一种整体架构示意图;

图2为本发明消息发送方法的第一实施例的流程示意图;

图3为本发明消息发送方法的第二实施例的流程示意图;

图4为本发明消息发送方法的第三实施例的流程示意图;

图5为本发明服务端的较佳实施例的功能模块示意图;

图6为本发明实施例中存储模块的一种功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明消息中间件的一种整体架构示意图。

由所述图1可知,所述发送端300和所述接收端200接入消息中间件的业务系统中,与所述消息中间件连接,进行通信。具体地,所述发送端300和所述接收端200分别与所述消息中间件中内置的服务端100连接。可以理解的是,所述服务端100为所述消息中间件中的一部分。所述消息中间件还包括Admin和Controller;所述Admin是所述消息中间件的管理控制器,所述Admin包括Topic Mgmt、User Mgmt和Permission Mgmt。所述Topic Mgmt负责业务消息类型的创建和修改;所述User Mgmt对接入所述消息中间件中的所述发送端300和所述接收端200进行管理;所述Permission Mgmt对接入所述消息中间件中的所述发送端300和所述接收端200的权限进行管理。所述Controller负责维护所述服务端100中的列表和路由,监测所述服务端100的运行情况,以使所述接收端200和所述发送端300从所述Controller中获取所述服务端100的运行情况。所述Controller包括RoutingInfo和Scheduler,所述RoutingInfo表示所述业务消息类型的路由信息;所述Scheduler对所述服务端100中主节点和从节点的切换进行管理。所述服务端100负责所述业务消息的接收、发送和存储,所述服务端100包括Permission、HA(High Available,高可用性群集)Switcher、Remoting、Message Routing、Meta data mgmt、Message Store、Stat、Console和Log。所述Permission控制有权限的发送端300和接收端200接入所述服务端100中;所述HA Switcher负责控制所述服务端100中主节点和从节点的自动切换;所述Remoting负责所述服务端100的远程通信;所述Message Routing负责所述服务端100接收和发送业务消息;所述Meta data mgmt对所述服务端100中元数据的管理;所述Message Store对所述服务端100所接收的业务消息进行存储;所述Stat用于统计所述服务端100接收和发送的业务消息;所述Console负责接收所述Admin发送的控制命令;所述Log用于输出与所述服务端100运行状况有关的日志。

基于上述的消息中间件的整体架构示意图,所述本发明提供一种消息发送方法及服务端。

参照图2,图2为本发明消息发送方法的第一实施例的流程示意图。

在本实施例中,所述消息发送方法包括:

步骤S10,服务端100接收发送端300发送的业务消息,存储所述业务消息;

所述服务端100接收所述发送端300发送的业务消息,并将所述业务消息存储至存储器中。进一步地,当所述发送端300需要发送业务消息给所述服务端100时,所述发送端300先缓存所述业务消息,并采用异步的方式发送给所述服务端100,即当所述发送端300发送一个业务消息给所述服务端100之后,所述发送端300的发送线程不需要等待,可以继续发送其它的业务消息。

步骤S20,将所述业务消息发送给所述接收端200,以供所述接收端200处理所述业务消息,当所述接收端处理完所述业务消息后,返回第一确认消息;

当所述服务端100存储所述业务消息后,所述服务端100将所述业务消息发送给所述接收端200,以供所述接收端200接收所述业务消息。当所述接收端200接收到所述服务端100发送的业务消息后,所述接收端200处理所述业务消息,即消费所述业务消息。当所述接收端200成功处理所述业务消息后,所述接收端200返回第一确认消息给所述服务端100。如当所述业务消息为开户申请指令时,当所述接收端200接收到所述开户申请指令,并成功执行所述开户申请指令时,所述接收端200返回第一确认消息给所述服务端100。

步骤S30,当接收到所述接收端200返回的所述第一确认消息后,删除所存储的所述业务消息。

当所述服务端100接收到所述接收端200返回的所述第一确认消息后,所述服务端100删除在存储器中的所述业务消息。

进一步地,当所述服务端100将所述业务消息发送给所述接收端200后,所述服务端100判断是否在预设时间内接收到所述接收端200返回的第一确认消息。若所述服务端100未在所述预设时间内接收到所述接收端200返回的第一确认消息,所述服务端100则重新将所述业务消息发送给所述接收端200。若所述服务端100在所述预设时间内接收到所述接收端200返回的第一确认消息,所述服务端100删除在存储器中的所述业务消息。保证了所述业务消息不会因为所述接收端200处理异常而丢失。所述预设时间可以根据具体需要而设置。

本实施例通过将所述发送端300和所述接收端200接入所述消息中间件中,并将所述发送端300和所述接收端200与所述服务端100连接,当所述服务端100接收所述发送端300发送的业务消息时,所述服务端100存储所述业务消息,并将所述业务消息发送给所述接收端200,以供所述接收端200处理完所述业务消息后,返回第一确认消息;当所述服务端100接收到所述接收端200返回的所述第一确认消息后,删除所存储的所述业务消息。实现了根据所述服务端100是否接收到所述接收端200返回的第一确认消息来判断所述接收端200是否成功接收到所述发送端300发送的业务消息,只有当所述接收端200接收到所述业务消息,并成功处理所述业务消息后,所述服务端100才会删除存储的所述业务消息,保证了消息中间件产品的接收端200能够成功接收到所述发送端300发送的业务消息,并进一步保证所述接收端200可以成功处理所述业务消息。

参照图3,图3为本发明消息发送方法的第二实施例的流程示意图,基于第一实施例提出本发明消息发送方法的第二实施例。

在本实施例中,所述消息发送方法还包括:

步骤S40,发送第二确认消息给所述发送端300,以供所述发送端300接收到所述第二确认消息时,删除所述业务消息;

其中,当所述发送端300在预设时间内未接收到所述第二确认消息时,所述发送端300重新发送所述业务消息给所述服务端100。

当所述服务端100成功存储所述发送端300发送的业务消息后,所述服务端100发送第二确认消息给所述发送端300,以提示所述发送端300所述服务端100已成功接收所述业务消息了。当所述发送端300接收到所述服务端100发送的第二确认消息时,所述发送端300删除所存储的业务消息。

在本实施例中,所述发送端300采用异步的方式接收所述第二确认消息时,即所述发送端300不需要在接收到所述第二确认消息后,才发送另一业务消息给所述服务端100,解决了现有的消息中间件中需要同步等待确认,影响所述消息中间件业务性能的问题。

进一步地,当所述发送端300将所述业务消息发送给所述服务端100后,所述发送端300判断是否在预设时间内接收到所述服务端100发送的第二确认消息。若所述发送端300未在所述预设时间内接收到所述服务端100发送的第二确认消息,所述发送端300则重新发送所述业务消息给所述服务端100;若所述发送端300在所述预设时间内接收到所述服务端100发送的第二确认消息,所述发送端300则删除所存储的业务消息。

需要说明的是,本实施例中的预设时间可以与第一实施例中的预设时间相同,也可以不同。

进一步地,所述步骤S40包括:

步骤a,所述服务端100的主节点将所述业务消息同步到所述服务端100中至少两个从节点中;

步骤b,当接收到任一从节点发送的第三确认消息时,发送第二确认消息给所述发送端300,以供所述发送端300接收到所述第二确认消息,删除所述业务消息。

进一步地,当所述服务端100接收到所述发送端300发送的业务消息时,即当所述服务端100的主节点接收到所述发送端300发送的业务消息时,所述服务端100的主节点将所述业务消息同步到所述服务端100中至少两个从节点中。当所述服务端100中任意一个从节点接收到所述业务消息时,接收到所述业务消息的从节点存储所述业务消息,并发送第三确认消息给所述主节点。当所述主节点接收到所述第三确认消息时,所述主节点发送第二确认消息给所述发送端300,以供所述发送端300接收到所述第二确认消息,删除所述业务消息。

需要说明的是,在所述服务端100中,会存在一个主节点和至少两个从节点,当所述服务端100中的主节点正常时,所述服务端100中接收业务消息和发送业务消息的操作都是由所述服务端100的主节点完成的;当所述服务端100中主节点异常时,所述服务端100中的发送业务消息的操作由所述服务端100中的从节点完成,以保证所述服务端100所接收的业务消息不会丢失,能成功发送给所述接收端200。

本实施例通过当所述服务端100接收到所述业务消息后,返回第二确认消息给所述发送端300,当所述发送端300未在预设时间内接收到所述第二确认消息时,所述发送端300会重新发送所述业务消息给所述服务端100。保证了所述服务端100可以成功接收所述发送端300所发送的业务消息。

参照图4,图4为本发明消息发送方法的第三实施例的流程示意图,基于第一实施例提出本发明消息发送方法的第三实施例。

在本实施例中,所述步骤S10包括:

步骤S11,所述服务端100接收所述发送端300发送的业务消息,检测所述业务消息的完整性;

步骤S12,若所述业务消息完整,则存储所述业务消息。

当所述服务端100接收到所述发送端300发送的业务消息后,所述服务端100检测所述发送端300所发送的业务消息的完整性。当所述服务端100检测到所述业务消息完整时,所述服务端100存储所述业务消息。所述服务端100可以通过CRC(Cyclic Redundancy Code,循环冗余校验)函数来检测所述业务消息的完整性。所述CRC函数是一种根据网络数据包或者电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。

所述消息发送方法还包括:

步骤S50,若所述业务消息不完整,则删除不完整的业务消息,且不发送第二确认消息给所述发送端300,以使所述发送端300重新发送所述业务消息给所述服务端100。

当所述服务端100判定所述业务消息不完整时,所述服务端100删除所述不完整的业务消息,而且不发送所述第二确认消息给所述发送端300。当所述发送端300未在预设时间内接收到所述服务端100所发送的第二确认消息时,所述发送端300重新发送所述业务消息给所述服务端100。

进一步地,当所述服务端100接收到正常的关闭指令时,如用户调用kill-15pid指令关闭所述服务端100,此时,所述服务端100的控制器Server会接收到所述关闭指令,关闭所述服务端100。当所述服务端100接收到所述业务消息后,所述服务端100会先将所述业务消息缓存在存储器中一段时间,在所述服务端100正常关闭之前,将所述存储器中业务消息写入磁盘中,并将所述存储器中所存储的业务消息删除。

当所述服务端100异常关闭时,如所述服务端100接收到Kill-9指令时,即非法关闭所述服务端100时,此时所述服务端100最后接收的业务消息可能会不完整。若所述业务消息不完整,则不能保证不完整的业务消息可以正常存储至所述存储器中。但是在所述服务端100异常关闭,所述服务端100还是可以在异常关闭之前将所述存储器中所存储的完整的业务消息通过sync命令写入所述磁盘中。

当所述消息中间件中的正在与所述发送端300进行业务消息传输的服务端100系统崩溃或者掉电时,所述发送端300接收不到该服务端100发送的第二确认消息。此时,所述发送端300可以通过所述Controller知道该服务端100系统已经崩溃或者出现了掉电情况,所述发送端300会重新将所述业务消息发送给所述消息中间件中的另一服务端100,以使所述接收端200从所述消息中间件中的另一服务端100获得所述业务消息,保证所述发送端300与所述接收端200之间业务消息的传输,保证所述接收端200可以成功接收所述发送端300所发出的业务消息。

本实施例通过在所述服务端100接收到所述业务消息后,检测所述业务消息的完整性,保证发送端300所发送的业务消息可以完整地发送至所述接收端200中。

本发明进一步提供一种服务端。所述服务端内置于所述消息中间件中,分别与接入所述消息中间件的发送端300和接收端200连接,进行通讯。

参照图5,图5为本发明服务端的较佳实施例的功能模块示意图。

在本实施例中,所述服务端包括:

存储模块10,用于接收发送端300发送的业务消息,存储所述业务消息;

所述服务端100接收所述发送端300发送的业务消息,并将所述业务消息存储至存储器中。进一步地,当所述发送端300需要发送业务消息给所述服务端100时,所述发送端300先缓存所述业务消息,并采用异步的方式发送给所述服务端100,即当所述发送端300发送一个业务消息给所述服务端100之后,所述发送端300的发送线程不需要等待,可以继续发送其它的业务消息。

发送模块20,用于将所述业务消息发送给所述接收端200,以供所述接收端200处理所述业务消息,当所述接收端处理完所述业务消息后,返回第一确认消息;

当所述服务端100存储所述业务消息后,所述服务端100将所述业务消息发送给所述接收端200,以供所述接收端200接收所述业务消息。当所述接收端200接收到所述服务端100发送的业务消息后,所述接收端200处理所述业务消息,即消费所述业务消息。当所述接收端200成功处理所述业务消息后,所述接收端200返回第一确认消息给所述服务端100。如当所述业务消息为开户申请指令时,当所述接收端200接收到所述开户申请指令,并成功执行所述开户申请指令时,所述接收端200返回第一确认消息给所述服务端100。

删除模块30,用于当接收到所述接收端200返回的所述第一确认消息后,删除所存储的所述业务消息。

当所述服务端100接收到所述接收端200返回的所述第一确认消息后,所述服务端100删除在存储器中的所述业务消息。

进一步地,当所述服务端100将所述业务消息发送给所述接收端200后,所述服务端100判断是否在预设时间内接收到所述接收端200返回的第一确认消息。若所述服务端100未在所述预设时间内接收到所述接收端200返回的第一确认消息,所述服务端100则重新将所述业务消息发送给所述接收端200。若所述服务端100在所述预设时间内接收到所述接收端200返回的第一确认消息,所述服务端100删除在存储器中的所述业务消息。保证了所述业务消息不会因为所述接收端200处理异常而丢失。所述预设时间可以根据具体需要而设置。

本实施例通过将所述发送端300和所述接收端200接入所述消息中间件中,并将所述发送端300和所述接收端200与所述服务端100连接,当所述服务端100接收所述发送端300发送的业务消息时,所述服务端100存储所述业务消息,并将所述业务消息发送给所述接收端200,以供所述接收端200处理完所述业务消息后,返回第一确认消息;当所述服务端100接收到所述接收端200返回的所述第一确认消息后,删除所存储的所述业务消息。实现了根据所述服务端100是否接收到所述接收端200返回的第一确认消息来判断所述接收端200是否成功接收到所述发送端300发送的业务消息,只有当所述接收端200接收到所述业务消息,并成功处理所述业务消息后,所述服务端100才会删除存储的所述业务消息,保证了消息中间件产品的接收端200能够成功接收到所述发送端300发送的业务消息,并进一步保证所述接收端200可以成功处理所述业务消息。

继续参照图5,所述发送模块20,还用于发送第二确认消息给所述发送端300,以供所述发送端300接收到所述第二确认消息时,删除所述业务消息;

其中,当所述发送端300在预设时间内未接收到所述第二确认消息时,所述发送端300重新发送所述业务消息给所述服务端100。

当所述服务端100成功存储所述发送端300发送的业务消息后,所述服务端100发送第二确认消息给所述发送端300,以提示所述发送端300所述服务端100已成功接收所述业务消息了。当所述发送端300接收到所述服务端100发送的第二确认消息时,所述发送端300删除所存储的业务消息。

在本实施例中,所述发送端300采用异步的方式接收所述第二确认消息时,即所述发送端300不需要在接收到所述第二确认消息后,才发送另一业务消息给所述服务端100,解决了现有的消息中间件中需要同步等待确认,影响所述消息中间件业务性能的问题。

进一步地,当所述发送端300将所述业务消息发送给所述服务端100后,所述发送端300判断是否在预设时间内接收到所述服务端100发送的第二确认消息。若所述发送端300未在所述预设时间内接收到所述服务端100发送的第二确认消息,所述发送端300则重新发送所述业务消息给所述服务端100;若所述发送端300在所述预设时间内接收到所述服务端100发送的第二确认消息,所述发送端300则删除所存储的业务消息。

需要说明的是,本实施例中的预设时间可以与第一实施例中的预设时间相同,也可以不同。

进一步地,所述发送模块20包括:

同步单元,用于将所述业务消息同步到所述服务端100中至少两个从节点中;

发送单元,用于当接收到任一从节点发送的第三确认消息时,发送第二确认消息给所述发送端300,以供所述发送端300接收到所述第二确认消息,删除所述业务消息。

进一步地,当所述服务端100接收到所述发送端300发送的业务消息时,即当所述服务端100的主节点接收到所述发送端300发送的业务消息时,所述服务端100的主节点将所述业务消息同步到所述服务端100中至少两个从节点中。当所述服务端100中任意一个从节点接收到所述业务消息时,接收到所述业务消息的从节点存储所述业务消息,并发送第三确认消息给所述主节点。当所述主节点接收到所述第三确认消息时,所述主节点发送第二确认消息给所述发送端300,以供所述发送端300接收到所述第二确认消息,删除所述业务消息。

需要说明的是,在所述服务端100中,会存在一个主节点和至少两个从节点,当所述服务端100中的主节点正常时,所述服务端100中接收业务消息和发送业务消息的操作都是由所述服务端100的主节点完成的;当所述服务端100中主节点异常时,所述服务端100中的发送业务消息的操作由所述服务端100中的从节点完成,以保证所述服务端100所接收的业务消息不会丢失,能成功发送给所述接收端200。

本实施例通过当所述服务端100接收到所述业务消息后,返回第二确认消息给所述发送端300,当所述发送端300未在预设时间内接收到所述第二确认消息时,所述发送端300会重新发送所述业务消息给所述服务端100。保证了所述服务端100可以成功接收所述发送端300所发送的业务消息。

参照图6,图6为本发明实施例中存储模块的一种功能模块示意图,基于上述实施例提出本实施例。

在本实施例中,所述存储模块10包括:

检测单元11,用于接收所述发送端300发送的业务消息,检测所述业务消息的完整性;

存储单元12,用于若所述业务消息完整,则存储所述业务消息。

当所述服务端100接收到所述发送端300发送的业务消息后,所述服务端100检测所述发送端300所发送的业务消息的完整性。当所述服务端100检测到所述业务消息完整时,所述服务端100存储所述业务消息。所述服务端100可以通过CRC(Cyclic Redundancy Code,循环冗余校验)函数来检测所述业务消息的完整性。所述CRC函数是一种根据网络数据包或者电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。

删除单元13,用于若所述业务消息不完整,则删除不完整的业务消息,且不发送第二确认消息给所述发送端300,以使所述发送端300重新发送所述业务消息给所述服务端100。

当所述服务端100判定所述业务消息不完整时,所述服务端100删除所述不完整的业务消息,而且不发送所述第二确认消息给所述发送端300。当所述发送端300未在预设时间内接收到所述服务端100所发送的第二确认消息时,所述发送端300重新发送所述业务消息给所述服务端100。

进一步地,当所述服务端100接收到正常的关闭指令时,如用户调用kill-15pid指令关闭所述服务端100,此时,所述服务端100的控制器Server会接收到所述关闭指令,关闭所述服务端100。当所述服务端100接收到所述业务消息后,所述服务端100会先将所述业务消息缓存在存储器中一段时间,在所述服务端100正常关闭之前,将所述存储器中业务消息写入磁盘中,并将所述存储器中所存储的业务消息删除。

当所述服务端100异常关闭时,如所述服务端100接收到Kill-9指令时,即非法关闭所述服务端100时,此时所述服务端100最后接收的业务消息可能会不完整。若所述业务消息不完整,则不能保证不完整的业务消息可以正常存储至所述存储器中。但是在所述服务端100异常关闭,所述服务端100还是可以在异常关闭之前将所述存储器中所存储的完整的业务消息通过sync命令写入所述磁盘中。

当所述消息中间件中的正在与所述发送端300进行业务消息传输的服务端100系统崩溃或者掉电时,所述发送端300接收不到该服务端100发送的第二确认消息。此时,所述发送端300可以通过所述Controller知道该服务端100系统已经崩溃或者出现了掉电情况,所述发送端300会重新将所述业务消息发送给所述消息中间件中的另一服务端100,以使所述接收端200从所述消息中间件中的另一服务端100获得所述业务消息,保证所述发送端300与所述接收端200之间业务消息的传输,保证所述接收端200可以成功接收所述发送端300所发出的业务消息。

本实施例通过在所述服务端100接收到所述业务消息后,检测所述业务消息的完整性,保证发送端300所发送的业务消息可以完整地发送至所述接收端200中。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1