CN103034541B - 一种分布式消息系统及其中的设备和方法 - Google Patents

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

Info

Publication number
CN103034541B
CN103034541B CN201210464860.1A CN201210464860A CN103034541B CN 103034541 B CN103034541 B CN 103034541B CN 201210464860 A CN201210464860 A CN 201210464860A CN 103034541 B CN103034541 B CN 103034541B
Authority
CN
China
Prior art keywords
message
information
message processing
processing device
partition holding
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.)
Expired - Fee Related
Application number
CN201210464860.1A
Other languages
English (en)
Other versions
CN103034541A (zh
Inventor
代兵
陈超
桂勇哲
朱超
王超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210464860.1A priority Critical patent/CN103034541B/zh
Publication of CN103034541A publication Critical patent/CN103034541A/zh
Application granted granted Critical
Publication of CN103034541B publication Critical patent/CN103034541B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种分布式消息系统及其中的设备和方法,其中协调设备包括:第一监听器,被配置为监听在消息管理设备处登记的消息处理设备的相关信息;第一获取器,从消息管理设备获取处理特定主题消息的消息处理设备的信息;第二获取器,从消息管理设备获取存储特定主题消息的消息存储设备中的存储分区的信息;分配器,根据相关信息发生变化的消息处理设备涉及的消息主题,从第一获取器获取与消息主题相关的消息处理设备的信息以及从第二获取器获取与消息主题相关的存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果;结果输出器,将分配器的分配结果输出到消息管理设备。

Description

一种分布式消息系统及其中的设备和方法
技术领域
本发明涉及消息处理领域,具体涉及一种分布式消息系统及其中的设备和方法。
背景技术
目前用于消息(如日志)处理的消息系统有很多,比较流行的是分布式消息系统。分布式消息系统的具体形式有很多,如Spread、Kafka等。
下面仅以常用的一种分布式消息系统Kafka为例进行说明。
Kafka是用于日志处理的分布式消息系统,主要针对日志数据容量大,但对可靠性要求不是很高的业务。这些系统中的日志数据主要包括用户行为,例如,登录、浏览、点击、分享以及喜欢等,还包括系统运行日志,例如,CPU(Centra Processing Unit,中央处理器)、内存、磁盘、网络、系统及进程等的运行状态。
图1为相关技术中Kafka系统架构示意图。该Kafka系统包括以下四个角色:Producer(消息产生者,简称PD)11、Broker(简称BK)12、Consumer(消息处理者,简称CS)13以及Zookeeper(管理者,简称ZK)14,每个角色都可以是多个。Consumer 13在Kafka系统中负责处理消息;Producer 11在Kafka系统中负责产生消息;Broker12是Kafka系统中用来存放消息的地方,负责接收Producer 11发来的消息,当Consumer 13有请求时,将这些消息返回给Consumer13;ZooKeeper 14是一个开放源码的分布式应用程序协调服务,包含一个简单的原语集,是Hadoop和Hbase的重要组件,分布式应用可以使用它来实现诸如:统一命名服务、配置管理、分布式锁服务、集群管理等功能。Producer 11发送消息到Broker12,消息持久化存储在Broker12上,Consumer 13再从Broker12取得消息进行处理。Zookeeper 14用来存储Producer 11,Consumer 13,与Broker12的一些状态信息。
分布式消息系统基于消息的主题(Topic)来进行消息管理。在消息存储设备中也是基于Topic来进行存储的。每个Topic的消息可以存储在Broke 12的一个或多个存储分区(Partition)中。所有的Consumer 13以及每个Broker 12中存有哪些Topic,以及该Topic有多少个Partition都保存在Zookeeper上。在进行消息处理时,一般由多个Consumer 13相互协作处理某个主题的消息,在Zookeeper 14还存储有涉及该主题的每个Consumer 13所分配的进行消息处理的存储分区信息,每个存储分区只分配给一个Consumer 13进行消息处理。
当有Broker 12或者涉及同一主题的Consumer 13加入或者离开时,涉及同一主题的的Consumer 13会得到通知,然后每个Consumer 13所属的消息处理设备都会执行一个平衡策略(Rebalancing Algorithm),这样让涉及同一主题的所有消息处理设备达成一致——哪个消息处理设备处理哪些存储分区的消息。
在上述的方法中,平衡策略的执行发生在Broker 12发生变动、以及涉及同一主题的Consumer 13有变动时,这会导致Consumer 13所属的消息处理设备遭受惊群效应,因为消息处理设备在进行处理消息时时需要监听两个事件:(1)所处理Topic涉及的存储分区数(Broker 12增加或者减少时会导致存储分区数变动);(2)涉及同一主题的消息处理设备。因此,这两个事件中任何一个发生改变,都会引起所有的消息处理设备分别重新计算其应该处理的分区,而这是一个比较费时的操作。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的分布式消息系统及其中的设备和方法。
依据本发明的一个方面,提供了一种用于分布式消息系统的协调设备,分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和消息管理设备,其中每条消息具有相应的主题,消息存储设备为相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;消息管理设备中存储有与消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区相关的信息;协调设备包括:第一监听器,被配置为监听在消息管理设备处登记的消息处理设备的相关信息;第一获取器,被配置为从消息管理设备获取适于处理特定主题消息的消息处理设备的信息;第二获取器,被配置为从消息管理设备获取存储特定主题消息的消息存储设备中的存储分区的信息;分配器,被配置为在第一监听器所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,从第一获取器获取与消息主题相关的消息处理设备的信息以及从第二获取器获取与消息主题相关的存储分区的信息,并基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果;以及结果输出器,被配置为将分配器的分配结果输出到消息管理设备,以便更新每个消息处理设备的目标存储分区信息。
可选的,协调设备还包括:第二监听器,被配置为监听在消息管理设备处登记的消息存储设备的相关信息;其中分配器还被配置为在第二监听器所监听的信息发生变化时,对于信息发生变化的消息存储设备涉及的一个或者多个消息主题中的每个消息主题,从第一获取器获取与该消息主题相关的消息处理设备的信息以及从第二获取器获取与该消息主题相关的存储分区的信息,并基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果。
根据本发明的另一个方面,本发明还提供了一种用于分布式消息系统的消息管理设备,分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和协调设备,其中每条消息具有相应的主题,消息存储设备为每个相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;协调设备适于提供为消息处理设备分配进行消息处理的存储分区的分配结果;消息管理设备包括:信息存储器,被配置为至少存储向其登记的消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区的信息;检测器,被配置为在检测消息存储设备、消息处理设备的信息是否发生变化,并根据检测结果更新信息存储器中存储的消息存储设备、消息处理设备的信息;以及分配结果判断器,被配置为接收协调设备发送的分配结果,其中分配结果包括在信息存储器登记的某些消息处理设备所分配的处理消息的存储分区信息,判断分配结果中每个消息处理设备所分配的处理消息的存储分区信息与信息存储器中存储的该消息处理设备处理消息的目标存储分区的信息是否一致,若不一致,则对信息存储器中存储的该消息处理设备处理消息的目标存储分区的信息进行更新,并将更新后的信息发送通知给该消息处理设备。
根据本发明的又一个方面,还提供了一种分布式消息系统,包括:如上的协调设备;如上的消息管理设备;一个或多个存储消息的消息存储设备;以及一个或多个对消息进行处理的消息处理设备。
根据本发明的再一个方面,还提供了一种协调方法,适于在用于分布式消息系统的协调设备上执行,分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和消息管理设备,其中每条消息具有相应的主题,消息存储设备为相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;消息管理设备中存储有与消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区相关的信息;协调方法包括:监听在消息管理设备处登记的消息处理设备的相关信息;在所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,从消息管理设备获取与消息主题相关的消息处理设备的信息以及与消息主题相关的存储分区的信息;基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果;以及将分配结果发送给消息管理设备,以便更新每个消息处理设备的目标存储分区信息。
根据本发明的另一个方面,还提供了一种消息管理方法,适于在用于分布式消息系统的消息管理设备上执行,分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和协调设备,其中每条消息具有相应的主题,消息存储设备为每个相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;协调设备适于提供为消息处理设备分配进行消息处理的存储分区的分配结果;消息管理方法包括:检测登记的消息存储设备、消息处理设备的信息是否发生变化,并根据检测结果更新所存储的消息存储设备、消息处理设备的信息;接收协调设备发送的分配结果,其中分配结果包括登记的某些消息处理设备所分配的处理消息的存储分区信息,判断分配结果中每个消息处理设备所分配的处理消息的存储分区信息与所存储的该消息处理设备处理消息的目标存储分区的信息是否一致,若不一致,则对所存储的该消息处理设备处理消息的目标存储分区的信息进行更新,并将更新后的信息发送通知给该消息处理设备。
根据本发明的再一个方面,还提供了一种用于分布式消息系统的协调设备,分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和消息管理设备,其中每条消息具有相应的主题,消息存储设备为相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;消息管理设备中存储有与消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区相关的信息;协调设备包括:监听器,被配置为监听在消息管理设备处登记的消息管理设备的相关信息;第一获取器,被配置为从消息管理设备获取适于处理特定主题消息的消息处理设备的信息;第二获取器,被配置为从消息管理设备获取存储特定主题消息的消息存储设备中的存储分区的信息;分配器,被配置为在监听器所监听的信息发生变化时,根据相关信息发生变化的消息存储设备涉及的一个或者多个消息主题,从第一获取器获取与所涉及的一个或者多个消息主题中的每个消息主题相关的消息处理设备的信息以及从第二获取器获取与所涉及的一个或者多个消息主题中的每个消息主题相关的存储分区的信息,并基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果;以及结果输出器,被配置为将分配器的分配结果输出到消息管理设备,以便更新每个消息处理设备的目标存储分区信息。
根据本发明的又一个方面,还提供了一种分布式消息系统,包括:如上的协调设备;如上的消息管理设备;一个或多个存储消息的消息存储设备;以及一个或多个对消息进行处理的消息处理设备。
根据本发明的再一个方面,还提供了一种协调方法,适于在用于分布式消息系统的协调设备上执行,分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和消息管理设备,其中每条消息具有相应的主题,消息存储设备为相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;消息管理设备中存储有与消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区相关的信息;协调方法包括:监听在消息管理设备处登记的消息管理设备的相关信息;在所监听的信息发生变化时,根据相关信息发生变化的消息存储设备涉及的一个或者多个消息主题,从消息管理设备获取与所涉及的一个或者多个消息主题中的每个消息主题相关的消息处理设备的信息以及与所涉及的一个或者多个消息主题中的每个消息主题相关的存储分区的信息;基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果;将分配结果发送给消息管理设备,以便更新每个消息处理设备的目标存储分区信息。
本发明的技术方案通过监听在消息管理设备处登记的消息处理设备的相关信息,当所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,获取该消息主题相关的消息处理设备、存储分区的信息,重新为适于处理该消息主题的消息处理设备分配各自进行消息处理的存储分区,由于通过统一计算实现任务的分配,这样能保证每个存储分区的消息都能被处理到,而且不会出现同一存储分区的消息同时被分配给几个消息处理设备进行处理,避免了同一存储分区的消息被几个消息处理设备重复处理。
本发明的技术方案通过监听在消息管理设备处登记的消息存储设备的相关信息,当所监听的信息发生变化时,对于相关信息发生变化的消息存储设备涉及的一个或多个消息主题中的每个消息主题,获取该消息主题相关的消息处理设备、存储分区的信息,重新为适于处理该消息主题的消息处理设备分配各自进行消息处理的存储分区,由于通过统一计算实现任务的分配,这样能保证每个存储分区的消息都能被处理到,而且不会出现同一存储分区的消息同时被分配给几个消息处理设备进行处理,避免了同一存储分区的消息被几个消息处理设备重复处理。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为相关技术中Kafka系统架构示意图;
图2示出了根据本发明一个实施例的分布式消息系统的示意图;
图3为根据本发明一个实施例的消息存储设备内部存储结构的示意图;
图4示出了根据本发明一个实施例的适于用于分布式消息系统的协调设备上执行的协调方法的流程图;
图5示出了根据本发明一个实施例的适于用于分布式消息系统的消息管理设备上执行的消息管理方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图2示出了根据本发明一个实施例的分布式消息系统的示意图。如图所示,该分布式消息系统包括消息产生设备100、消息存储设备200、消息处理设备300、消息管理设备400和协调设备500。消息产生设备100、消息存储设备200和消息处理设备300分别可以为一个或多个,图2中仅示例性给出了两个消息产生设备100、两个消息存储设备200和两个消息处理设备300,本领域技术人员可以理解,本发明实施例对消息产生设备100、消息存储设备200和消息处理设备300的数目并没有限制,同样,本发明对其它部件的数量也没有任何限制。
消息产生设备100可以是网络设备、服务器、计算机或其它可以产生消息的任何设备,这里的消息可以是任何种类信息的数据,如日志数据。每条消息具有相应的主题,如该主题可以是某种具体的用户行为,如登录行为、浏览行为、点击行为、分享行为或者喜欢行为等,又如该主题可以是某种具体的系统运行日志,如CPU、内存、磁盘、网络、系统及进程的运行状态等。例如,在一个实施例中,消息产生设备100为网络服务器,在用户浏览该网络服务器的某网络页面时,该网络服务器随之产生一条主题为浏览该网络页面的消息。
在消息产生设备100产生消息后,将产生的消息发送给消息存储设备200。消息产生设备100向消息存储设备200发送消息时,可以随机发送,也可以根据用户指定的回调函数向指定消息存储设备200进行发送。
消息存储设备200接收到消息产生设备100发送的消息后,将接收到的消息进行存储。消息存储设备200有多种具体的存储方式,例如,消息存储设备200按照消息的主题进行存储。具体而言,可以为每个消息主题建立一个或多个存储分区,将接收到的每条消息存储在相应主题的存储分区之一中。
为了更好的介绍消息存储设备200的内部存储结构,请同时参看图3,其为根据本发明一个实施例的消息存储设备内部存储结构的示意图。在图3中,示出了第一消息存储设备2001、第二消息存储设备2002和第三消息存储设备2003,以及每个消息存储设备内部的消息存储路径。此外,还示出了与这些消息存储设备进行信息交互的第一消息产生设备1001和第二消息产生设备1002,以及第一消息处理设备3001和第二消息处理设备3002。
第一消息产生设备1001和第二消息产生设备1002产生的主题为Topic1以及Topic2的消息,会被发送到可以用来存储Topic1的消息和Topic2的消息的第一消息存储设备2001、第二消息存储设备2002和第三消息存储设备2003。
因为分布式消息处理系统基于消息的主题(Topic)来进行消息管理,所以相应的,在消息存储设备中也是基于Topic来进行存储的。每个Topic的消息可以存储在一个或多个存储分区(Partition)中,当存储在多个存储分区时,这些多个存储分区可以位于一个消息存储设备上,也可以位于多个消息存储设备上。在图3中,主题为Topic1的消息存储在第一消息存储设备2001中Topic1下的存储分区part1和存储分区part2、第二消息存储设备2002中Topic1下的存储分区part1和存储分区part2,以及第三消息存储设备2003中Topic1下的存储分区part1和存储分区part2。主题为Topic2的消息存储在第一消息存储设备2001中Topic2下的存储分区part1、第二消息存储设备2002中Topic2下的存储分区part1,以及第三消息存储设备2003中Topic2下的存储分区part1。存储分区中的消息id(Identity,身份标识)由其逻辑位置决定,即从消息id可直接定位到消息的存储位置,避免id到存储位置的额外映射。
上面通过图3详细介绍了图2中消息存储设备200的一种内部存储结构,下面再回到图2所示的实施例。消息存储设备200在运行时,向消息管理设备400登记,将其存储的消息涉及的一个或多个主题、涉及每个主题的存储分区信息、以及每次存储分区更新的信息发送给消息管理设备400,此外,还可将其物理位置标识发送给消息管理设备400,由消息管理设备400保存,其中存储分区更新包括该消息存储设备200上存储分区的增加或减少,物理位置标识可包括消息存储设备200的主机名、所在机房等信息。
为提高消息处理的效率,可将存储该主题的消息的存储分区分配给多个消息处理设备300进行消息处理,其中每个存储分区分配给一个消息处理设备300进行消息处理。消息处理设备300在运行时,向消息管理设备400登记,将其处理的消息主题以及所处理消息的目标存储分区的信息发送给消息管理设备400。此外,还可将其物理位置标识发送给消息管理设备400,由消息管理设备400保存,其中物理位置标识可包括消息处理设备300的主机名、所在机房等信息。
当处理某主题的消息的消息处理设备300加入或退出时,需要对涉及该主题的消息处理设备300处理消息的目标存储分区进行重新分配;以及当消息存储设备200加入或退出,或消息存储设备200的存储分区增加或减少时,将导致所涉及的一个或多个主题中每个主题的存储分区发生变化,也需要对涉及该主题的消息处理设备300处理消息的目标存储分区进行重新分配。而具体如何将涉及某主题的存储分区重新分配给多个消息处理设备300进行消息处理,将通过消息管理设备400和协调设备500相互协作来执行。
由于消息管理设备400中的各部件和协调设备500中的各部件信息交互较多,因此下面先概括介绍消息管理设备400中所包括的各部件,以及协调设备500包括的各部件,然后在具体信息交互过程中对涉及到的各部件再进行更详细的介绍。
消息管理设备400包括信息存储器402、检测器404和分配结果判断器406。协调设备500包括分配器504、第一获取器506、第二获取器508和结果输出器510,其中,在图2中还示出了第一监听器502和第二监听器512,协调设备500可以只包括第一监听器502或第二监听器512,也可以同时包括第一监听器502和第二监听器512。
消息管理设备400的检测器404检测向信息存储器402登记的消息存储设备200、消息处理设备300的信息是否发生变化,在具体实现时,可通过与消息存储设备200、消息处理设备300分别建立长连接,并定时检测该长连接是否断开来检测消息存储设备200、消息处理设备300是当前连接可用还是已退出,并根据检测结果更新信息存储器402中存储的消息存储设备200、消息处理设备300的信息。
第一监听器502监听在消息管理设备400的信息存储器402中登记的消息处理设备300的相关信息。当信息存储器402中消息处理设备300的相关信息发生更新时,将相关信息发生变化的消息处理设备300所涉及的消息主题发送给第一监听器502,其中消息处理设备300的相关信息包括消息处理设备300是否增加或删除、消息处理设备300要处理的消息主题是否改变等。消息存储设备200的相关信息包括消息存储设备200是否增加或删除、消息存储设备200的存储分区是否增加或删除等。第一监听器502将接收的相关信息发生变化的消息处理设备300所涉及的消息主题发送给分配器504,分配器504根据相关信息发生变化的消息处理设备300涉及的消息主题,通过第一获取器506从消息管理设备400的信息存储器402获取与该消息主题相关的消息处理设备300的信息,以及通过第二获取器508从消息管理设备400的信息存储器402获取与该消息主题相关的存储分区的信息。
第二监听器512监听在消息管理设备400的信息存储器402中登记的消息存储设备200的相关信息,当信息存储器402更新消息存储设备200的相关信息时,将相关信息发生变化的消息存储设备200所涉及的消息主题发送给第二监听器512。第二监听器512将接收的相关信息发生变化的消息存储设备200所涉及的一个或多个消息主题发送给分配器504,对于相关信息发生变化的消息存储设备200涉及的一个或多个消息主题中的每个消息主题,分配器504通过第一获取器506从消息管理设备400的信息存储器402获取与该消息主题相关的消息处理设备300的信息,以及通过第二获取器508从消息管理设备400的信息存储器402获取与该消息主题相关的存储分区的信息。
协调设备500的分配器504基于所获取的消息处理设备300的信息和存储分区的信息,重新计算为所获取的每个消息处理设备300分配进行消息处理的存储分区的分配结果。
具体而言,如果第一获取器506获取的消息处理设备300的信息包括消息处理设备300的物理位置标识,以及第二获取器508获取的存储分区的信息包括存储分区所在的消息存储设备200的物理位置标识,则分配器504可以根据所获取的涉及同一消息主题的消息处理设备300的物理位置标识和消息存储设备200的物理位置标识的比较结果,来将涉及该消息主题的消息存储设备200的存储分区分配给涉及该消息主题的消息处理设备300进行消息处理,例如,可以优先将消息存储设备200的存储分区分配给物理位置接近的消息处理设备300来进行处理,从而将消息存储设备200的存储分区分配给就近位置的消息处理设备300进行消息处理,如将消息存储设备200的存储分区分配给位于同一机房的消息处理设备300进行消息处理,这样,通过局域网即可进行数据传输,既可增加数据传输的速度,又避免了网络拥堵的出现。
如果一个消息存储设备200上具有涉及同一消息主题的多个存储分区,分配器504还可以优先将该消息存储设备200上涉及同一消息主题的多个存储分区分配给同一个消息处理设备300进行消息处理,这样可以提高数据传输的效率。
分配器504也可以根据涉及同一消息主题的消息处理设备300处理的消息处理量,将涉及该消息主题的消息存储设备200的存储分区分配给涉及该消息主题的消息处理设备300进行消息处理,使得每个消息处理设备300尽量获得数量相同的存储分区。例如,假定相关信息发生变化的消息处理设备300涉及某消息主题Topic(以下简称T),第一获取器506获取到涉及T的所有消息处理设备Ci,其中i为介于1到N的自然数,N为所获取的所有消息处理设备300的数量,Ci为随机排序;第二获取器508获取到涉及T的所有存储分区Pj,其中j为介于1到M的自然数,M为所获取的所有存储分区的数量,Pj的排序使得位于同一个消息存储设备200上的存储分区连在一起;则可以将i*Z到(i+1)*Z-1范围内的存储分区分配给消息处理设备Ci,Z为M/N采用收尾法得到的整数。
分配器504还可以在按照物理位置分配和/或将一个消息存储设备200上涉及同一消息主题的多个存储分区分配给同一个消息处理设备300后,根据涉及同一消息主题的消息处理设备300处理的消息处理量,再将涉及该消息主题的剩余的存储分区分配给没有获得处理任务的消息处理设备300,使得每个消息处理设备300尽量获得数量相同的消费分区。
协调设备500的结果输出器510将分配器504计算的分配结果输出到消息管理设备400的分配结果判断器406。分配结果判断器406判断接收的分配结果中每个消息处理设备300所分配的处理消息的存储分区信息与信息存储器402中存储的该消息处理设备300处理消息的目标存储分区的信息是否一致,若一致,则不需要任何操作,若不一致,则对信息存储器402中存储的该消息处理设备300处理消息的目标存储分区的信息进行更新,并将更新后的信息发送通知给该消息处理设备300,而消息处理设备300在收到更新后的信息后,从重新分配的存储分区获取消息进行处理。
上述实施例通过监听在消息管理设备处登记的消息处理设备的相关信息,当所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,获取该消息主题相关的消息处理设备、存储分区的信息,重新为适于处理该消息主题的消息处理设备分配各自进行消息处理的存储分区,由于通过统一计算实现任务的分配,这样能保证每个存储分区的消息都能被处理到,而且不会出现同一存储分区的消息同时被分配给几个消息处理设备进行处理,避免了同一存储分区的消息被几个消息处理设备重复处理。
与前述本发明一个实施例的分布式消息系统相对应,图4示出了根据本发明一个实施例的适于用于分布式消息系统的协调设备上执行的协调方法的流程图。该分布式消息系统包括一个或多个如图2实施例所描述的消息产生设备100、一个或多个如图2实施例所描述的消息存储设备200、一个或多个如图2实施例所描述的消息处理设备300、如图2实施例所描述的消息管理设备400以及如如图2实施例所描述的协调设备500。该协调方法适于在图2实施例所描述的协调设备500上执行。
该协调方法始于步骤S410,在步骤S410中,监听在消息管理设备处登记的消息处理设备和/或消息存储设备的相关信息。其中消息处理设备的相关信息包括消息处理设备是否增加或删除、消息处理设备要处理的消息主题是否改变等,消息存储设备的相关信息包括消息存储设备是否增加或删除、消息存储设备的存储分区是否增加或删除等。本步骤可以通过前述协调设备500中的第一监听器502和/或第二监听器512来执行,相关的技术实现可以参考前述协调设备500中的第一监听器502和/或第二监听器512在各实施例中的相关描述,此处不再赘述。
需要说明的是,在步骤S410中可以只监听消息处理设备的相关信息是否变化或只监听消息处理设备的相关信息是否变化;也可以同时监听消息处理设备、消息存储设备的相关信息是否变化,并可以设定在同时监听到监听消息处理设备、消息存储设备的相关信息发生变化时,优先处理消息存储设备或消息处理设备的相关信息发生变化的情况。
在步骤S410中所监听的信息发生变化时,进而在步骤S420中,对于相关信息发生变化的消息处理设备涉及的消息主题,或对于信息发生变化的消息存储设备涉及的一个或者多个消息主题中的每个消息主题,从消息管理设备获取与消息主题相关的消息处理设备的信息以及与消息主题相关的存储分区的信息。本步骤可以通过前述协调设备500中的第一获取器506或第二获取器508来执行,相关的技术实现可以参考前述协调设备500中的第一获取器506或第二获取器508在各实施例中的相关描述,此处不再赘述。
然后,在步骤S430中,基于步骤S420中所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果。本步骤可以通过前述协调设备500中的分配器504来执行,相关的技术实现可以参考前述协调设备500中的分配器504在各实施例中的相关描述,此处不再赘述。
具体而言,如果步骤S420中所获取的消息处理设备的信息包括消息处理设备的物理位置标识,所获取的存储分区的信息包括存储分区所在的消息存储设备的物理位置标识,在步骤S430中,可以根据所获取的涉及同一消息主题的消息处理设备的物理位置标识和消息存储设备的物理位置标识的比较结果来将涉及该消息主题的消息存储设备的存储分区分配给涉及该消息主题的消息处理设备进行消息处理,例如,可以优先将消息存储设备的存储分区分配给物理位置接近的消息处理设备来进行处理,从而将消息存储设备的存储分区分配给就近位置的消息处理设备进行消息处理,如将消息存储设备的存储分区分配给位于同一机房的消息处理设备进行消息处理,这样,通过局域网即可进行数据传输,既可增加数据传输的速度,又避免了网络拥堵的出现。
在步骤S430中,还可以优先将一个消息存储设备上涉及同一消息主题的多个存储分区分配给同一个消息处理设备进行消息处理,这样可以提高数据传输的效率。
在步骤S430中,也可以根据涉及同一消息主题的消息处理设备处理的消息处理量,将涉及该消息主题的消息存储设备的存储分区分配给涉及该消息主题的消息处理设备进行消息处理,使得每个消息处理设备尽量获得数量相同的存储分区。例如,假定相关信息发生变化的消息处理设备涉及某消息主题Topic(以下简称T),在步骤S420中获取到涉及T的所有消息处理设备Ci,其中i为介于1到N的自然数,N为所获取的所有消息处理设备的数量,Ci为随机排序;在步骤S420中获取到涉及T的所有存储分区Pj,其中j为介于1到M的自然数,M为所获取的所有存储分区的数量,Pj的排序使得位于同一个消息存储设备上的存储分区连在一起;则可以将i*Z到(i+1)*Z-1范围内的存储分区分配给消息处理设备Ci,Z为M/N采用收尾法得到的整数。
在步骤S430中,还可以在按照物理位置分配和/或将一个消息存储设备上涉及同一消息主题的多个存储分区分配给同一个消息处理设备后,再根据涉及同一消息主题的消息处理设备处理的消息处理量,将涉及该消息主题的剩余的存储分区分配给没有获得处理任务的消息处理设备,使得每个消息处理设备尽量获得数量相同的消费分区。
最后,在步骤S440中,将步骤S430中计算的分配结果发送给消息管理设备,以便更新每个消息处理设备的目标存储分区信息。本步骤可以通过前述协调设备500中的结果输出器510来执行,相关的技术实现可以参考前述协调设备500中的结果输出器510在各实施例中的相关描述,此处不再赘述。
上述实施例通过监听在消息管理设备处登记的消息处理设备的相关信息,当所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,获取该消息主题相关的消息处理设备、存储分区的信息,重新为适于处理该消息主题的消息处理设备分配各自进行消息处理的存储分区,由于通过统一计算实现任务的分配,这样能保证每个存储分区的消息都能被处理到,而且不会出现同一存储分区的消息同时被分配给几个消息处理设备进行处理,避免了同一存储分区的消息被几个消息处理设备重复处理。
与前述本发明一个实施例的分布式消息系统相对应,图5示出了根据本发明一个实施例的适于用于分布式消息系统的消息管理设备上执行的消息管理方法的流程图。该分布式消息系统包括一个或多个如图2实施例所描述的消息产生设备100、一个或多个如图2实施例所描述的消息存储设备200、一个或多个如图2实施例所描述的消息处理设备300、如图2实施例所描述的消息管理设备400以及如如图2实施例所描述的协调设备500。该消息管理方法适于在图2实施例所描述的消息管理设备400上执行。
该消息管理方法始于步骤S510。在步骤S510,检测登记的消息存储设备、消息处理设备的信息是否发生变化,并根据检测结果更新所存储的消息存储设备、消息处理设备的信息。其中消息处理设备的信息包括消息处理设备是否增加或删除、消息处理设备要处理的消息主题是否改变等。消息存储设备的信息包括消息存储设备是否增加或删除、消息存储设备的存储分区是否增加或删除等。此外,消息处理设备的信息还可以包括消息处理设备的物理位置标识,存储设备的信息还可以包括消息存储设备的物理位置标识。本步骤可以通过前述消息管理设备400中的检测器404来执行,相关的技术实现可以参考前述消息管理设备400中的检测器404在各实施例中的相关描述,此处不再赘述。
在步骤S520中,接收协调设备发送的分配结果,其中分配结果包括登记的某些消息处理设备所分配的处理消息的存储分区信息,判断分配结果中每个消息处理设备所分配的处理消息的存储分区信息与消息管理设备中存储的该消息处理设备处理消息的目标存储分区的信息是否一致,若不一致,则对消息管理设备所存储的该消息处理设备处理消息的目标存储分区的信息进行更新,并将更新后的信息发送通知给该消息处理设备。本步骤可以通过前述消息管理设备400中的分配结果判断器406来执行,相关的技术实现可以参考前述消息管理设备400中的分配结果判断器406在各实施例中的相关描述,此处不再赘述。
上述实施例通过监听在消息管理设备处登记的消息处理设备的相关信息,当所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,获取该消息主题相关的消息处理设备、存储分区的信息,重新为适于处理该消息主题的消息处理设备分配各自进行消息处理的存储分区,由于通过统一计算实现任务的分配,这样能保证每个存储分区的消息都能被处理到,而且不会出现同一存储分区的消息同时被分配给几个消息处理设备进行处理,避免了同一存储分区的消息被几个消息处理设备重复处理。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本说明书公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本申请可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

Claims (17)

1.一种用于分布式消息系统的协调设备,所述分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和消息管理设备,其中每条消息具有相应的主题,所述消息存储设备为相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;所述消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;所述消息管理设备中存储有与所述消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区相关的信息;所述协调设备包括:
第一监听器,被配置为监听在所述消息管理设备处登记的消息处理设备的相关信息;
第一获取器,被配置为从所述消息管理设备获取适于处理特定主题消息的消息处理设备的信息;
第二获取器,被配置为从所述消息管理设备获取存储特定主题消息的消息存储设备中的存储分区的信息;
分配器,被配置为在所述第一监听器所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,从所述第一获取器获取与所述消息主题相关的消息处理设备的信息以及从所述第二获取器获取与所述消息主题相关的存储分区的信息,并基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果;以及
结果输出器,被配置为将所述分配器的分配结果输出到所述消息管理设备,以便更新每个消息处理设备的目标存储分区信息。
2.如权利要求1所述的协调设备,其中所述协调设备还包括:
第二监听器,被配置为监听在所述消息管理设备处登记的消息存储设备的相关信息;
其中所述分配器还被配置为在所述第二监听器所监听的信息发生变化时,对于信息发生变化的消息存储设备涉及的一个或者多个消息主题中的每个消息主题,从所述第一获取器获取与该消息主题相关的消息处理设备的信息以及从所述第二获取器获取与该消息主题相关的存储分区的信息,并基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果。
3.如权利要求1或2所述的协调设备,其中第一获取器获取的消息处理设备的信息包括消息处理设备的物理位置标识,以及第二获取器获取的存储分区的信息包括存储分区所在的消息存储设备的物理位置标识,以及
所述分配器适于根据所获取的涉及同一消息主题的消息处理设备的物理位置标识和消息存储设备的物理位置标识的比较结果来将涉及该消息主题的消息存储设备的存储分区分配给涉及该消息主题的消息处理设备进行消息处理。
4.如权利要求3所述的协调设备,所述分配器适于优先将消息存储设备的存储分区分配给物理位置接近的消息处理设备来进行处理。
5.如权利要求1和2中任一项所述的协调设备,所述分配器适于优先将一个消息存储设备上涉及同一消息主题的多个存储分区分配给同一个消息处理设备进行消息处理。
6.如权利要求1和2中任一项所述的协调设备,所述分配器适于根据涉及同一消息主题的消息处理设备处理的消息处理量来为涉及该消息主题的所有消息处理设备分配进行消息处理的存储分区。
7.一种用于分布式消息系统的消息管理设备,所述分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和协调设备,其中每条消息具有相应的主题,所述消息存储设备为每个相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;所述消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;所述协调设备适于提供为所述消息处理设备分配进行消息处理的存储分区的分配结果;所述消息管理设备包括:
信息存储器,被配置为至少存储向其登记的消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区的信息;
检测器,被配置为在检测所述消息存储设备、消息处理设备的信息是否发生变化,并根据检测结果更新所述信息存储器中存储的消息存储设备、消息处理设备的信息;以及
分配结果判断器,被配置为接收所述协调设备发送的分配结果,其中所述分配结果为在所述协调设备监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,获取与所述消息主题相关的消息处理设备的信息以及存储分区的信息,并基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的信息;判断所述分配结果中每个消息处理设备所分配的处理消息的存储分区信息与所述信息存储器中存储的该消息处理设备处理消息的目标存储分区的信息是否一致,若不一致,则对所述信息存储器中存储的该消息处理设备处理消息的目标存储分区的信息进行更新,并将更新后的信息发送通知给该消息处理设备。
8.根据权利要求7所述的消息管理设备,所述消息处理设备的信息包括消息处理设备的物理位置标识,所述存储设备的信息包括消息存储设备的物理位置标识。
9.一种分布式消息系统,包括:
如权利要求1-6中任一项所述的协调设备;
如权利要求7-8中任一项所述的消息管理设备;
一个或多个存储消息的消息存储设备;以及
一个或多个对消息进行处理的消息处理设备。
10.一种协调方法,适于在用于分布式消息系统的协调设备上执行,所述分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和消息管理设备,其中每条消息具有相应的主题,所述消息存储设备为相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;所述消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;所述消息管理设备中存储有与所述消息存储设备、消息处理设备、以及消息处理设备处理消息的目标存储分区相关的信息;所述协调方法包括:
监听在所述消息管理设备处登记的消息处理设备的相关信息;
在所监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,从所述消息管理设备获取与所述消息主题相关的消息处理设备的信息以及与所述消息主题相关的存储分区的信息;
基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果;
将所述分配结果发送给所述消息管理设备,以便更新每个消息处理设备的目标存储分区信息。
11.如权利要求10所述的协调方法,其中所述协调方法还包括:
监听在所述消息管理设备处登记的消息存储设备的相关信息;
在所监听的信息发生变化时,对于信息发生变化的消息存储设备涉及的一个或者多个消息主题中的每个消息主题,从所述消息存储设备获取与该消息主题相关的消息处理设备的信息以及与该消息主题相关的存储分区的信息;
基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果。
12.如权利要求10或11所述的协调方法,其中所获取的消息处理设备的信息包括消息处理设备的物理位置标识,所获取的存储分区的信息包括存储分区所在的消息存储设备的物理位置标识;
所述基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果包括:根据所获取的涉及同一消息主题的消息处理设备的物理位置标识和消息存储设备的物理位置标识的比较结果来将涉及该消息主题的消息存储设备的存储分区分配给涉及该消息主题的消息处理设备进行消息处理。
13.如权利要求12所述的协调方法,其中优先将消息存储设备的存储分区分配给物理位置接近的消息处理设备来进行处理。
14.如权利要求10和11中任一项所述的协调方法,所述基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果包括:
优先将一个消息存储设备上涉及同一消息主题的多个存储分区分配给同一个消息处理设备进行消息处理。
15.如权利要求10和11中任一项所述的协调方法,所述基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的分配结果包括:
根据涉及同一消息主题的消息处理设备处理的消息处理量来为涉及该消息主题的所有消息处理设备分配进行消息处理的存储分区。
16.一种消息管理方法,适于在用于分布式消息系统的消息管理设备上执行,所述分布式消息系统还包括一个或者多个存储消息的消息存储设备、一个或者多个对消息进行处理的消息处理设备和协调设备,其中每条消息具有相应的主题,所述消息存储设备为每个相应的主题建立一个或者多个存储分区,并且根据消息的主题将消息存储在相应主题的存储分区之一中;所述消息处理设备适于处理在某主题下的一个或者多个存储分区中的消息;所述协调设备适于提供为所述消息处理设备分配进行消息处理的存储分区的分配结果;所述消息管理方法包括:
检测登记的消息存储设备、消息处理设备的信息是否发生变化,并根据检测结果更新所存储的消息存储设备、消息处理设备的信息;
接收所述协调设备发送的分配结果,其中所述分配结果为在所述协调设备监听的信息发生变化时,根据相关信息发生变化的消息处理设备涉及的消息主题,获取与所述消息主题相关的消息处理设备的信息以及存储分区的信息,并基于所获取的消息处理设备和存储分区的信息,重新计算为所获取的每个消息处理设备分配进行消息处理的存储分区的信息;判断所述分配结果中每个消息处理设备所分配的处理消息的存储分区信息与所存储的该消息处理设备处理消息的目标存储分区的信息是否一致,若不一致,则对所存储的该消息处理设备处理消息的目标存储分区的信息进行更新,并将更新后的信息发送通知给该消息处理设备。
17.根据权利要求16所述的消息管理方法,所述消息处理设备的信息包括消息处理设备的物理位置标识,所述存储设备的信息包括消息存储设备的物理位置标识。
CN201210464860.1A 2012-11-16 2012-11-16 一种分布式消息系统及其中的设备和方法 Expired - Fee Related CN103034541B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210464860.1A CN103034541B (zh) 2012-11-16 2012-11-16 一种分布式消息系统及其中的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210464860.1A CN103034541B (zh) 2012-11-16 2012-11-16 一种分布式消息系统及其中的设备和方法

Publications (2)

Publication Number Publication Date
CN103034541A CN103034541A (zh) 2013-04-10
CN103034541B true CN103034541B (zh) 2016-09-28

Family

ID=48021464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210464860.1A Expired - Fee Related CN103034541B (zh) 2012-11-16 2012-11-16 一种分布式消息系统及其中的设备和方法

Country Status (1)

Country Link
CN (1) CN103034541B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106371932B (zh) * 2013-10-11 2020-02-28 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
CN105991694B (zh) * 2015-02-05 2019-11-15 阿里巴巴集团控股有限公司 一种实现分布式服务调用的方法与设备
CN105204776B (zh) * 2015-08-18 2019-06-04 北京京东尚科信息技术有限公司 数据处理方法及装置
CN106911739B (zh) * 2015-12-23 2020-02-07 北京奇虎科技有限公司 一种信息分发方法及装置
CN108197233A (zh) * 2017-12-29 2018-06-22 飞狐信息技术(天津)有限公司 一种数据管理方法、中间件及数据管理系统
CN111818112B (zh) * 2019-04-11 2022-10-04 中国移动通信集团四川有限公司 一种基于Kafka系统的发送消息的方法和装置
CN110231991B (zh) * 2019-05-31 2022-03-08 新华三大数据技术有限公司 一种任务分配方法、装置、电子设备及可读存储介质
CN111741041B (zh) * 2019-07-10 2023-05-12 北京京东尚科信息技术有限公司 消息处理方法及其装置、电子设备及计算机可读介质
CN114629904B (zh) * 2022-02-15 2024-05-24 广州伊智信息科技有限公司 一种分布式事件的处理方法、系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102469033A (zh) * 2010-11-01 2012-05-23 阿里巴巴集团控股有限公司 一种消息订阅系统以及消息发送方法
CN102668516A (zh) * 2011-12-02 2012-09-12 华为技术有限公司 一种云消息服务中实现消息传递的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226226A1 (en) * 2006-03-23 2007-09-27 Elta Systems Ltd. Method and system for distributing processing of computerized tasks
US8214847B2 (en) * 2007-11-16 2012-07-03 Microsoft Corporation Distributed messaging system with configurable assurances
CN102577241B (zh) * 2009-12-31 2014-07-30 华为技术有限公司 分布式缓存资源调度的方法、装置及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102469033A (zh) * 2010-11-01 2012-05-23 阿里巴巴集团控股有限公司 一种消息订阅系统以及消息发送方法
CN102668516A (zh) * 2011-12-02 2012-09-12 华为技术有限公司 一种云消息服务中实现消息传递的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kafka: a Distributed Messaging System for Log Processing;Jay Kreps, Neha Narkhede, Jun Rao;《http://web.archive.org/web/*/http://research.microsoft.com/en-us/um/people/srikanth/netdb11/netdb11papers/netdb11-final12.pdf》;20111017;第6页左栏第35-42行,右栏第20-30行,第7页右栏第50行至第8页右栏第12行,算法1 *

Also Published As

Publication number Publication date
CN103034541A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN103034541B (zh) 一种分布式消息系统及其中的设备和方法
CN103034540B (zh) 分布式消息系统及其设备和协调方法
JP7057796B2 (ja) 分散システムにおける顧客志向ネットワークの限界
CN105224445B (zh) 分布式跟踪系统
US20200259889A1 (en) Distributed network services
US10560544B2 (en) Data caching in a collaborative file sharing system
CN104932941B (zh) 一种分布式消息处理系统及其中的设备和方法
CN102955717B (zh) 在分布式消息处理系统中的消息管理设备和方法
WO2012118878A1 (en) Capabilities based routing of virtual data center service request
KR20170106648A (ko) 대용량 네트워크 데이터의 처리 기법
CN107451147A (zh) 一种kafka集群动态切换的方法和装置
CN106980678A (zh) 基于zookeeper技术的数据分析方法及系统
CN106464746A (zh) 用以支持事件流处理系统中的故障转移的计算机系统
CN105183470B (zh) 一种自然语言处理系统化服务平台
US10498817B1 (en) Performance tuning in distributed computing systems
CN105872110B (zh) 一种云平台服务管理方法及装置
CN104216698B (zh) 一种注册网页方法及相关装置
US8606908B2 (en) Wake-up server
CN107741859A (zh) 基于国产cpu和os的软件包管理方法、装置及系统
US11388109B2 (en) Hierarchical capacity management in a virtualization environment
CN109951320A (zh) 一种面向云平台的可扩展多层次监控框架及其监控方法
CN116048467A (zh) 微服务开发平台及业务系统开发方法
US20130205019A1 (en) Systems and methods for managing api interactions
US9106676B1 (en) Grid-based server messaging infrastructure
Rotter et al. Telecom strategies for service discovery in microservice environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160928

Termination date: 20211116

CF01 Termination of patent right due to non-payment of annual fee