消息处理方法、装置以及系统制造方法及图纸

技术编号:17618181 阅读:25 留言:0更新日期:2018-04-04 08:45
本发明专利技术提供了一种消息处理方法、装置以及系统。该系统包括:消息接收模块,用于接收发布客户端发送的发布请求;消息处理模块,用于将发布请求转化为消息内容键值对,发送到键值数据库进行存储,其中,发布请求中包含待发布的消息内容和主题信息;消息内容键值对的关键字包括主题信息和体现消息内容发布的先后顺序的编号信息,消息内容键值对的键值包括发布请求所包含的消息内容。本发明专利技术通过将发布的消息转化为键值对的方式存储到键值数据库,提高了消息存储的可靠性和持久性,并且,生成键值对的关键字中包含体现消息内容发布的先后顺序的编号信息,从而便于后续的消息推送状态的管理。

Message processing methods, devices, and systems

The present invention provides a message processing method, device and system. The system comprises a message receiving module, for receiving client send publish requests; the message processing module, used to publish requests into the contents of the message sent to the key value pairs, database storage, the release contained in the request to publish news content and topic information; message content keys and values of the keywords include topic information and reflect the message content issued the order number information, message content key on the key includes news content delivery request contains. The present invention by posting messages into key value pairs stored in the key database, improve the reliability of information storage and persistence, and the sequence number of the key information generating key contained in the reflected message content is released, so as to facilitate the subsequent message push state management.

【技术实现步骤摘要】
消息处理方法、装置以及系统
本专利技术涉及计算机
,尤其涉及一种消息处理方法、装置以及系统。
技术介绍
目前,消息订阅及推送服务已经被广泛应用,通过网络侧的消息管理系统根据订阅者所订阅的消息主题,向订阅者的客户端推送最新发布的消息。消息管理系统需要对海量消息进行存储、推送以及推送状态管理。下面将主要说明一下现有技术中中消息存储管理和消息推送状态管理这两个方面存在的问题。(一)消息存储管理消息管理系统在接收到新发布的消息时,会将消息持久化到磁盘中,从而能够保证在发生故障的情况下,在故障解除后,仍然能够获取到之前发布的消息。现有技术中,在发布消息时,采用异步的方式进行消息的持久化。现有技术中常见的实现消息持久化的做法有如下两种:(1)在向磁盘写入发布的消息内容时,直接将发布的消息写入磁盘的缓存(Cache)空间中,而并非为发布的消息分配专门的持久性的存储空间。即发布的消息仅仅存在于缓存中,只能做到短时间内的持久化。虽然存储于缓存中的消息具有查询速度快的优势,但是,当消息管理系统出现故障需要清空缓存,当消息管理系统清理缓存时,该新发布的消息也将会被清空。如果此时,该发布的消息还没有被推送到订阅者的客户端,则该消息将会丢失。(2)将新发布的消息先写入内存,然后消息管理系统再通过创建专门的任务将消息写入磁盘。相应地,在读取消息时,也需要先将消息从磁盘读入到内存,然后再进行推送等处理。通过这种方式进行的消息持久化,在无论在消息存储还是消息读取方面,都存在效率低下的问题,并且发布的消息也只是直接存储到磁盘中,当并发性地发布的消息较多时,会进一步降低消息的存储和消息的读取的效率。由此可见,现有技术中的针对发布消息的存储管理,存在效率低下或者容易造成消息丢失的问题,更无法适应海量消息的发布以及推送的场景。(二)推送状态管理推送状态管理是消息订阅中非常关键的部分,现有技术中,消息推送状态的管理主要有两种方式:(1)消息管理系统管理每条消息的推送状态。这种方式中,消息的多个状态:“未推送”、“正在推送”、“推送失败”和“已推送”会被记录在消息属性中。消息初始状态为“未推送”,开始推送之后变为“正在推送”,如果推送成功了,则变为“已推送”,反之则为“推送失败”。每次选取需推送的消息时,优先选择“推送失败”和“未推送”的消息。“正在推送”会根据一定规则被重新推送。这种记录方式需要根据推送情况实时更新每条已经存储在消息管理系统中的消息状态,对于消息存储和维护造成很大的困难。(2)客户端管理消息的推送状态。这种方式需要把推送进度单独维护在客户端,为了保持消息推送的及时性,需要客户端与消息管理系统之间通过私有协议建立连接以维护会话,并且为了保证客户端故障恢复之后数据的一致性问题,通常需要使用锁服务(类似Zookeeper的系统)将推送进度记录下来。由此可见,这种方式下的推送状态管理,对客户端的要求较高,需要配置较为负责的程序以进行推送状态管理,并且客户端与消息管理系统之间的也需要建立复杂的会话机制,同样也会加重客户端的负担。
技术实现思路
本专利技术提供一种消息处理方法、装置以及系统,以提高消息存储的可靠性和持久性,并且便于消息的推送管理。为达到上述目的,本专利技术提供了一种消息处理系统,包括:消息接收模块,用于接收发布客户端发送的发布请求;消息处理模块,用于将所述发布请求转化为消息内容键值对,发送到键值数据库进行存储,其中,所述发布请求中包含待发布的消息内容和主题信息;所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。本专利技术还提供了另一种消息处理系统,预先存储有订阅消息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述系统,包括:消息获取模块,用于根据订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;消息推送模块,用于根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。本专利技术还提供了一种消息的处理方法,包括:接收消息发布客户端发送的发布请求,其中,所述发布请求中包含待发布的消息内容和主题信息;将该发布请求转化为消息内容键值对并存储到键值数据库中;其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。本专利技术又提供了一种消息的处理方法,预先存储有订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述方法包括:根据所述订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。本专利技术还提供了一种消息处理装置,包括存储器和处理器,所述存储器,用于存储程序;所述处理器,用于执行所述程序,以用于:接收消息发布客户端发送的发布请求,其中,所述发布请求中包含待发布的消息内容和主题信息;将该发布请求转化为消息内容键值对存储到键值数据库中;其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。本专利技术实施例又提供了一种消息处理装置,预先存储有所述订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述装置包括存储器和处理器,所述存储器,用于存储程序;所述处理器,用于执行所述程序,以用于:根据所述订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。本专利技术提供的消息处理方法、装置以及系统,通过将发布的消息转化为键值对的方式存储到键值数据库,提高了消息存储的可靠性和持久性,并且,生成键值对的关键字中包含体现消息内容发布的先后顺序的编号信息,从而便于后续的消息推送状态的管理。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例一的消息处理系统的结构示意图。图2为本专利技术实施本文档来自技高网
...
消息处理方法、装置以及系统

