[发明专利]消息续传方法和装置有效
申请号: | 201310610915.X | 申请日: | 2013-11-26 |
公开(公告)号: | CN104683288B | 公开(公告)日: | 2018-09-28 |
发明(设计)人: | 史业政 | 申请(专利权)人: | 腾讯科技(北京)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/58 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 杨春香;宋志强 |
地址: | 100080 北京市海淀区海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 方法 装置 | ||
本申请提供了消息续传方法和装置。本发明中,仅向状态为正常的消息接收端发送消息,而针对状态为异常的消息接收端,是不向其发送消息的,这能够避免消息传输过程中的丢包现象;至于状态为异常的消息接收端,其在恢复正常比如重启或者重连时,会将截至当前最新收到的消息所标记的序列号发送至中转服务器,以由中转服务器执行消息续传机制,实现了消息续传,保证消息接收端收到在异常时无法收到的消息,以应对网络质量不好的情况。
技术领域
本申请涉及数据处理技术,特别涉及消息续传方法和装置。
背景技术
首先,为使本申请容易理解,先对本申请涉及的技术术语进行描述:
消息发送端:用于生成消息并发送至中转服务器。
消息接收端:用于接收中转服务器发送的由消息发送端生成的消息,并对接收的消息进行相应的业务处理。
中转服务器:用于接收由消息发送端生成并发送的消息,并转发给一个或多个消息接收端。
续传:其目的是避免异常情况下消息不丢失,在微博应用中,为保证微博后台机器在各种异常情况下传递消息不丢失,并能够传递到各个消息接收端,就需要在中转服务器引入可靠的续传机制;
然而,目前尚有一些中转服务器不支持续传,当消息发送端生成消息后,其将消息发送给中转服务器,然后中转服务器将该消息转发给消息接收端,实现消息的转发。但是,由于中转服务器不支持续传,其不能感知消息接收端是否成功收取了消息;当消息接收端故障、或者进程异常时,如果中转服务器仍然持续发包,就会出现大量的丢包现象。
发明内容
本申请提供了消息续传方法和装置,以避免消息传输过程中的丢包现象。
本申请提供的技术方案包括:
一种消息续传方法,该方法应用于中转服务器,包括:
接收消息,并按照序列号递增原则为该消息分配序列号,将该消息、该消息对应的消息标识、以及该消息被分配的序列号保存至消息列表,其中,任意两个消息被分配的序列号不同;
接收消息订阅请求,所述消息订阅请求携带了发送该消息订阅请求的消息接收端的标识和状态以及该消息接收端需要订阅的消息对应的消息标识;
将所述消息订阅请求携带的消息标识、消息接收端的标识和状态存储至消息接收端列表中;
从消息接收端列表中选取消息标识、且状态为正常的消息接收端的标识;
从消息列表中找到与选取的消息标识对应的消息,依据选取的消息接收端的标识将该消息、以及该消息被分配的序列号一起发送至消息接收端,并将该序列号作为向该消息接收端发送的消息的序列号记录至消息接收端列表;
接收消息接收端发送的序列号,依据接收的序列号和消息接收端列表记录的向该消息接收端的标识发送的消息的序列号续传对应的消息至该消息接收端;
其中,所述消息接收端列表包括索引列表和数组列表;所述索引列表中包含多个索引块,所述数组列表中包含数组块;
所述将消息订阅请求携带的消息标识、消息接收端的标识和状态存储至消息接收端列表中包括:
依据消息订阅请求携带的消息标识,识别所述索引列表中是否存在已记录了该消息标识的索引块,如果是,从所述数组列表的首个数组块开始顺次遍历所述数组列表,将在所述数组列表中最先遍历到的空闲数组块的地址记录至该存在的索引块,如果否,从所述数组列表的首个数组块开始顺次遍历所述数组列表,将在所述数组列表中最先遍历到的空闲数组块的地址与该消息标识一起记录至所述索引列表中的空闲索引块;
在所述数组列表中最先遍历到的空闲数组块内记录该消息请求携带的消息接收端的标识和状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(北京)有限公司,未经腾讯科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310610915.X/2.html,转载请声明来源钻瓜专利网。