CN107872473A - 消息处理方法、装置以及系统 - Google Patents
消息处理方法、装置以及系统 Download PDFInfo
- Publication number
- CN107872473A CN107872473A CN201610849568.XA CN201610849568A CN107872473A CN 107872473 A CN107872473 A CN 107872473A CN 201610849568 A CN201610849568 A CN 201610849568A CN 107872473 A CN107872473 A CN 107872473A
- Authority
- CN
- China
- Prior art keywords
- message content
- key
- information
- subscription
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种消息处理方法、装置以及系统。该系统包括:消息接收模块,用于接收发布客户端发送的发布请求;消息处理模块,用于将发布请求转化为消息内容键值对,发送到键值数据库进行存储,其中,发布请求中包含待发布的消息内容和主题信息;消息内容键值对的关键字包括主题信息和体现消息内容发布的先后顺序的编号信息,消息内容键值对的键值包括发布请求所包含的消息内容。本发明通过将发布的消息转化为键值对的方式存储到键值数据库,提高了消息存储的可靠性和持久性,并且,生成键值对的关键字中包含体现消息内容发布的先后顺序的编号信息,从而便于后续的消息推送状态的管理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种消息处理方法、装置以及系统。
背景技术
目前,消息订阅及推送服务已经被广泛应用,通过网络侧的消息管理系统根据订阅者所订阅的消息主题,向订阅者的客户端推送最新发布的消息。消息管理系统需要对海量消息进行存储、推送以及推送状态管理。下面将主要说明一下现有技术中中消息存储管理和消息推送状态管理这两个方面存在的问题。
(一)消息存储管理
消息管理系统在接收到新发布的消息时,会将消息持久化到磁盘中,从而能够保证在发生故障的情况下,在故障解除后,仍然能够获取到之前发布的消息。现有技术中,在发布消息时,采用异步的方式进行消息的持久化。现有技术中常见的实现消息持久化的做法有如下两种:
(1)在向磁盘写入发布的消息内容时,直接将发布的消息写入磁盘的缓存(Cache)空间中,而并非为发布的消息分配专门的持久性的存储空间。即发布的消息仅仅存在于缓存中,只能做到短时间内的持久化。虽然存储于缓存中的消息具有查询速度快的优势,但是,当消息管理系统出现故障需要清空缓存,当消息管理系统清理缓存时,该新发布的消息也将会被清空。如果此时,该发布的消息还没有被推送到订阅者的客户端,则该消息将会丢失。
(2)将新发布的消息先写入内存,然后消息管理系统再通过创建专门的任务将消息写入磁盘。相应地,在读取消息时,也需要先将消息从磁盘读入到内存,然后再进行推送等处理。通过这种方式进行的消息持久化,在无论在消息存储还是消息读取方面,都存在效率低下的问题,并且发布的消息也只是直接存储到磁盘中,当并发性地发布的消息较多时,会进一步降低消息的存储和消息的读取的效率。
由此可见,现有技术中的针对发布消息的存储管理,存在效率低下或者容易造成消息丢失的问题,更无法适应海量消息的发布以及推送的场景。
(二)推送状态管理
推送状态管理是消息订阅中非常关键的部分,现有技术中,消息推送状态的管理主要有两种方式:
(1)消息管理系统管理每条消息的推送状态。这种方式中,消息的多个状态:“未推送”、“正在推送”、“推送失败”和“已推送”会被记录在消息属性中。消息初始状态为“未推送”,开始推送之后变为“正在推送”,如果推送成功了,则变为“已推送”,反之则为“推送失败”。每次选取需推送的消息时,优先选择“推送失败”和“未推送”的消息。“正在推送”会根据一定规则被重新推送。这种记录方式需要根据推送情况实时更新每条已经存储在消息管理系统中的消息状态,对于消息存储和维护造成很大的困难。
(2)客户端管理消息的推送状态。这种方式需要把推送进度单独维护在客户端,为了保持消息推送的及时性,需要客户端与消息管理系统之间通过私有协议建立连接以维护会话,并且为了保证客户端故障恢复之后数据的一致性问题,通常需要使用锁服务(类似Zookeeper的系统)将推送进度记录下来。由此可见,这种方式下的推送状态管理,对客户端的要求较高,需要配置较为负责的程序以进行推送状态管理,并且客户端与消息管理系统之间的也需要建立复杂的会话机制,同样也会加重客户端的负担。
发明内容
本发明提供一种消息处理方法、装置以及系统,以提高消息存储的可靠性和持久性,并且便于消息的推送管理。
为达到上述目的,本发明提供了一种消息处理系统,包括:
消息接收模块,用于接收发布客户端发送的发布请求;
消息处理模块,用于将所述发布请求转化为消息内容键值对,发送到键值数据库进行存储,
其中,所述发布请求中包含待发布的消息内容和主题信息;所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
本发明还提供了另一种消息处理系统,预先存储有订阅消息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述系统,包括:
消息获取模块,用于根据订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;
消息推送模块,用于根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,
所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
本发明还提供了一种消息的处理方法,包括:
接收消息发布客户端发送的发布请求,其中,所述发布请求中包含待发布的消息内容和主题信息;
将该发布请求转化为消息内容键值对并存储到键值数据库中;其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
本发明又提供了一种消息的处理方法,预先存储有订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述方法包括:
根据所述订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;
根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,
所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
本发明还提供了一种消息处理装置,包括存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,以用于:
接收消息发布客户端发送的发布请求,其中,所述发布请求中包含待发布的消息内容和主题信息;
将该发布请求转化为消息内容键值对存储到键值数据库中;其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
本发明实施例又提供了一种消息处理装置,预先存储有所述订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述装置包括存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,以用于:
根据所述订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;
根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,
其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
本发明提供的消息处理方法、装置以及系统,通过将发布的消息转化为键值对的方式存储到键值数据库,提高了消息存储的可靠性和持久性,并且,生成键值对的关键字中包含体现消息内容发布的先后顺序的编号信息,从而便于后续的消息推送状态的管理。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一的消息处理系统的结构示意图。
图2为本发明实施例二的消息处理系统的结构示意图。
图3为本发明实施例三的消息处理系统的结构示意图。
图4为本发明实施例五的消息处理系统的结构示意图。
图5为本发明实施例六的消息处理方法的流程示意图。
图6为本发明实施例七的消息处理方法的流程示意图。
图7为本发明实施例九的消息处理方法的流程示意图。
图8为本发明实施例十的消息处理装置的结构示意图。
图9为本发明实施例十一的消息处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。下面结合附图对本发明实施例的消息处理方法及系统进行详细描述。
本发明实施例中所涉及的部分术语的解释说明:
订阅者:向网络侧的消息处理系统订阅消息的一方,订阅的方式一般是按照主题进行订阅。
订阅客户端:与订阅者对应的客户端,也是最终推送消息的目标终端。
发布者:向网络侧的消息处理系统发布消息的一方,发布的方式一般是按照主题进行发布。
发布客户端:与发布者对应的客户端,也是网络侧的消息处理系统的消息来源。
主题:对消息分类的一种方式,海量发布的消息会按照主题进行分类和管理。
键值(value)数据库:数据按照键值对的形式进行组织、索引和存储,是一种非关系型数据库。键值对由键值部分(value)和关键字部分(key)构成,键值部分用于存储数据内容,而关键字部分用于存储关键字信息,该关键字信息用于查询键值部分的数据内容。
本发明实施例的主要技术原理在于:将发布的消息内容以及消息推送状态,通过键值对的方式进行存储和管理,充分利用键值对的数据结构,将消息的顺序以及推送状态灵活地记录在键值对中,从而实现了对海量消息推送的简单而高效的管理。
实施例一
如图1所示,其为本发明实施例一的消息处理系统的结构示意图,该消息处理系统100包括:
消息接收模块101,用于接收发布客户端200发送的发布请求;
消息处理模块102,用于将发布请求转化为消息内容键值对,发送到键值数据库400进行存储。
其中,发布请求中包含待发布的消息内容和主题信息,发布请求中所包含的消息内容也就是消息处理系统最终要推送给订阅者推送的消息内容。发布请求中包含的主题信息对应于订阅者所订阅的主题信息,消息发布、消息订阅以及后续的消息查询以及消息推送,都会基于主题信息来执行。在消息处理模块102生成的消息内容键值对中,键值部分(即键值对的value)包括发布请求所包含的消息内容,而关键字部分(即键值对的key)包括主题信息和体现消息内容发布的先后顺序的编号信息。上述的键值数据库优选采用分布式键值数据库。
本实施例的技术方案,通过将发布的消息转化为键值对的方式存储到键值数据库,提高了消息存储的可靠性和持久性,并且键值对的存储方式也极大方便了后续的消息查询和消息推送。
上述的主题信息和消息订阅是相关联的,海量发布的消息会按照主题进行分类和管理,例如,娱乐、体育、新闻、科技等比较大的主题分类,也可以是较为具体的如某某明星、某个新闻热点等,订阅者的订阅行为也是按照主题进行的,也就是说,订阅者所订阅的是与某个主题相关的消息,消息处理系统100将会把与订阅者订阅的该主题相关的消息找到并发送给订阅者的客户端。因此,键值对中的键值部分包含有消息内容对应的主题信息。
除了主题信息之外,在键值部分还包括体现消息内容发布的先后顺序的编号信息,这部分的意义在于能够在存储的过程中,将消息进行了排队,将现有技术中的随机写入转化成了顺序写入,从而在推送的时候也可以按照排队的先后顺序进行推送,通过这样的机制,在记录消息推送状态时,只需要记录推送到的消息的编号就可以知道各个消息的推送状态,排队在前的消息已经推送完成,而排队在后的消息还未被推送,由此,能够在消息处理系统中以非常简洁的方式进行推送状态的管理,不需要向现有技术那样针对每个消息进行状态管理,而且也不需要再客户端上进行复杂的消息状态的记录和维护。
较为优选地,消息内容键值对的关键字中的编号信息可以根据消息处理模块接收到发布请求的时间来生成。
进一步地,如前面所说,海量发布的消息会按照主题进行分类和管理,因此,消息处理模块可以包括多个消息主题单元1021,多个消息主题单元分别与多个主题信息一一对应,每个消息主题单元用于执行与其对应的主题信息相关的发布请求和消息内容的处理。具体地,消息接收模块101在接收到来自发布客户端200的发布请求时,可以根据发布请求所携带的主题信息,将该发布请求转至相应的消息主题单元进行处理,从而能够将海量的消息进行分流,从而实现并行地高效处理。
此外,鉴于消息的订阅以及发布均是与主题关联的。因此,消息处理模块可以包括多个消息主题单元,多个消息主题单元分别与多个主题信息一一对应,每个消息主题单元用于执行与其对应的主题信息相关的发布请求和消息内容的处理。通过设置多个消息主题单元能够将消息按照主题进行分类管理,从而能够更好地实现消息发布以及推送的并行处理。
实施例二
如图2所示,其为本发明实施例二的消息处理系统的结构示意图,在实施例一的基础上,还包括:
消息获取模块103,用于根据订阅信息中包括的订阅的主题信息从所述键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;
消息推送模块104,用于根据订阅信息中包括的订阅客户端的信息,将获取到的消息内容键值对中的消息内容推送给订阅客户端。
其中,上述的订阅信息是被预先存储的,具体可以存储在消息处理系统的任意存储空间中,只要消息获取模块和消息推送模块能够获取到即可。订阅信息可以包括相互绑定的订阅的主题信息和订阅客户端的信息。
消息处理系统的最终目的是要将消息推送给订阅者的订阅客户端。订阅者会事先将想要订阅的订阅信息注册到消息处理系统,订阅信息中至少包含有要订阅的主题信息和订阅者的订阅客户端的信息,这里的订阅客户端300的信息可以为例如客户端的地址信息或者客户端对应的账号信息等。
具体地,该消息获取模块103可以主要用于进行如下处理:
(1)根据订阅信息从键值数据库400中获取与订阅信息对应的推送状态键值对。
推送状态键值对的主要作用是记录针对某一订阅者的某个订阅所涉及的消息的推送情况。这里的订阅是指一个订阅者针对一个主题的订阅行为,在本发明的实施例中,推送状态是以单个订阅为单位进行记录的,也就是说一个订阅会对应一个推送状态键值对,用来记录一个订阅者针对一个主题的所订阅的消息的推送情况。其中,推送状态键值对的关键字部分包括上述订阅信息,推送状态键值对中的键值部分包括截止当前最新推送成功的消息内容的编号信息。
(2)根据推送状态键值对中记录的截止当前最新推送成功的消息内容的编号信息和订阅信息中包含的主题信息,在键值数据库400进行查询,获取待推送的消息内容。
在本实施例中,推送状态键值对存储的关键性信息就是“截止当前最新推送成功的消息内容的编号信息”,该信息实际上是针对当前的一个订阅所推送的消息的进度记录,例如,消息内容键值对中的编号信息是按照消息发布时间的先后顺序生成的,推送状态键值对中存储的编号信息对应的消息以及之前的消息的状态为已经被推送,而之后的消息为未被推送。这样,针对每个订阅,只需要用一个推送状态键值对就可以管理该订阅的全部消息的推送进度。
相应地,消息推送模块可以具体用于:
根据订阅信息中订阅客户端300的信息向订阅客户端300推送消息内容,并且待推送成功后,更新推送状态键值对。
由此可见,通过推送状态键值对来记录推送状态,能够极大简化消息推送状态的记录,减少了网络侧的消息处理系统的负担,并且也不需要订阅者的订阅客户端进行推送状态记录,实现了轻客户端的需求。
此外,为了实现消息推送的并行处理,消息推送模块可以包括多个推送处理器,多个推送处理器分别与多个订阅行为一一对应,每个推送处理器用于执行与该订阅行为相关的推送处理,其中,一个订阅行为指一个订阅客户端针对一个主题消息的消息内容的订阅。通过正对每个订阅设置一个推送处理,来管理该订阅相关的消息内容获取和推送,从而能够更加高效地并行完成海量消息的推送。
实施例三
如图3所示,其为本发明实施例三的消息处理系统的结构示意图,在实施例二的基础上,消息处理系统还可以包括消息推送代理模块103。
消息推送代理模块105用于根据订阅客户端的信息选择适合订阅客户端的推送方式推送消息内容。
相应地,在消息推送模块104中,根据订阅信息中订阅客户端的信息向订阅客户端推送消息内容可以具体为:根据订阅信息中订阅客户端的信息和消息内容生成推送消息,并通过消息推送代理模块105执行推送处理。
如图3所示,消息推送代理模块105主要包括消息推送代理和若干个推送代理处理器(对应于多种推送方式)。消息推送代理主要是根据推送消息的对象(订阅者的订阅客户端)的类型来选择合理的方式进行推送。而若干个推送方式处理器提供了多种推送方式,例如,可以包括网页方式推送(通过http协议推动)、邮件方式推送、wap方式推送、短信方式推送以及即时通讯方式推送(例如通过微信推送)等。推送代理处理器的主要作用就是进行相应的格式转换以及最终向终端发送。
通过设置消息推送代理模块能够在网络侧的消息处理系统上屏蔽掉订阅客户端与消息处理系统之间的差异,订阅客户端也无需为了接收特定的消息而进行格式转化处理等,推送方式的选择以及推送格式的转换全部由网络侧的消息处理系统来完成,从而进一步减轻了订阅客户端的负担。
实施例四
实施例一中着重介绍了消息发布过程的消息存储机制。在实际应用中,还会涉及到针对已经发布的消息内容的修改以及针对已经存储的消息内容的删除等情形。
针对消息内容的修改情形,在消息内容键值对的管理上,消息内容键值对可以包括新增消息内容键值对和修改消息内容键值对。发布请求包括新增消息内容的发布请求和修改消息内容的发布请求。新发布消息的发布请求消息被转换为新增消息内容键值对,而针对已经发布的消息进行修改的修改请求消息将会转换为修改消息内容键值对,修改消息内容键值对中的编号信息与对应的新增消息内容键值对的编号信息是一样的,即消息修改操作不改变编号信息。
其中,新增消息内容键值对的关键字包括表示新增操作的标识和体现消息内容发布的先后顺序的编号信息,或者包括表示新增操作的标识、体现消息内容发布的先后顺序的编号信息以及表示初始版本的版本标识。这里引入版本标识的意义在于,由于消息可能会被修改,每次修改可以更新版本标识,以表示消息内容的变化。当然,作为首次写入到数据库中的新增消息内容键值对也可以不带版本标识,数据库可以设置为没有版本标识的键值对视为新增消息内容键值对。
相应地,修改消息内容键值对的关键字包括表示新增操作的标识和被修改的消息内容键值对的编号信息以及标识当前修改版本的版本标识。
基于上述键值对的设计,在消息处理模块102中,将发布请求转化为消息内容键值对,然后发送到键值数据库进行存储可以包括:
如果发布请求为新增消息内容的发布请求,则将该发布请求转化为新增消息内容键值对,并发送到键值数据库进行存储;
如果发布请求为修改消息内容的发布请求,则将该发布请求转化为修改消息内容键值对,并发送到键值数据库进行存储。在实际应用中,还会涉及到消息内容的删除操作,也就是要删除数据库中的新增消息内容键值对和修改消息内容键值对。
具体地,消息内容键值对还包括删除消息内容键值对,删除消息内容键值对的关键字包括表示删除操作的标识和被删除的消息内容键值对的编号信息,
消息处理模块102还用于对键值数据库中的消息内容键值对进行删除操作,其中,删除操作包括:向键值数据库中写入删除消息内容键值对。需要说明的是,向键值数据库中写入删除消息内容键值对操作并没有马上清除消息内容键值对,但是由于删除消息内容键值对的存在,在键值数据库执行数据的归并处理时,根据预设的规则就可以一并处理掉。删除操作可以定时执行,也可以根据某个订阅主题中消息的生命周期来确定,例如,新闻类消息的生命周期可以设定为一天。
具体地,消息处理模块102可以触发键值数据库对其中存储的关键字中的编号信息相同的消息内容键值对进行归并处理,归并处理可以具体包括:
如果编号信息相同的消息内容键值对包括修改消息内容键值对,则保留版本标识为最新的修改消息内容键值对,将其他编号信息相同的消息内容键值对从键值数据库中删除;
如果编号信息相同的消息内容键值对包括删除消息内容键值对,则将编号信息相同的消息内容键值从键值数据库中删除。
基于本实施例的消息内容键值对的结构设计(具体包括新增消息内容键值对、修改消息内容键值对以及删除消息内容键值对)以及归并处理的机制,能够非常有效地对消息内容的写入、修改以及删除进行简单而高效地管理,提高针对海量消息的处理效率。
实施例五
如图4所示,其为本发明实施例五的消息处理系统的结构示意图,在本实施例中,着重说明消息的推送机制。在本实施例的消息处理系统中,预先存储有订阅信息,该订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息。如图4所示,本实施例的消息处理系统100’包括:
消息获取模块103,用于根据订阅信息中包括的订阅的主题信息从键值数据库400中获取与订阅的主题信息对应的消息内容键值对;
消息推送模块104,用于根据订阅信息中包括的订阅客户端的信息,将获取到的消息内容键值对中的消息内容推送给订阅客户端,
消息内容键值对的关键字包括主题信息和体现消息内容发布的先后顺序的编号信息,消息内容键值对的键值包括发布请求所包含的消息内容。其中,消息内容键值对为预先存储在键值数据库400中的,例如可以采用如上述实施例一的方式生成消息内容键值对并存储在键值数据库400中。
进一步地,消息获取模块103可以具体用于:
根据订阅信息从键值数据库中获取与订阅信息对应的推送状态键值对,其中,推送状态键值对的关键字包括订阅信息,推送状态键值的键值包括截止当前最新推送成功的消息内容的编号信息;
根据截止当前最新推送成功的消息内容的编号信息和订阅的主题信息,在键值数据库进行查询,获取关键字中包括截止当前最新推送成功的消息内容的编号信息和订阅的主题信息的消息内容键值;
消息推送模块104可以具体用于:
根据订阅客户端的信息,将获取到的消息内容键值对中的消息内容推送给订阅客户端,并且待推送成功后,更新推送状态键值对。
关于消息获取模块和消息推送模块的详细说明也可以参见实施例二中的详细描述,在此不再赘述。
本实施例的技术方案中,消息内容键值对的键值部分包括体现消息内容发布的先后顺序的编号信息,在推送的时候也可以按照排队的先后顺序进行推送,通过这样的机制,在记录消息推送状态时,只需要记录推送到的消息的编号就可以知道各个消息的推送状态,排队在前的消息已经推送完成,而排队在后的消息还未被推送,由此,能够在消息处理系统中以非常简洁的方式进行推送状态的管理,不需要向现有技术那样针对每个消息进行状态管理,而且也不需要再客户端上进行复杂的消息状态的记录和维护。
更进一步地,本实施例的消息处理系统100’还可以包括:
消息推送代理模块105,用于根据订阅客户端的信息选择适合订阅客户端的推送方式推送消息内容。
消息推送代理模块105主要包括消息推送代理和若干个推送代理处理器(对应于多种推送方式)。消息推送代理主要是根据推送消息的对象(订阅者的订阅客户端)的类型来选择合理的方式进行推送。而若干个推送方式处理器提供了多种推送方式,例如,可以包括网页方式推送(通过http协议推动)、邮件方式推送、wap方式推送、短信方式推送以及即时通讯方式推送(例如通过微信推送)等。推送代理处理器的主要作用就是进行相应的格式转换以及最终向终端发送。
通过设置消息推送代理模块能够在网络侧的消息处理系统上屏蔽掉订阅客户端与消息处理系统之间的差异,订阅客户端也无需为了接收特定的消息而进行格式转化处理等,推送方式的选择以及推送格式的转换全部由网络侧的消息处理系统来完成,从而进一步减轻了订阅客户端的负担。
实施例六
如图5所示,其为本发明实施例六的消息处理方法的流程示意图,本实施例的消息处理方法可以基于上述实施例一至四的消息处理系统来实现,本实施例的消息处理方法的执行主体可以为消息处理系统。如图5所示,本实施例的消息处理方法包括:
步骤S101:接收消息发布客户端发送的发布请求,其中,发布请求中包含待发布的消息内容和主题信息;
步骤S102:将该发布请求转化为消息内容键值对存储到键值数据库中。其中,消息内容键值对中的关键字包括主题信息和体现消息内容发布的先后顺序的编号信息,键值对中的第一键值包括发布请求所包含的消息内容。具体地,关键字中的编号信息可以根据消息处理模块接收到发布请求的时间来生成。
本实施例的技术方案,通过将发布的消息转化为键值对的方式存储到键值数据库,提高了消息存储的可靠性和持久性,并且键值对的存储方式也极大方便了后续的消息查询和消息推送。此外,键值部分包括体现消息内容发布的先后顺序的编号信息,这部分的意义在于能够在存储的过程中,将消息进行了排队,将现有技术中的随机写入转化成了顺序写入,从而在推送的时候也可以按照排队的先后顺序进行推送,通过这样的机制,在记录消息推送状态时,只需要记录推送到的消息的编号就可以知道各个消息的推送状态,排队在前的消息已经推送完成,而排队在后的消息还未被推送,由此,能够在消息处理系统中以非常简洁的方式进行推送状态的管理,不需要向现有技术那样针对每个消息进行状态管理,而且也不需要再客户端上进行复杂的消息状态的记录和维护。
实施例七
实施例六说明了本实施例的针对消息发布的存储处理。进一步地,如图6所示,其为本发明实施例七的消息处理方法的流程示意图,除了消息发布的存储流程外,本实施例还涉及针对消息的推送处理和推送状态管理的流程。需要说明的是,针对消息的推送处理和推送状态管理的执行主体也是消息处理系统,并且可以和图5中的流程并行执行。
具体地,如图6所示,在实施例六的基础上,预先存储有订阅信息,该订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,订阅信息可以预存于上述实施例的消息处理系统中。
在此基础上,本实施例的消息处理方法还可以包括:根据订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅信息对应的消息内容键值对,并根据订阅客户端的信息将所述消息内容键值对中的消息内容推送给订阅客户端。
该部分操作可以具体为如下步骤:
步骤S201:根据订阅信息从键值数据库中获取与订阅信息对应的推送状态键值对,订阅信息中包含有订阅的主题信息和订阅客户端的信息。
步骤S202:根据推送状态键值对中记录的截止当前最新推送成功的消息内容的编号信息和订阅信息中包含的主题信息,在键值数据库进行查询,获取待推送的消息内容。
步骤S202的操作可以具体为:根据推送状态键值对中记录的截止当前最新推送成功的消息内容的编号信息和订阅信息中包含的主题信息,生成用于查询待推送的消息内容的关键字;
根据该关键字在键值数据库进行查询,获取符合订阅信息中包含的主题信息并且在编号信息对应的消息内容。
步骤S203:根据订阅信息中订阅客户端的信息向订阅客户端推送获取到的消息内容,并且待推送成功后,更新推送状态键值对;
其中,订阅信息包括订阅客户端的信息和订阅的主题信息,推送状态键值对中的关键字包括订阅信息,推送状态键值对中的键值包括截止当前最新推送成功的消息内容的编号信息。
在本实施例中,通过推送状态键值对来记录推送状态,能够极大简化消息推送状态的记录,减少了网络侧的消息处理系统的负担,并且也不需要订阅者的订阅客户端进行推送状态记录,实现了轻客户端的需求。
进一步地,上述步骤S203中,根据订阅信息中订阅客户端的信息向订阅客户端推送消息内容可以具体为:根据订阅信息中订阅客户端的信息和消息内容生成推送消息,并通过消息推送代理模块执行推送处理。
这里的消息代理模块具体为实施例三中的消息推送代理模块103,其详细结构和功能已经在实施例三中进行了详细说明,在此不再赘述。消息推送代理主要是根据推送消息的对象(订阅者的订阅客户端)的类型来选择合理的方式进行推送。而若干个推送方式处理器提供了多种推送方式,例如,可以包括网页方式推送(通过http协议推动)、邮件方式推送、wap方式推送、短信方式推送以及即时通讯方式推送(例如通过微信推送)等。推送代理处理器的主要作用就是进行相应的格式转换以及最终向终端发送。
通过消息推送代理模块完成消息的推送操作,能够在网络侧的消息处理系统上屏蔽掉订阅客户端与消息处理系统之间的差异,订阅客户端也无需为了接收特定的消息而进行格式转化处理等,推送方式的选择以及推送格式的转换全部由网络侧的消息处理系统来完成,从而进一步减轻了订阅客户端的负担。
实施例八
本实施例着重说明针对已经发布的消息内容的修改以及针对已经存储的消息内容的删除等处理。
具体地,消息内容键值对可以包括新增消息内容键值对和修改消息内容键值对。发布请求包括新增消息内容的发布请求和修改消息内容的发布请求。新发布消息的发布请求消息被转换为新增消息内容键值对,而针对已经发布的消息进行修改的修改请求消息将会转换为修改消息内容键值对,修改消息内容键值对中的编号信息与对应的新增消息内容键值对的编号信息是一样的,即消息修改操作不改变编号信息。
其中,新增消息内容键值对的关键字包括表示新增操作的标识和体现消息内容发布的先后顺序的编号信息,或者包括表示新增操作的标识、体现消息内容发布的先后顺序的编号信息以及表示初始版本的版本标识。这里引入版本标识的意义在于,由于消息可能会被修改,每次修改可以更新版本标识,以表示消息内容的变化。当然,作为首次写入到数据库中的新增消息内容键值对也可以不带版本标识,数据库可以设置为没有版本标识的键值对视为新增消息内容键值对。
相应地,修改消息内容键值对的关键字包括表示新增操作的标识和被修改的消息内容键值对的编号信息以及标识当前修改版本的版本标识。
基于上述键值对的设计,将发布请求转化为消息内容键值对存储到键值数据库中可以具体包括:
如果发布请求为新增消息内容的发布请求,则将该发布请求转化为新增消息内容键值对存储到键值数据库中;
如果发布请求为修改消息内容的发布请求,则将该发布请求转化为修改消息内容键值对存储到键值数据库中。
进一步地,消息内容键值对还可以包括删除消息内容键值对,删除消息内容键值对的关键字包括表示删除操作的标识和被删除的消息内容键值对的编号信息。
相应地,本实施例的方法还可以进一步包括:对键值数据库中的消息内容键值对进行删除操作,其中,删除操作包括:向键值数据库中写入删除消息内容键值对。
此外,基于上述删除消息内容键值对、新增消息内容键值对以及修改消息内容键值对的结构设计,本实施例的方法还可以包括对键值数据库中的关键字中的编号信息相同的消息内容键值对进行归并处理,该归并处理具体包括:
如果编号信息相同的消息内容键值对包括修改消息内容键值对,则保留版本标识为最新的修改消息内容键值对,将其他编号信息相同的消息内容键值对从键值数据库中删除;
如果编号信息相同的消息内容键值对包括删除消息内容键值对,则将编号信息相同的消息内容键值从键值数据库中删除。
由此可见,基于本实施例的消息内容键值对的结构设计(具体包括新增消息内容键值对、修改消息内容键值对以及删除消息内容键值对)以及归并处理的机制,能够非常有效地对消息内容的写入、修改以及删除进行简单而高效地管理,提高针对海量消息的处理效率。
实施例九
如图7所示,其为本发明实施例的消息处理方法的流程示意图。本实施例与实施例五的内容相对应,着重说明消息的推送机制。在本实施例中,订阅信息被预先存储,该订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息。本实施例的方法包括:
步骤S301:根据订阅信息中包括的订阅的主题信息从键值数据库中获取与订阅的主题信息对应的消息内容键值对。消息内容键值对的关键字包括主题信息和体现消息内容发布的先后顺序的编号信息,消息内容键值对的键值包括发布请求所包含的消息内容。
进一步地,该步骤S301可以具体包括:
步骤S3011:根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值的键值包括截止当前最新推送成功的消息内容的编号信息;
步骤S3012:根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值。
步骤S302:根据订阅信息中包括的订阅客户端的信息,将获取到的消息内容键值对中的消息内容推送给订阅客户端。进一步地,在该步骤之后还可以包括:
步骤S303:待推送成功后,更新推送状态键值对。
本实施例的技术方案中,消息内容键值对的键值部分包括体现消息内容发布的先后顺序的编号信息,在推送的时候也可以按照排队的先后顺序进行推送,通过这样的机制,在记录消息推送状态时,只需要记录推送到的消息的编号就可以知道各个消息的推送状态,排队在前的消息已经推送完成,而排队在后的消息还未被推送,由此,能够在消息处理系统中以非常简洁的方式进行推送状态的管理,不需要向现有技术那样针对每个消息进行状态管理,而且也不需要再客户端上进行复杂的消息状态的记录和维护。
实施例十
如图8所示,其为本发明实施例十的消息处理装置的结构示意图,如图所示,该消息处理装置,包括:存储器61以及处理器62。
存储器61,可被配置为存储程序。
存储器61可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储器61和处理器62可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器62,用于执行存储器61中的程序,以用于:
接收消息发布客户端发送的发布请求,其中,发布请求中包含待发布的消息内容和主题信息;
将该发布请求转化为消息内容键值对存储到键值数据库中;其中,消息内容键值对中的关键字包括主题信息和体现消息内容发布的先后顺序的编号信息,键值对中的键值包括发布请求所包含的消息内容。
进一步地,该处理器62还可以用于:根据订阅的主题信息从所述键值数据库中获取与所述订阅信息对应的消息内容键值对,并根据订阅客户端的信息将所述消息内容键值对中的消息内容推送给订阅客户端。
进一步地,该部分处理可以具体包括:
根据订阅信息从键值数据库中获取与订阅信息对应的推送状态键值对,订阅信息中包含有订阅的主题信息和订阅客户端的信息;
根据推送状态键值对中记录的截止当前最新推送成功的消息内容的编号信息和订阅信息中包含的主题信息,在键值数据库进行查询,获取待推送的消息内容;
根据订阅信息中订阅客户端的信息向订阅客户端推送消息内容,并且待推送成功后,更新推送状态键值对;
其中,推送状态键值对中的关键字包括订阅信息,推送状态键值对中的键值包括截止当前最新推送成功的消息内容的编号信息。
此外,需要说明的是,上述实施例一至四以及实施例六至八的系统中的各个模块所执行的功能或者各方法中所包含的处理步骤均可以以程序的形式存储于存储器61并由处理器62执行。
实施例十一
如图9所示,其为本发明实施例十一的消息处理装置的结构示意图,如图所示,该消息处理装置,包括:存储器71以及处理器72。
存储器71,可被配置为存储程序。
存储器71可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储器71和处理器72可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器72,用于执行存储器71中的程序,以用于:
根据订阅信息中包括的订阅的主题信息从键值数据库中获取与订阅的主题信息对应的消息内容键值对;
根据订阅信息中包括的订阅客户端的信息,将获取到的消息内容键值对中的消息内容推送给订阅客户端,
其中,消息内容键值对的关键字包括主题信息和体现消息内容发布的先后顺序的编号信息,消息内容键值对的键值包括发布请求所包含的消息内容。此外,上述订阅信息被预先存储,订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息。
进一步地,上述的根据订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对可以具体包括:
根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值的键值包括截止当前最新推送成功的消息内容的编号信息;
根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值,
此外,在所述根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端的操作之后还可以包括:
待推送成功后,更新所述推送状态键值对。
此外,需要说明的是,上述实施例五和实施例九的系统中的各个模块所执行的功能或者各方法中所包含的处理步骤均可以以程序的形式存储于存储器71并由处理器72执行。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (29)
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所述的方法,其特征在于,所述根据订阅信息中包括的所述订阅的主题信息从所述键值数据库中获取与所述订阅的主题信息对应的消息内容键值对,并根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端包括:
根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值对的键值包括截止当前最新推送成功的消息内容的编号信息;
根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值;
根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,待推送成功后,更新所述推送状态键值对。
19.根据权利要求15所述的方法,其特征在于,所述消息内容键值对包括新增消息内容键值对和修改消息内容键值对,所述发布请求包括新增消息内容的发布请求和修改消息内容的发布请求,
所述新增消息内容键值对的关键字包括表示新增操作的标识和体现消息内容发布的先后顺序的编号信息,或者包括表示新增操作的标识、体现消息内容发布的先后顺序的编号信息以及表示初始版本的版本标识,
所述修改消息内容键值对的关键字包括表示新增操作的标识和被修改的消息内容键值对的编号信息以及标识当前修改版本的版本标识。
20.根据权利要求19所述的方法,其特征在于,所述将发布请求转化为消息内容键值对并存储到键值数据库中包括:
如果所述发布请求为新增消息内容的发布请求,则将该发布请求转化为所述新增消息内容键值对并存储到键值数据库中;
如果所述发布请求为修改消息内容的发布请求,则将该发布请求转化为所述修改消息内容键值对并存储到键值数据库中。
21.根据权利要求15所述的方法,其特征在于,所述消息内容键值对还包括删除消息内容键值对,所述删除消息内容键值对的关键字包括表示删除操作的标识和被删除的消息内容键值对的编号信息,
所述方法还包括:对所述键值数据库中的消息内容键值对进行删除操作,其中,所述删除操作包括:向所述键值数据库中写入删除消息内容键值对。
22.根据权利要求21所述的方法,其特征在于,还包括:
对所述键值数据库中的关键字中的编号信息相同的消息内容键值对进行归并处理,所述归并处理具体包括:
如果编号信息相同的消息内容键值对包括修改消息内容键值对,则保留版本标识为最新的修改消息内容键值对,将其他编号信息相同的消息内容键值对从所述键值数据库中删除;
如果编号信息相同的消息内容键值对包括删除消息内容键值对,则将编号信息相同的消息内容键值从所述键值数据库中删除。
23.一种消息处理方法,其特征在于,预先存储有订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述方法包括:
根据所述订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;
根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,
所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
24.根据权利要求23所述的方法,其特征在于,所述根据订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对包括:
根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值的键值包括截止当前最新推送成功的消息内容的编号信息;
根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值,
在所述根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端之后还包括:
待推送成功后,更新所述推送状态键值对。
25.一种消息处理装置,其特征在于,包括存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,以用于:
接收消息发布客户端发送的发布请求,其中,所述发布请求中包含待发布的消息内容和主题信息;
将该发布请求转化为消息内容键值对存储到键值数据库中;其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
26.根据权利要求25所述的装置,其特征在于,预先存储有订阅消息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述处理器还用于:
根据所述订阅信息中包括的所述订阅的主题信息从所述键值数据库中获取与所述订阅的主题信息对应的消息内容键值对,并根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端。
27.根据权利要求26所述的装置,其特征在于,
所述根据订阅信息中包括的所述订阅的主题信息从所述键值数据库中获取与所述订阅的主题信息对应的消息内容键值对,并根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端包括:
根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值对的键值包括截止当前最新推送成功的消息内容的编号信息;
根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值;
根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,待推送成功后,更新所述推送状态键值对。
28.一种消息处理装置,其特征在于,预先存储有所述订阅信息,所述订阅信息包括相互绑定的订阅的主题信息和订阅客户端的信息,所述装置包括存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,以用于:
根据所述订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对;
根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端,
其中,所述消息内容键值对的关键字包括所述主题信息和体现消息内容发布的先后顺序的编号信息,所述消息内容键值对的键值包括所述发布请求所包含的所述消息内容。
29.根据权利要求28所述的装置,其特征在于,所述根据订阅信息中包括的订阅的主题信息从键值数据库中获取与所述订阅的主题信息对应的消息内容键值对包括:
根据所述订阅信息从所述键值数据库中获取与所述订阅信息对应的推送状态键值对,其中,所述推送状态键值对的关键字包括所述订阅信息,所述推送状态键值的键值包括截止当前最新推送成功的消息内容的编号信息;
根据所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息,在所述键值数据库进行查询,获取关键字中包括所述截止当前最新推送成功的消息内容的编号信息和所述订阅的主题信息的消息内容键值,
在所述根据所述订阅信息中包括的订阅客户端的信息,将获取到的所述消息内容键值对中的消息内容推送给订阅客户端之后还包括:
待推送成功后,更新所述推送状态键值对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610849568.XA CN107872473B (zh) | 2016-09-23 | 2016-09-23 | 消息处理方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610849568.XA CN107872473B (zh) | 2016-09-23 | 2016-09-23 | 消息处理方法、装置以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107872473A true CN107872473A (zh) | 2018-04-03 |
CN107872473B CN107872473B (zh) | 2021-01-19 |
Family
ID=61751736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610849568.XA Active CN107872473B (zh) | 2016-09-23 | 2016-09-23 | 消息处理方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107872473B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924183A (zh) * | 2018-05-31 | 2018-11-30 | 北京百度网讯科技有限公司 | 用于处理信息的方法及装置 |
CN109600375A (zh) * | 2018-12-13 | 2019-04-09 | 锐捷网络股份有限公司 | 消息跟踪方法、装置、电子设备及存储介质 |
CN110633442A (zh) * | 2019-08-19 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 一种推送方法、装置及电子设备 |
CN110928704A (zh) * | 2018-09-20 | 2020-03-27 | 广州虎牙信息科技有限公司 | 消息处理方法、消息处理系统、服务器及计算机存储介质 |
CN111200552A (zh) * | 2018-11-16 | 2020-05-26 | 腾讯科技(深圳)有限公司 | 一种即时通讯方法及其装置、设备和存储介质 |
CN113239307A (zh) * | 2021-05-17 | 2021-08-10 | 北京百度网讯科技有限公司 | 用于存储消息主题的方法及装置 |
CN113704358A (zh) * | 2021-09-02 | 2021-11-26 | 湖南麒麟信安科技股份有限公司 | 分布式任务协同处理方法、装置和计算机设备 |
CN113766437A (zh) * | 2020-08-31 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种短信发送方法和装置 |
CN113992669A (zh) * | 2021-10-25 | 2022-01-28 | 哈尔滨理工大学 | 一种工业内可信消息的分布式数据分发方法 |
CN114339456A (zh) * | 2022-03-16 | 2022-04-12 | 飞狐信息技术(天津)有限公司 | 一种视频发布方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120185349A1 (en) * | 2005-09-14 | 2012-07-19 | Adam Soroca | System for retrieving mobile communication facility user data from a plurality of providers |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN105869057A (zh) * | 2016-04-07 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 评论存储设备、评论读取、评论写入方法及装置 |
CN105917331A (zh) * | 2013-12-03 | 2016-08-31 | 电子湾有限公司 | 适配搜索结果的系统和方法 |
-
2016
- 2016-09-23 CN CN201610849568.XA patent/CN107872473B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120185349A1 (en) * | 2005-09-14 | 2012-07-19 | Adam Soroca | System for retrieving mobile communication facility user data from a plurality of providers |
CN105917331A (zh) * | 2013-12-03 | 2016-08-31 | 电子湾有限公司 | 适配搜索结果的系统和方法 |
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN105869057A (zh) * | 2016-04-07 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 评论存储设备、评论读取、评论写入方法及装置 |
Non-Patent Citations (1)
Title |
---|
马浩然: "基于NS3的分布式消息系统Kafka的仿真实现", 《软件》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924183A (zh) * | 2018-05-31 | 2018-11-30 | 北京百度网讯科技有限公司 | 用于处理信息的方法及装置 |
CN108924183B (zh) * | 2018-05-31 | 2022-01-11 | 北京百度网讯科技有限公司 | 用于处理信息的方法及装置 |
CN110928704A (zh) * | 2018-09-20 | 2020-03-27 | 广州虎牙信息科技有限公司 | 消息处理方法、消息处理系统、服务器及计算机存储介质 |
CN111200552A (zh) * | 2018-11-16 | 2020-05-26 | 腾讯科技(深圳)有限公司 | 一种即时通讯方法及其装置、设备和存储介质 |
CN111200552B (zh) * | 2018-11-16 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 一种即时通讯方法及其装置、设备和存储介质 |
CN109600375B (zh) * | 2018-12-13 | 2021-07-16 | 锐捷网络股份有限公司 | 消息跟踪方法、装置、电子设备及存储介质 |
CN109600375A (zh) * | 2018-12-13 | 2019-04-09 | 锐捷网络股份有限公司 | 消息跟踪方法、装置、电子设备及存储介质 |
CN110633442A (zh) * | 2019-08-19 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 一种推送方法、装置及电子设备 |
CN113766437A (zh) * | 2020-08-31 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种短信发送方法和装置 |
CN113239307A (zh) * | 2021-05-17 | 2021-08-10 | 北京百度网讯科技有限公司 | 用于存储消息主题的方法及装置 |
CN113704358A (zh) * | 2021-09-02 | 2021-11-26 | 湖南麒麟信安科技股份有限公司 | 分布式任务协同处理方法、装置和计算机设备 |
CN113992669A (zh) * | 2021-10-25 | 2022-01-28 | 哈尔滨理工大学 | 一种工业内可信消息的分布式数据分发方法 |
CN114339456A (zh) * | 2022-03-16 | 2022-04-12 | 飞狐信息技术(天津)有限公司 | 一种视频发布方法及装置 |
CN114339456B (zh) * | 2022-03-16 | 2022-05-27 | 飞狐信息技术(天津)有限公司 | 一种视频发布方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107872473B (zh) | 2021-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107872473A (zh) | 消息处理方法、装置以及系统 | |
CN103888547B (zh) | 一种账单处理方法和服务器 | |
CN105515872B (zh) | 配置信息的更新方法、装置及系统 | |
JP6481415B2 (ja) | データストレージ管理装置及びデータストレージ管理方法 | |
DE102008056646A1 (de) | Offene Plattform zum Handhaben eines Agentennetzwerkes | |
CN106933747B (zh) | 基于多流的数据存储系统和数据存储方法 | |
CN108563771B (zh) | 基于区块链的大文件管理系统及方法 | |
CN106302609A (zh) | 一种访问方法及装置 | |
CA2725017A1 (en) | Email auto-filing and management | |
CN104951507A (zh) | 一种清理移动终端应用中文件的方法及装置 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN103020223A (zh) | 文件共享处理方法、装置和系统 | |
CN104408068A (zh) | 一种报表数据处理方法及相关设备 | |
CN102833272A (zh) | 一种基于用户订阅的下载方法及装置 | |
CN106888264B (zh) | 一种数据交换方法和装置 | |
CN107135108A (zh) | 网络连接列表的更新方法及系统 | |
CN109213955B (zh) | 数据处理方法及相关设备 | |
CN105227661B (zh) | 文件分享方法及系统、服务器 | |
CN107229875A (zh) | 终端隐私保护方法及系统 | |
CN109491971A (zh) | 一种文件过滤方法、装置、设备及计算机可读存储介质 | |
CN105989096A (zh) | 账号信息的清理方法及装置 | |
CN104298416A (zh) | 即时通讯中自动回复消息的生成方法和装置 | |
CN107357808A (zh) | 数据管理方法、装置及设备 | |
CN106250538A (zh) | 微信中分享大数据的方法及系统 | |
CN100426742C (zh) | 设备文件批量复制系统及其复制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |