[发明专利]一种消息分发方法和装置有效
申请号: | 201510287977.0 | 申请日: | 2015-05-29 |
公开(公告)号: | CN104899277B | 公开(公告)日: | 2018-08-10 |
发明(设计)人: | 许文靖 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 牛峥;王丽琴 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 分发 方法 装置 | ||
本发明公开了一种消息分发方法和装置,其包括:接收消息生产者所创建的消息,并将所接收的消息写入消息数据库;获取消息订阅者的消息订阅范围,根据所述消息订阅范围确定所述消息数据库中的起始消息订阅点;从所述起始消息订阅点开始,将所述消息订阅者的消息订阅范围内的各条消息分发给所述消息订阅者。本发明实现了依据时间值和顺序值确定消息订阅者所获得的消息以及尚未获得的消息,实现了消息订阅者对订阅消息的续传和补传,以及对订阅消息的一致性检查,本发明同时针对多个消息订阅者仅使用一份消息数据库的拷贝,而不必为每个消息订阅者分别使用不同的消息数据的拷贝,进而节约了消息的存储资源。
技术领域
本发明涉及计算机通信领域技术,特别涉及一种消息分发方法和装置。
背景技术
JMS,即Java Message Service,Java消息服务,是Java标准化组织(JCP)开发的一种标准(代号为JSR914),它是一个Java平台中关于面向消息中间件(MOM)的API(Application Programming Interface,应用程序编程接口)。JMS用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
JMS提供了创建、发送、接收、读取消息的服务,JMS规范下有两种基本消息模型,即PTP(点对点)和Pub/Sub(发布/订阅)。其中,Pub/Sub模型可以定义多个消费者消费消息,它在企业级开发中广泛采用,方便了系统间消息的传递,省去了大量开发时间以及节省了存储消息的资源空间。
JMS的Pub/Sub模型中,消息的订阅分发通常采用基于JMS TOPIC规范来实现。JMSTOPIC规范有两种实现方式,第一种是不提供存储而直接转发消息,第二种是为每个订阅者提供缓存队列。
现有的基于JMS TOPIC规范的消息分发步骤如下:
1)消息发送方创建一条消息,并将该条消息发送给Topic Manager(主题管理器);
2)Topic Manager查询该条消息的所有订阅者;
3)将该条消息转发给其所有订阅者;
4)在预设时间周期后重复步骤1)~3)。
从上述现有的消息分发步骤来看,消息的订阅者不能指定开始订阅点,JMS TOPIC规范只支持订阅者被动接收实时消息,不支持订阅者对历史消息的订阅。同时,对于订阅者来说,消息的获得并不支持断点续传,当订阅者连接超时或者中断,并重新连接后,不能进行断点续传,从上次成功订阅消息的时间点继续订阅消息。另外,JMS TOPIC规范也不支持消息的核对,对于消息一致性要求很高的业务场景(例如财务数据,订单数据等)需要周期性核对消息,而现有的JMS TOPIC规范不支持历史消息的查阅,因此无法核对历史消息的一致性,当出现消息不一致的情况时也难以核查。
另外,虽然上述JMS TOPIC规范的两种实现方式中的后一种为每个订阅者提供了缓存,但受限于缓存队列的深度,无法保证消息不丢失,同时因为针对每个订阅者分别提供缓存,进而同时存储了多份消息拷贝,进而造成了对存储资源的浪费。
发明内容
有鉴于此,本发明提供一种消息分发方法和装置,以实现订阅消息的持久化和消息订阅的记录功能,进而为消息订阅者提供可订阅消息范围的查询、订阅、以及断点续传等服务。
本发明的技术方案是这样实现的:
一种消息分发方法,包括:
接收消息生产者所创建的消息,并将所接收的消息写入消息数据库;
获取消息订阅者的消息订阅范围,根据所述消息订阅范围确定所述消息数据库中的起始消息订阅点;
从所述起始消息订阅点开始,将所述消息订阅者的消息订阅范围内的各条消息分发给所述消息订阅者。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510287977.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:对象管理方法
- 下一篇:基于语义技术的路面谱与GIS矢量数据的融合方法及系统