在分布式消息处理系统中的消息管理设备和方法技术方案

技术编号:8387073 阅读:158 留言:0更新日期:2013-03-07 07:45
本发明专利技术公开了一种在分布式消息处理系统中的消息管理设备和方法。其中消息管理方法包括:接收消息处理设备发送的消息处理请求,所述消息处理请求至少包括所请求处理消息的主题;查询与所述消息处理请求中的主题相对应的存储分区信息,并将所查询到的存储分区信息发送给相应消息处理设备;以及处理来自消息处理设备的消息位置查询请求,查询与该消息位置查询请求中的存储分区相对应的存储分区的当前要处理消息的位置信息、并发送给相应消息处理设备;以及处理来自消息处理设备的消息位置更新请求,基于所述消息位置更新请求中的消息大小,更新与所述消息位置更新请求中的存储分区相对应的存储分区的当前要处理消息的位置信息。

【技术实现步骤摘要】

本专利技术涉及消息处理领域,具体涉及一种。
技术介绍
目前用于消息(如日志)处理的消息系统有很多,比较流行的是分布式消息系统。分布式消息系统的具体形式有很多,如Spread、Kafka等。下面仅以常用的一种分布式消息系统Kafka为例进行说明。 Kafka是用于日志处理的分布式消息系统,主要针对日志数据容量大,但对可靠性要求不是很高的业务。这些系统中的日志数据主要包括用户行为,例如,登录、浏览、点击、分享以及喜欢等,还包括系统运行日志,例如,CPU (Central Processing Unit,中央处理器)、内存、磁盘、网络、系统及进程等的运行状态。图I为相关技术中Kafka系统架构示意图。该Kafka系统包括以下四个角色Producer (消息产生者,简称PD) 11、Broker (简称BK) 12、Consumer (消息处理者,简称CS) 13以及Zooke印er(管理者,简称ZK) 14,每个角色都可以是多个。Consumer 13在Kafka系统中负责处理消息;Producer 11在Kafka系统中负责产生消息;Brokerl2是Kafka系统中用来存放消息的地方,负责接收Producer 11发来的消息,当Consumer 13有请求时,将这些消息返回给Consumerl3 ;ZooKeeper 14是一个开放源码的分布式应用程序协调服务,包含一个简单的原语集,是Hadoop和Hbase的重要组件,分布式应用可以使用它来实现诸如统一命名服务、配置管理、分布式锁服务、集群管理等功能。Producer 11发送消息到Broker 12,消息持久化存储在Brokerl2上,Consumer 13再从Brokerl2取得消息进行处理。Zookeeper 14 用来存储 Producer 11, Consumer 13,与 Brokerl2 的一些状态信息。Kafka系统对消息的处理是采用pull (拉)的方式,每次由Consumer 13从Broker12上获取要处理的消息。成功处理的消息的位置Offset由Consumerl3来保存。在上述消息处理方式中,Consumer 13需要自己对成功处理的消息的位置Offset进行管理、保存,Off set—般保存在Consumer 13所属的消息处理设备的内存或者本地磁盘上,当消息处理设备意外终止或者机器磁盘坏掉后,之前保存的Offset就丢失了。当重新启动消息处理设备后,将从最近一次保存的Offset、或者从头开始消费,Consumer 13无法紧接上次成功处理的消息的位置继续对消息进行处理。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的。依据本专利技术的一个方面,提供了一种在分布式消息处理系统中的消息管理设备,该分布式消息处理系统还包括一个或多个消息存储设备和一个或多个消息处理设备,其中每条消息具有相应的主题,消息存储设备为相应主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中,消息管理设备包括消息分布状态存储器,被配置为至少存储每个消息存储设备中有关存储分区的信息、以及每个存储分区中有关消息处理设备当前要处理的消息的位置信息;传输接口,被配置为接收消息处理设备发送的消息处理请求,消息处理请求至少包括所请求处理消息的主题;分区状态查询器,被配置为在消息分布状态存储器中查询与消息处理请求中的主题相对应的存储分区信息,并经由传输接口将所查询到的存储分区信息发送给相应消息处理设备;以及消息位置管理器,被配置为处理通过传输接口接收的、来自消息处理设备的消息位置查询请求,从消息分布状态存储器中获取与该消息位置查询请求中的存储分区相对应的存储分区的当前要处理消息的位置信息、并经由传输接口发送给相应消息处理设备;以及被配置为处理通过传输接口接收的、来自消息处理设备的消息位置更新请求,基于消息位置更新请求中的消息大小,更新消息分布状态存储器中、与消息位置更新请求中的存储分区相对应的存储分区的当前要处理消息的位置信息。可选的,消息分布状态存储器中还存储有消息处理设备每次所要处理的消息的大小;分区状态查询器还被配置为在消息分布状态存储器中查询相应消息处理设备所要处理 的消息的大小,并通过传输接口发送给相应消息处理设备。根据本专利技术的另一个方面,还提供了一种消息管理方法,该方法适于在分布式消息处理系统中的消息管理设备上执行,该分布式消息处理系统还包括一个或多个消息存储设备和一个或多个消息处理设备,其中每条消息具有相应的主题,消息存储设备为相应主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中,消息管理方法包括接收消息处理设备发送的消息处理请求,消息处理请求至少包括所请求处理消息的主题;查询与消息处理请求中的主题相对应的存储分区信息,并将所查询到的存储分区信息发送给相应消息处理设备,其中,消息管理设备中至少存储每个消息存储设备中有关存储分区的信息、以及每个存储分区中有关消息处理设备当前要处理的消息的位置信息;以及处理来自消息处理设备的消息位置查询请求,查询与该消息位置查询请求中的存储分区相对应的存储分区的当前要处理消息的位置信息、并发送给相应消息处理设备;以及处理来自消息处理设备的消息位置更新请求,基于消息位置更新请求中的消息大小,更新与消息位置更新请求中的存储分区相对应的存储分区的当前要处理消息的位置信息。可选的,上述消息管理方法还包括查询相应消息处理设备所要处理的消息的大小、并发送给相应消息处理设备,其中消息管理设备中还存储有消息处理设备每次所要处理的消息的大小。本专利技术的技术方案在消息管理设备上存储有每个消息存储设备中有关存储分区的信息、以及每个存储分区中有关消息处理设备当前要处理的消息的位置信息,当消息处理设备获取要处理的消息时,只需从消息管理设备查询消息处理设备处理的主题下的消息在消息存储设备上的存储分区信息,以及消息处理设备在相应的存储分区的当前要处理的消息的位置信息,即可发送请求消息从消息存储设备获取消息进行处理,这样,即使消息处理设备发生故障,在消息处理设备恢复正常后,仍然可以紧接上次成功处理消息的位置获取消息进行处理,避免了消息的重复处理或遗漏。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图I示出了一种Kafka系统架构示意图; 图2示出了根据本专利技术一个实施例的分布式消息处理系统的示意图;图3示出了根据本专利技术一个实施例的消息存储设备内部存储结构的示意图;图4示出了根据本专利技术一个实施例的消息管理方法的流程图;以及图5示出了根据本专利技术一个实施例的消息处理方法的流程图。具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理本文档来自技高网
...

