消息续传方法和装置的制造方法

文档序号:8365408阅读:203来源:国知局
消息续传方法和装置的制造方法
【技术领域】
[0001]本申请涉及数据处理技术,特别涉及消息续传方法和装置。
【背景技术】
[0002]首先,为使本申请容易理解,先对本申请涉及的技术术语进行描述:
[0003]消息发送端:用于生成消息并发送至中转服务器。
[0004]消息接收端:用于接收中转服务器发送的由消息发送端生成的消息,并对接收的消息进行相应的业务处理。
[0005]中转服务器:用于接收由消息发送端生成并发送的消息,并转发给一个或多个消息接收端。
[0006]续传:其目的是避免异常情况下消息不丢失,在微博应用中,为保证微博后台机器在各种异常情况下传递消息不丢失,并能够传递到各个消息接收端,就需要在中转服务器引入可靠的续传机制;
[0007]然而,目前尚有一些中转服务器不支持续传,当消息发送端生成消息后,其将消息发送给中转服务器,然后中转服务器将该消息转发给消息接收端,实现消息的转发。但是,由于中转服务器不支持续传,其不能感知消息接收端是否成功收取了消息;当消息接收端故障、或者进程异常时,如果中转服务器仍然持续发包,就会出现大量的丢包现象。

【发明内容】

