一种分布式消息处理系统及其中的设备和方法

文档序号:9217082阅读:455来源:国知局
一种分布式消息处理系统及其中的设备和方法
【技术领域】
[0001] 本发明涉及消息处理领域,具体涉及一种分布式消息处理系统及其中的设备和方 法。
【背景技术】
[0002] 目前用于消息(如日志)处理的消息系统有很多,比较流行的是分布式消息系统。 分布式消息系统的具体形式有很多,如Spread、Kafka等。
[0003] 下面仅以常用的一种分布式消息系统Kafka为例进行说明。
[0004] Kafka是用于日志处理的分布式消息系统,主要针对日志数据容量大,但对可靠性 要求不是很高的业务。这些系统中的日志数据主要包括用户行为,例如,登录、浏览、点击、 分享以及喜欢等,还包括系统运行日志,例如,CPU(Central Processing Unit,中央处理 器)、内存、磁盘、网络、系统及进程等的运行状态。
[0005] 图1为相关技术中Kafka系统架构示意图。该Kafka系统包括以下四个角色: Producer(消息产生者,简称TO) 11、Broker(简称BK) 12、Consumer(消息处理者,简称 CS) 13以及Zooke印er(管理者,简称ZK) 14,每个角色都可以是多个。Consumer13在Kafka 系统中负责处理消息;Producer11在Kafka系统中负责产生消息;Broker12是Kafka系 统中用来存放消息的地方,负责接收Producer11发来的消息,当Consumer13有请求时, 将这些消息返回给Consumer13;ZooKeeper14是一个开放源码的分布式应用程序协调服 务,包含一个简单的原语集,是Hadoop和Hbase的重要组件,分布式应用可以使用它来实现 诸如:统一命名服务、配置管理、分布式锁服务、集群管理等功能。Producerll发送消息到 Broker12,消息持久化存储在Broker12上,Consumer13再从Broker12取得消息进行 处理。Zookeeper14 用来存储Producer11,Consumer13,与Broker12 的一些状态信息。
[0006] Kafka系统对消息的处理是采用pull(拉)的方式,每次由Consumer 13从Broker 12上获取要处理的消息。成功处理的消息的位置Offset由Consumer 13来保存。
[0007] 在上述消息处理方式中,Consumer13需要自己对成功处理的消息的位置Offset 进行管理、保存,Offset-般保存在Consumer13所属的消息处理设备的内存或者本地磁 盘上,当消息处理设备意外终止或者机器磁盘坏掉后,之前保存的Offset就丢失了。当重 新启动消息处理设备后,将从最近一次保存的Offset、或者从头开始消费,Consumer13无 法紧接上次成功处理的消息的位置继续对消息进行处理。

【发明内容】

