[发明专利]一种消息处理的方法和装置在审
申请号: | 201510903396.5 | 申请日: | 2015-12-09 |
公开(公告)号: | CN105471714A | 公开(公告)日: | 2016-04-06 |
发明(设计)人: | 黄维荣;王巍;廖慧琴 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙) 11412 | 代理人: | 袁媛 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 处理 方法 装置 | ||
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种消息处理的方法和装 置。
【背景技术】
现今,越来越多的企业面临着各种各样的数据集成和系统整合,消息中 间件技术应运而生。消息中间件指的是利用高效可靠的消息传递机制,进行 平台无关的数据交流,并可以基于数据通信进行分布式系统的集成。具体地, 消息中间件基于消息的异步处理模型,消息发送者将消息发送给消息中间件 (也称为消息服务器),消息中间件在合适的使用再将消息转发给消息接收 者。发送和接收是异步的,消息发送者无需等待,消息发送者和消息接收者 的生命周期可以不必相同,并且消息发送者可以将消息间接转发给多个接收 者,大大提高了整个消息系统的性能、可扩展性和健壮性。
目前消息中间件在处理消息时,将消息发送者的消息写入消息队列,然 后在合适的时机从消息队列中读取消息并转发给消息接收者。然而,这种方 式一旦消息写入消息队列失败,则可能会造成消息丢失,消息投递失败,可 靠性难以保证。
【发明内容】
有鉴于此,本发明提供了一种消息处理的方法和装置,以便于提高消息 中间件在处理消息过程中的可靠性。
具体技术方案如下:
本发明提供了一种消息处理的方法,该方法包括:
消息中间件接收到消息时,将消息写入消息队列和持久化存储;
若消息写入消息队列和持久化存储均失败,则将所述消息写入本地磁 盘。
根据本发明一优选实施方式,所述将消息写入消息队列和持久化存储包 括:
采用双写的方式将所述消息写入消息队列和持久化存储;或者,
将消息写入消息队列,若写入失败,则将所述消息写入持久化存储;或 者,
将消息写入持久化存储,若写入失败,则将所述消息写入消息队列。
根据本发明一优选实施方式,若消息写入持久化存储失败,写入消息队 列成功,该方法还包括:
将所述消息从消息队列回调并重新写入持久化存储。
根据本发明一优选实施方式,该方法还包括:
若重新写入持久化存储失败,则将所述消息写入本地磁盘。
根据本发明一优选实施方式,该方法还包括:
将消息从本地磁盘回调并重新写入持久化存储。
根据本发明一优选实施方式,该方法还包括:
采用两个推送进程以竞争模式分别从消息队列和持久化存储读取消息, 并将读取到的消息推送至消息接收者;
所述竞争模式保证对于相同的消息而言,只有一个推送进程能够读取到 该消息。
根据本发明一优选实施方式,所述采用两个推送进程以竞争模式分别从 写入队列和持久化存储读取消息包括:
推送进程从写入队列或持久化存储中读取消息时,判断该消息的被处理 状态,若该消息正在被处理,或者已被处理成功,则不再对该消息进行处理; 若该消息未被处理,或者被处理失败,则从该推送进程对应的写入队列或持 久化存储中读取消息,并更新该消息的被处理状态为正在被处理。
根据本发明一优选实施方式,该方法还包括:
若推送进程推送消息至消息接收者成功,则更新该消息的被处理状态为 已被处理成功;
若推送进程读取消息或推送消息至消息接收者失败,则更新该消息的被 处理状态为被处理失败。
根据本发明一优选实施方式,持久化存储对应的推送进程若从持久化存 储中读取消息或推送消息至消息接收者失败,则按照预设的重试间隔,重新 从所述持久化存储中读取消息并推送至消息接收者,直至推送消息至消息接 收者成功或达到预设的重试次数。
根据本发明一优选实施方式,若持久化存储中未处理的消息数量或者处 理失败的消息数量超过预设阈值,则所述持久化存储对应的推送进程进行告 警。
本发明还提供了一种消息处理的装置,设置于消息中间件,该装置包括:
接收单元,用于接收消息;
第一写入单元,用于将所述接收单元接收到的消息写入消息队列和持久 化存储;
第二写入单元,用于若消息写入消息队列和持久化存储均失败,则将该 消息写入本地磁盘。
根据本发明一优选实施方式,所述第一写入单元,具体用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510903396.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能路由器选路方法和装置
- 下一篇:信息发送方法和装置