【技术保护点】
一种在分布式消息处理系统中的消息管理设备,该分布式消息处理系统还包括一个或多个消息存储设备和一个或多个消息处理设备,其中每条消息具有相应的主题,所述消息存储设备为相应主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中,所述消息管理设备包括:消息分布状态存储器,被配置为至少存储每个消息存储设备中有关存储分区的信息、以及每个存储分区中有关消息处理设备当前要处理的消息的位置信息;传输接口,被配置为接收消息处理设备发送的消息处理请求,所述消息处理请求至少包括所请求处理消息的主题;分区状态查询器,被配置为在所述消息分布状态存储器中查询与所述消息处理请求中的主题相对应的存储分区信息,并经由所述传输接口将所查询到的存储分区信息发送给相应消息处理设备;以及消息位置管理器,被配置为处理通过所述传输接口接收的、来自消息处理设备的消息位置查询请求,从所述消息分布状态存储器中获取与该消息位置查询请求中的存储分区相对应的存储分区的当前要处理消息的位置信息、并经由所述传输接口发送给相应消息处理设备;以及被配置为处理通过所述传输接口接收的、来自消息处理设备的消息位置更新请求,基于所述消息位置更新请求中的消息大小,更新所述消息分布状态存储器中、与所述消息位置更新请求中的存储分区相对应的存储分区的当前要处理消息的位置信息。...

【技术特征摘要】

【专利技术属性】
技术研发人员:代兵陈超桂勇哲朱超王超
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1