[0008]本申请提供了消息续传方法和装置,以避免消息传输过程中的丢包现象。
[0009]本申请提供的技术方案包括:
[0010]一种消息续传方法,该方法应用于中转服务器,包括:
[0011]接收消息,并按照序列号递增原则为该消息分配序列号,将该消息、该消息对应的消息标识、以及该消息被分配的序列号保存至消息列表,其中,任意两个消息被分配的序列号不同;
[0012]接收消息订阅请求,所述消息订阅请求携带了发送该消息订阅请求的消息接收端的标识和状态以及该消息接收端需要订阅的消息对应的消息标识;
[0013]将所述消息订阅请求携带的消息标识、消息接收端的标识和状态存储至消息接收端列表中;
[0014]从消息接收端列表中选取消息标识、且状态为正常的消息接收端的标识;
[0015]从消息列表中找到与选取的消息标识对应的消息,依据选取的消息接收端的标识将该消息、以及该消息被分配的序列号一起发送至消息接收端,并将该序列号作为向该消息接收端发送的消息的序列号记录至消息接收端列表;
[0016]接收消息接收端发送的序列号,依据接收的序列号和消息接收端列表记录的向该消息接收端的标识发送的消息的序列号续传对应的消息至该消息接收端。
[0017]一种消息续传装置,该装置应用于处于消息发送端和消息接收端之间的中转服务器,包括:
[0018]该装置应用于处于消息发送端和消息接收端之间的中转服务器,包括:
[0019]消息接收单元,用于接收消息,并按照序列号递增原则为该消息分配序列号,将该消息、该消息对应的消息标识、以及该消息被分配的序列号保存至消息列表,其中,任意两个消息被分配的序列号不同;
[0020]订阅请求接收单元,用于接收消息订阅请求,所述消息订阅请求携带了发送该消息订阅请求的消息接收端的标识和状态以及该消息接收端需要订阅的消息对应的消息标识;
[0021]第一处理单元,用于将所述消息订阅请求携带的消息标识、消息接收端的标识和状态存储至消息接收端列表中;
[0022]第二处理单元,用于从消息接收端列表中选取消息标识、且状态为正常的消息接收端的标识;
[0023]第三处理单元,用于从消息列表中找到与选取的消息标识对应的消息,依据选取的消息接收端的标识将该消息、以及该消息被分配的序列号一起发送至消息接收端,并将该序列号作为向该消息接收端发送的消息的序列号记录至消息接收端列表;
[0024]续传单元,用于接收消息接收端发送的序列号,依据接收的序列号和消息接收端列表记录的向该消息接收端的标识发送的消息的序列号续传对应的消息至该消息接收端。
[0025]由以上技术方案可以看出,本发明中,中转服务器仅向状态为正常的消息接收端发送消息,而针对状态为异常的消息接收端,本发明是不向其发送消息的,这能够避免中转服务器在消息传输过程中的丢包现象。至于状态为异常的消息接收端,其在恢复正常比如重启或者重连时,会将截至当前最新收到的消息所标记的序列号发送至中转服务器,以由中转服务器执行消息续传机制,实现了消息续传,保证消息接收端收到在异常时无法收到的消息,以应对网络质量不好的情况。
【附图说明】
[0026]图1为本发明实施例提供的方法流程图;
[0027]图2为本发明实施例提供的步骤101中消息及其对应的序列号缓存至消息列表的流程图;
[0028]图3为本发明实施例提供的消息列表的结构示意图;
[0029]图4为本发明实施例提供的步骤103实现流程图;
[0030]图5为本发明实施例提供的消息接收端列表的具体结构示意图;
[0031]图6为本发明实施例提供的消息续传实现流程图;
[0032]图7为本发明实施例提供的装置结构图。
【具体实施方式】
[0033]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0034]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0035]本发明提供的方法能够避免消息传输过程中的丢包现象。下面通过图1对本发明提供的方法进行描述:
[0036]参见图1,图1为本发明实施例提供的方法流程图。该方法应用于处于消息发送端和消息接收端之间的中转服务器,如图1所示,该中转服务器执行以下步骤:
[0037]步骤101,接收消息,并按照序列号递增原则为该消息分配序列号,将该消息、该消息对应的消息标识、以及该消息被分配的序列号保存至消息列表,其中,任意两个消息被分配的序列号不同。
[0038]本发明中,当消息发送端生成一个消息后,其会转发给中转服务器,由中转服务器负责该消息的转发。当中转服务器接收到来自消息发送端发送的消息后,中转服务器会按照序列号递增原则为该消息分配序列号,比如,目前已接收到10个消息,该10个消息的序列号依次为I至10,当再收到消息时,就为该消息分配序列号11。
[0039]在本发明中,为保证消息的唯一性,中转服务器为任意两个消息分配的序列号均不同,以避免引起后续错误转发消息。
[0040]在本发明中,消息发送端发送的消息具有对应的消息标识。作为本发明的一个实施例,消息对应的消息标识与消息自身的类型有关,其具体是对消息的类型进行哈希运算得到的结果。优选地,本发明中,在消息对应的消息标识具体为对消息的类型进行哈希运算得到的结果的前提下,本步骤101中的消息列表可承载5?200种类型消息的缓存及转发。
[0041]作为本发明的一个优选实例,图2示出了如何将接收的消息、以及该消息对应的序列号对应缓存至消息列表的流程图,图3示出了消息列表的结构示意图,这里暂不赘述。
[0042]步骤102,接收消息订阅请求,所述消息订阅请求携带了发送该消息订阅请求的消息接收端的标识和状态以及该消息接收端需要订阅的消息对应的消息标识。
[0043]本发明中,当消息接收端需要订阅消息时,其会向中转服务器发送消息订阅请求,该消息订阅请求携带了消息接收端的标识、状态、以及消息接收端需要订阅的消息对应的消息标识。
[0044]本发明中,消息接收端的状态包括以下两种情况:正常、异常。其中,当消息接收端稳定工作,则表示消息接收端状态正常,反之,当消息接收端不能稳定工作,比如进程故障、或者消息接收端自身故障等,则表示消息接收端状态异常。
[0045]步骤103,将所述消息订阅请求携带的消息标识、消息接收端的标识和状态存储至消息接收端列表中。
[0046]作为本发明的一个实施例,图4示出了步骤103的实现流程图。图5示出了消息接收端列表的具体结构示意图。这里暂不赘述。
[0047]步骤104,从消息接收端列表中选取消息标识、且状态为正常的消息接收端的标识。
[0048]下文基于图2所示的如何将接收的消息、以及该消息对应的序列号对应缓存至消息列表的流程,以及图4示出了步骤103的实现流程,对本步骤104进行了详细描述,这里暂不赘述。
[0049]步骤105,从消息列表中找到与选取的消息标识对应的消息,依据选取的消息接收端的标识将该消息、以及该消息被分配的序列号一起发送至消息接收端,并将该序列号作为向该消息接收端发送的消息的序列号记录至消息接收端列表。
[0050
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1