【技术保护点】
一种消息处理系统,其特征在于,包括:消息接收模块,用于接收发布客户端发送的发布请求;消息处理模块,用于将所述发布请求转化为消息内容键值对,发送到键值数据库进行存储,其中,所述发布请求中包含待发布的消息内容和主题信息;所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。

【技术特征摘要】
1.一种消息处理系统,其特征在于,包括:消息接收模块,用于接收发布客户端发送的发布请求;消息处理模块,用于将所述发布请求转化为消息内容键值对,发送到键值数据库进行存储,其中,所述发布请求中包含待发布的消息内容和主题信息;所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。2.根据权利要求1所述的系统,其特征在于,预先存储有订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述系统还包括:消息获取模块,用于根据订阅信息中包括的所述订阅的主题信息从所述键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;消息推送模块,用于根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端。3.根据权利要求2所述的系统,所述键值数据库中还存储有推送状态键值对,其特征在于,消息获取模块具体用于:根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值对的键值包括截止当前最新推送成功的消息内容的编号信息;根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值;所述消息推送模块具体用于:根据所述订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,并且待推送成功后,更新所述推送状态键值对。4.根据权利要求3所述的系统,其特征在于,还包括:消息推送代理模块,用于根据所述订阅客户端的信息选择适合所述订阅客户端的推送方式推送所述消息内容。5.根据权利要求1所述的系统,其特征在于,所述消息处理模块包括多个消息主题单元,所述多个消息主题单元分别与多个主题信息一一对应,每个消息主题单元用于执行与其对应的主题信息相关的发布请求和消息内容的处理。6.根据权利要求2所述的系统,其特征在于,所述消息推送模块包括多个推送处理器,所述多个推送处理器分别与多个订阅行为一一对应,每个所述推送处理器用于执行与该订阅行为相关的推送处理,其中,一个订阅行为指一个订阅客户端针对一个主题消息的消息内容的订阅。7.根据权利要求1所述的系统,其特征在于,所述消息内容键值对包括新增消息内容键值对和修改消息内容键值对,所述发布请求包括新增消息内容的发布请求和修改消息内容的发布请求,所述新增消息内容键值对的关键字包括表示新增操作的标识和体现消息内容发布的先后顺序的编号信息,或者包括表示新增操作的标识、体现消息内容发布的先后顺序的编号信息以及表示初始版本的版本标识,所述修改消息内容键值对的关键字包括表示新增操作的标识和被修改的消息内容键值对的编号信息以及标识当前修改版本的版本标识。8.根据权利要求7所述的系统,其特征在于,在所述消息处理模块中,所述将将所述发布请求转化为消息内容键值对,然后发送到键值数据库进行存储包括:如果所述发布请求为新增消息内容的发布请求,则将该发布请求转化为所述新增消息内容键值对,然后发送到键值数据库进行存储;如果所述发布请求为修改消息内容的发布请求,则将该发布请求转化为所述修改消息内容键值对,然后发送到键值数据库进行存储。9.根据权利要求8所述的系统,其特征在于,所述消息内容键值对还包括删除消息内容键值对,所述删除消息内容键值对的关键字包括表示删除操作的标识和被删除的消息内容键值对的编号信息,所述消息处理模块还用于对所述键值数据库中的消息内容键值对进行删除操作,其中,所述删除操作包括:向所述键值数据库中写入删除消息内容键值对。10.根据权利要求9所述的系统,其特征在于,所述消息处理模块还用于触发所述键值数据库对关键字中的编号信息相同的消息内容键值对进行归并处理,所述归并处理包括:如果编号信息相同的消息内容键值对包括修改消息内容键值对,则保留版本标识为最新的修改消息内容键值对,将其他编号信息相同的消息内容键值对从所述键值数据库中删除;如果编号信息相同的消息内容键值对包括删除消息内容键值对,则将编号信息相同的消息内容键值从所述键值数据库中删除。11.根据权利要求1所述的系统,其特征在于,根据所述消息处理模块接收到所述发布请求的时间,来生成所述消息内容键值对的关键字中的编号信息。12.一种消息处理系统,其特征在于,预先存储有订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述系统包括:消息获取模块,用于根据订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;消息推送模块,用于根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。13.根据权利要求12所述的系统,其特征在于,消息推送模块具体用于:消息获取模块具体用于:根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值的键值包括截止当前最新推送成功的消息内容的编号信息;根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值;所述消息推送模块具体用于:根据所述订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,并且待推送成功后,更新所述推送状态键值对。14.根据权利要求13所述的系统,其特征在于,还包括:消息推送代理模块,用于根据所述订阅客户端的信息选择适合所述订阅客户端的推送方式推送所述消息内容。15.一种消息的处理方法,其特征在于,包括:接收消息发布客户端发送的发布请求,其中,所述发布请求中包含待发布的消息内容和主题信息;将该发布请求转化为消息内容键值对并存储到键值数据库中;其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。16.根据权利要求15所述的处理方法,其特征在于,在将该发布请求转化为消息内容键值对的过程中,根据所述消息处理模块接收到所述发布请求的时间,来生成所述消息内容键值对的关键字中的编号信息。17.根据权利要求15所述的方法,其特征在于,预先存储有订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述方法还包括:根据订阅信息中包括的所述订阅的主题信息从所述键值数据库中获取与所述订阅的主题信息对应的消息内容键值对,并根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端。18.根据权利要求17所述的方法,其特征在于,所述根据订阅信息中包括的所述订阅的主题信息从所述键值数据库中获取与所述订阅的主题信息对应的消息内容键值对,并根据所述订阅信息中包括的订阅客户端的信息,将获取到...

【专利技术属性】
技术研发人员:钱凯陈舟锋
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1