[0008] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的分布式消息处理系统及其中的设备和方法。
[0009] 依据本发明的一个方面,提供了一种在分布式消息处理系统中的消息管理设备, 该分布式消息处理系统还包括一个或多个消息存储设备和一个或多个消息处理设备,其中 每条消息具有相应的主题,消息存储设备为相应主题建立一个或者多个存储分区,并且根 据消息的主题将消息存储在相应主题的存储分区之一中,消息管理设备包括:消息分布状 态存储器,被配置为至少存储每个消息存储设备中有关存储分区的信息、以及每个存储分 区中有关消息处理设备当前要处理的消息的位置信息;传输接口,被配置为接收消息处理 设备发送的消息处理请求,消息处理请求至少包括所请求处理消息的主题;分区状态查询 器,被配置为在消息分布状态存储器中查询与消息处理请求中的主题相对应的存储分区信 息,并经由传输接口将所查询到的存储分区信息发送给相应消息处理设备;以及消息位置 管理器,被配置为处理通过传输接口接收的、来自消息处理设备的消息位置查询请求,从消 息分布状态存储器中获取与该消息位置查询请求中的存储分区相对应的存储分区的当前 要处理消息的位置信息、并经由传输接口发送给相应消息处理设备;以及被配置为处理通 过传输接口接收的、来自消息处理设备的消息位置更新请求,基于消息位置更新请求中的 消息大小,更新消息分布状态存储器中、与消息位置更新请求中的存储分区相对应的存储 分区的当前要处理消息的位置信息。
[0010] 可选的,消息分布状态存储器中还存储有消息处理设备每次所要处理的消息的大 小;分区状态查询器还被配置为在消息分布状态存储器中查询相应消息处理设备所要处理 的消息的大小,并通过传输接口发送给相应消息处理设备。
[0011] 根据本发明的另一个方面,还提供了一种在分布式消息处理系统中的消息处理设 备,该分布式消息处理系统还包括一个或多个消息存储设备和消息管理设备,其中每条消 息具有相应的主题,消息存储设备为相应主题建立一个或者多个存储分区,并且根据消息 的主题将消息存储在相应主题的存储分区之一中,消息管理设备中存储有每个消息存储设 备中有关存储分区的信息以及每个存储分区中当前要处理的消息的位置信息,该消息处理 设备包括:存储信息获取器,被配置为生成消息处理请求,消息处理请求至少包括所请求处 理消息的主题;传输接口,被配置为将消息处理请求发送给消息管理设备,并接收消息管理 设备发送的与消息处理请求中的主题相对应的一个或者多个存储分区信息;消息位置管理 器,被配置为选择存储分区信息之一,从消息管理设备中获取所选择的存储分区的当前要 处理消息的位置信息;以及消息获取器,被配置为生成消息获取请求,消息获取请求包括所 请求处理消息的主题、所选择的存储分区、该存储分区的当前要处理消息的位置信息和所 要处理的消息大小;传输接口还被配置为将消息获取器生成的消息获取请求发送给该存储 分区所在的消息存储设备,以及接收该存储分区所在的消息存储设备发送的对应于消息获 取请求的消息。
[0012] 根据本发明的又一个方面,还提供了一种分布式消息处理系统,包括:如上的消息 管理设备;一个或者多个如上的消息处理设备;以及一个或多个消息存储设备。
[0013] 根据本发明的再一个方面,还提供了一种消息管理方法,该方法适于在分布式消 息处理系统中的消息管理设备上执行,该分布式消息处理系统还包括一个或多个消息存储 设备和一个或多个消息处理设备,其中每条消息具有相应的主题,消息存储设备为相应主 题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之 一中,消息管理方法包括:接收消息处理设备发送的消息处理请求,消息处理请求至少包括 所请求处理消息的主题;查询与消息处理请求中的主题相对应的存储分区信息,并将所查 询到的存储分区信息发送给相应消息处理设备,其中,消息管理设备中至少存储每个消息 存储设备中有关存储分区的信息、以及每个存储分区中有关消息处理设备当前要处理的消 息的位置信息;以及处理来自消息处理设备的消息位置查询请求,查询与该消息位置查询 请求中的存储分区相对应的存储分区的当前要处理消息的位置信息、并发送给相应消息处 理设备;以及处理来自消息处理设备的消息位置更新请求,基于消息位置更新请求中的消 息大小,更新与消息位置更新请求中的存储分区相对应的存储分区的当前要处理消息的位 置信息。
[0014] 可选的,上述消息管理方法还包括:查询相应消息处理设备所要处理的消息的大 小、并发送给相应消息处理设备,其中消息管理设备中还存储有消息处理设备每次所要处 理的消息的大小。
[0015] 根据本发明的又一个方面,还提供了一种消息处理方法,该方法适于在分布式消 息处理系统中的一个或者多个消息处理设备上执行,该分布式消息处理系统还包括一个或 多个消息存储设备和消息管理设备,其中每条消息具有相应的主题,消息存储设备为相应 主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区 之一中,消息管理设备中存储有每个消息存储设备中有关存储分区的信息以及每个存储分 区中当前要处理的消息的位置信息,该消息处理方法包括:生成消息处理请求,消息处理请 求至少包括所请求处理消息的主题;将消息处理请求发送给消息管理设备,并接收消息管 理设备发送的与消息处理请求中的主题相对应的一个或者多个存储分区信息;选择一个或 者多个存储分区信息之一,从消息管理设备中获取所选择的存储分区对应的当前要处理消 息的位置信息;生成消息获取请求,消息获取请求包括所请求处理消息的主题、所选择的存 储分区、该存储分区的当前要处理消息的位置信息和所要处理的消息大小;以及将消息获 取请求发送给该存储分区所在的消息存储设备,以及接收该存储分区所在的消息存储设备 发送的对应于消息获取请求的消息。
[0016] 本发明的技术方案在消息管理设备上存储有每个消息存储设备中有关存储分区 的信息、以及每个存储分区中有关消息处理设备当前要处理的消息的位置信息,当消息处 理设备获取要处理的消息时,只需从消息管理设备查询消息处理设备处理的主题下的消息 在消息存储设备上的存储分区信息,以及消息处理设备在相应的存储分区的当前要处理的 消息的位置信息,即可发送请求消息从消息存储设备获取消息进行处理,这样,即使消息处 理设备发生故障,在消息处理设备恢复正常后,仍然可以紧接上次成功处理消息的位置获 取消息进行处理,避免了消息的重复处理或遗漏。
[0017] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0018] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0019] 图1示出了一种Kafka系统架构示意图;
[0020] 图2示出了根据本发明一个实施例的分布式消息处理系统的示意图;
[0021] 图3示出了根据本发明一个实施例的消息存储设备内部存储结构的示意图;
[0022] 图4示出了根据本发明一个实施例的消息管理方法的流程图;以及 [0023] 图5示出了根据本发明一个实施例的消息处理方法的流程图。
【具体实施方式】
[0024] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1