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.根据权利要求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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。