CN104539512B - 一种分布式系统中用于消息传送的方法与装置 - Google Patents
一种分布式系统中用于消息传送的方法与装置 Download PDFInfo
- Publication number
- CN104539512B CN104539512B CN201410742726.2A CN201410742726A CN104539512B CN 104539512 B CN104539512 B CN 104539512B CN 201410742726 A CN201410742726 A CN 201410742726A CN 104539512 B CN104539512 B CN 104539512B
- Authority
- CN
- China
- Prior art keywords
- subsystem
- message
- subsystems
- messages
- batch
- 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.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明的目的是提供一种分布式系统中用于消息传送的方法和装置,该分布式系统包括多个子系统,其中包括一个第一子系统。该方法包括:各个子系统分别根据所接收的消息发送请求生成第一消息;各个子系统分别将一个或多个第一消息批量提供至所述第一子系统;所述第一子系统对所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息;所述第一子系统分别将排序后的所述一个或多个第二消息批量提供至各个子系统;所述各个子系统分别发送所获取的一个或多个第二消息中的各个第二消息。与现有技术相比,使用本发明,消息在跨子系统进行传送时均使用批量传送的方式,提高了消息的传送效率,并缩短了对于消息的响应时间。
Description
技术领域
本发明涉及消息传送领域,尤其涉及一种分布式系统中用于消息传送的方法与装置。
背景技术
当前,很多应用系统为缩短用户访问的响应时长,会在不同的机房多次部署,由此可能出现在不同机房部署的两个应用系统之间相互通信的场景。通常,可采用消息队列做为不同系统间的通信桥梁。在一些应用场景下,需要确保来自各个机房的应用系统的消息在发送到统一消息接收方时能够保持全局有序性。现有实现中,各个机房的应用系统通常可以把具有全局有序性需求的消息均首先发送至某个固定机房中的消息队列,然后由该固定机房中的消息队列来统一将各个消息跨机房发送至各个消息接收方。然而,由于各个机房的应用系统需要跨机房将消息发送至位于某个固定机房的消息队列,造成用户访问各个机房的应用系统时访问响应时间变慢。并且,由于该固定机房的消息队列又需要将各个消息跨机房发送至各个消息接收方,使得消息接收方接收消息并进行响应的时间变长。因此,在分布式系统中,如何提高消息传送的效率是一个值得研究的问题。
发明内容
本发明的目的是提供一种分布式系统中用于消息传送的方法与装置。
根据本发明的一个方面,提供一种分布式系统中用于消息传送的方法,其中,所述分布式系统包括多个子系统,其中所述多个子系统中包括一个第一子系统,其中,该方法包括:
-各个子系统分别根据所接收的消息发送请求生成第一消息;
-各个子系统分别将其所生成的一个或多个第一消息批量提供至所述第一子系统;
-所述第一子系统对所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息;
-所述第一子系统分别将排序后的所述一个或多个第二消息批量提供至各个子系统;
-所述各个子系统分别发送所获取的一个或多个第二消息中的各个第二消息。
根据本发明的另一个方面,提供一种在分布式系统中用于消息传送的装置,其中,所述分布式系统包括多个子系统,其中所述多个子系统中包括一个第一子系统,其中,该装置包括:
-在各个子系统中的用于根据所述子系统所接收的消息发送请求生成第一消息的装置;
-在各个子系统中的用于将其所生成的一个或多个第一消息批量提供至所述第一子系统的装置;
-在所述第一子系统中的用于对所述第一子系统所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息的装置;
-在所述第一子系统中的用于分别将排序后的所述一个或多个第二消息批量提供至各个子系统的装置;
-在各个子系统中的用于发送所述子系统所获取的一个或多个第二消息中的各个第二消息的装置。
与现有技术相比,本发明的各个子系统将各自生成的消息批量提供至第一子系统,并且各个第一子系统对各个消息进行排序并将经排序的消息再批量提供至各个子系统,然后各个子系统再分别发送所获取的经排序后的消息。由于消息在跨子系统进行传送时均使用批量传送的方式,提高了消息的传送效率,并缩短了对于消息的响应时间。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的实施例的一种分布式系统中用于消息传送的方法流程图;
图2示出根据本发明另一个方面的实施例的一种在分布式系统中用于消息传送的装置的示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的实施例的一种分布式系统中用于消息传送的方法流程图。其中,所述分布式系统包括多个子系统,其中所述多个子系统中包括一个第一子系统。此处,所述分布式系统包括各种具有分布式架构的系统。在一个实施例中,所述分布式系统中的各个子系统可以部署于不同地理位置。上述分布式系统的一个实例为跨机房部署的数据中心。
此处,第一子系统为各个子系统中的某个子系统。可以通过例如随机或事先指定等方式来确定各个子系统中的一个子系统为第一子系统。各个子系统也可以彼此通信以共同确定出第一子系统。此外,根据系统实际需要,还可以动态调整以将另一个子系统确定为第一子系统。
在下文中,为描述方便起见,假定该分布式系统包括子系统A以及子系统B。并且子系统B为第一子系统。
在步骤S11中,各个子系统分别根据所接收的消息发送请求生成第一消息。例如对于子系统A,其可根据来自子系统A的客户端的消息发送请求来生成第一消息。优选地,该子系统A的客户端可以与该子系统A位于同一地理位置。并且,在一个实施例中,子系统还可以将所生成的第一消息标记为例如“未排序”状态。假定在步骤S11中,子系统A生成第一消息MA1和MA2,子系统B生成第一消息MB1和MB2。
接着,在步骤S12中,各个子系统分别将其所生成的一个或多个第一消息批量提供至所述第一子系统。例如,接上例,子系统A和子系统B分别将其所生成的一个或多个第一消息批量提供至第一子系统,也即子系统B。此处,对于不同于该第一子系统的其他各个子系统,可以通过第一子系统的特定接口,或通过网络来将一个或多个第一消息批量发送至第一子系统。例如,子系统B可以通过网络将第一消息MB1和MB2发送至第一子系统。而对于第一子系统本身,其可以存储其自身所生成的一个或多个第一消息以供后续使用。例如,子系统A可以存储其自身所生成的第一消息MA1和MA2。本领域技术人员应理解,此处,对于提供第一消息的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个优选实施例中,各个子系统分别将其所生成的一个或多个第一消息定时批量提供至所述第一子系统。例如,各个子系统可以每10ms将其在该10ms期间所生成的一个或多个第一消息批量提供至所述第一子系统。应注意的是,子系统批量提供第一消息的该定时期间可以预先设定,也可以根据系统实际需要来动态调节。
接着,在步骤S13中,第一子系统对所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息。此处,第二消息意指对该第一消息进行了排序后所获得的消息。优选地,对于某个第一消息,可以在该第一消息中加入排序信息做为第二消息。更优选地,还可以将第二消息标记状态,例如“已排序”或“待发送”等,其可区别于第一消息的状态。在一个实施例中,各个子系统定时,例如每隔10ms,批量发送第一消息至第一子系统。相应地,第一子系统将在该10ms内所获取的各个第一消息进行排序以获得经排序的一个或多个第二消息。
在一个优选实施例中,第一子系统基于所获取的来自各个子系统的一个或多个第一消息的消息生成时间戳来对该所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息。在一个实施例中,消息生成时间戳可以为子系统接收到消息发送请求后生成该第一消息时的时间戳。在其他实施例中,消息生成时间戳也可以为例如消息发送请求所发送时的时间戳等其他与消息生成时间相关的时间戳。接上例,以子系统A所生成的第一消息MA1,MA2和子系统B所生成的第一消息MB1,MB2为例,第一子系统接收到上述各个第一消息之后,将按照子系统生成该第一消息的时间戳进行排序得到经排序后的第二消息,其按照时间戳先后顺序排序为M_A1,M_B1,M_A2,M_B2,其分别对应于MA1,MB1,MA2,MB2。
在步骤S14中,第一子系统将排序后的一个或多个第二消息批量提供至各个子系统。在一个实施例中,第一子系统将排序后的各个第二消息分别批量提供至各个子系统。例如,接上例,第一子系统将排序后的各个第二消息M_A1,M_B1,M_A2,M_B2分别批量提供至子系统A以及子系统B。由于第一子系统为子系统B,则对于子系统A,第一子系统将通过网络将各个第二消息发送至子系统A。而对于子系统B,第一子系统将存储该各个第二消息以供后续使用。本领域技术人员应理解,此处,对于提供第二消息的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个优选实施例中,第一子系统分别将排序后的一个或多个第二消息定时批量提供至各个子系统。例如,第一子系统可以每隔一定时间,如10ms,将该10ms内的经排序后的一个或多个第二消息定时批量提供至各个子系统。
在又一个优选实施例中,第一子系统首先基于排序后的一个或多个第二消息的消息来源,对各个子系统分别确定需要提供至该子系统的一个或多个第二消息。然后,第一子系统将需要提供至该子系统的一个或多个第二消息批量提供至该子系统。此处,第二消息的消息来源意指该第二消息所基于的第一消息由哪个子系统所生成。例如,对于第二消息M_A1,其基于第一消息MA1,该第一消息MA1由子系统A生成,因此该第二消息M_A1的消息来源为子系统A。第一子系统基于各个第二消息的消息来源,对于各个子系统可确定将消息来源不为该子系统的第二消息批量提供至该子系统。例如,第一子系统可将消息来源不为子系统A的第二消息M_B1以及M_B2批量提供至子系统A,将消息来源不为子系统B的第二消息M_A1以及M_A2批量提供至子系统B。
接着,在步骤S15中,各个子系统分别发送所获取的一个或多个第二消息中的各个第二消息。在一个实施例中,第一子系统将经排序的各个第二消息分别提供至各个子系统,则各个子系统分别发送从该第一子系统所接收的经排序的各个第二消息至该子系统的各个消息接收方。优选地,子系统的各个消息接收方与该子系统位于同一地理位置。例如,第一子系统将M_A1,M_B1,M_A2,M_B2分别提供至子系统A和子系统B,则子系统A发送M_A1,M_B1,M_A2,M_B2至该子系统A的各个消息接收方,并且子系统B发送M_A1,M_B1,M_A2,M_B2至该子系统B的各个消息接收方。
在一个优选实施例中,各个子系统中的每个子系统首先基于其所生成的一个或多个第一消息以及所获取的一个或多个第二消息,来确定该子系统的需要发送的一个或多个第二消息。然后,各个子系统中的每个子系统发送该子系统的所述需要发送的一个或多个第二消息中的各个第二消息。例如,如上文所述,第一子系统可以首先基于排序后的一个或多个第二消息的消息来源,对各个子系统分别确定需要提供至该子系统的一个或多个第二消息。然后,第一子系统将需要提供至该子系统的一个或多个第二消息批量提供至该子系统。例如,第一子系统将消息来源不为子系统A的第二消息M_B1以及M_B2批量提供至子系统A,将消息来源不为子系统B的第二消息M_A1以及M_A2批量提供至子系统B。子系统A基于其所生成的第一消息MA1、MA2以及所获取的第二消息M_B1、M_B2,确定其需要发送的第二消息为M_A1、M_A2、M_B1、M_B2,并可根据各个消息的消息生成时间戳来排序得到M_A1,M_B1,M_A2,M_B2。然后子系统A依次发送M_A1,M_B1,M_A2,M_B2。类似地,子系统B基于其所生成的第一消息MB1、MB2以及所获取的第二消息M_A1、M_A2,确定其需要发送的第二消息为M_A1、M_A2、M_B1、M_B2,并可根据各个消息的消息生成时间戳来排序得到M_A1,M_B1,M_A2,M_B2。然后子系统B依次发送M_A1,M_B1,M_A2,M_B2。
图2示出根据本发明另一个方面的实施例的一种分布式系统中用于消息传送的装置流程图。其中,所述分布式系统包括多个子系统,其中所述多个子系统中包括一个第一子系统。此处,所述分布式系统包括各种具有分布式架构的系统。在一个实施例中,所述分布式系统中的各个子系统可以部署于不同地理位置。上述分布式系统的一个实例为跨机房部署的数据中心。
此处,第一子系统为各个子系统中的某个子系统。可以通过例如随机或事先指定等方式来确定各个子系统中的一个子系统为第一子系统。各个子系统也可以彼此通信以共同确定出第一子系统。此外,根据系统实际需要,还可以动态调整以将另一个子系统确定为第一子系统。
本发明的用于消息传送的装置包括在各个子系统中的用于根据所述子系统所接收的消息发送请求生成第一消息的装置21,以下简称第一消息生成装置21,在各个子系统中的用于将该子系统所生成的一个或多个第一消息批量提供至所述第一子系统的装置22,以下简称第一消息提供装置22,在所述第一子系统中的用于对所述第一子系统所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息的装置23,以下简称排序装置23,在所述第一子系统中的用于分别将排序后的所述一个或多个第二消息批量提供至各个子系统的装置24,以下简称第二消息第一提供装置24,以及在各个子系统中的用于发送所述子系统所获取的一个或多个第二消息中的各个第二消息的装置25,以下简称消息发送装置25。
在下文中,为描述方便起见,假定该分布式系统包括子系统A以及子系统B。并且子系统B为第一子系统。
首先,各个子系统的第一消息生成装置21分别根据所接收的消息发送请求生成第一消息。例如对于子系统A,该子系统A的第一消息生成装置21可根据来自子系统A的客户端的消息发送请求来生成第一消息。优选地,该子系统A的客户端可以与该子系统A位于同一地理位置。并且,在一个实施例中,子系统的第一消息生成装置21还可以将所生成的第一消息标记为例如“未排序”状态。假定子系统A的第一消息生成装置21生成的第一消息为MA1和MA2,子系统B的第一消息生成装置21生成的第一消息为MB1和MB2。
接着,各个子系统的第一消息提供装置22分别将其所生成的一个或多个第一消息批量提供至所述第一子系统。例如,接上例,子系统A的第一消息提供装置22和子系统B的第一消息提供装置22分别将该子系统的第一消息生成装置21所生成的一个或多个第一消息批量提供至第一子系统,也即子系统B。此处,对于不同于该第一子系统的其他各个子系统,子系统的第一消息提供装置22可以通过第一子系统的特定接口,或通过网络来将一个或多个第一消息批量发送至第一子系统。例如,子系统B的第一消息提供装置22可以通过网络将第一消息MB1和MB2发送至第一子系统。而对于第一子系统本身,该子系统的第一消息提供装置22可以存储其自身所生成的一个或多个第一消息以供后续使用。例如,子系统A的第一消息提供装置22可以存储其自身所生成的第一消息MA1和MA2。本领域技术人员应理解,此处,对于提供第一消息的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个优选实施例中,各个子系统的第一消息提供装置22分别将其所生成的一个或多个第一消息定时批量提供至所述第一子系统。例如,各个子系统的第一消息提供装置22可以每10ms将其在该10ms期间所生成的一个或多个第一消息批量提供至所述第一子系统。应注意的是,子系统的第一消息提供装置22批量提供第一消息的该定时期间可以预先设定,也可以根据系统实际需要来动态调节。
接着,第一子系统的排序装置23对所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息。此处,第二消息意指对该第一消息进行了排序后所获得的消息。优选地,对于某个第一消息,第一子系统的排序装置23可以在该第一消息中加入排序信息做为第二消息。更优选地,第一子系统的排序装置23还可以将第二消息标记状态,例如“已排序”或“待发送”等,其可区别于第一消息的状态。在一个实施例中,各个子系统的第一消息提供装置22定时,例如每隔10ms,批量发送第一消息至第一子系统。相应地,第一子系统的排序装置23将在该10ms内所获取的各个第一消息进行排序以获得经排序的一个或多个第二消息。
在一个优选实施例中,第一子系统的排序装置23基于所获取的来自各个子系统的一个或多个第一消息的消息生成时间戳来对该所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息。在一个实施例中,消息生成时间戳可以为子系统接收到消息发送请求后生成该第一消息时的时间戳。在其他实施例中,消息生成时间戳也可以为例如消息发送请求所发送时的时间戳等其他与消息生成时间相关的时间戳。接上例,以子系统A的第一消息生成装置21所生成的第一消息MA1,MA2和子系统B的第一消息生成装置21所生成的第一消息MB1,MB2为例,第一子系统的排序装置23接收到上述各个第一消息之后,将按照子系统生成该第一消息的时间戳进行排序得到经排序后的第二消息,其按照时间戳先后顺序排序为M_A1,M_B1,M_A2,M_B2,其分别对应于MA1,MB1,MA2,MB2。
接着,第一子系统的第二消息第一提供装置24将排序后的一个或多个第二消息批量提供至各个子系统。在一个实施例中,第一子系统的第二消息第一提供装置24将排序后的各个第二消息分别批量提供至各个子系统。例如,接上例,第一子系统的第二消息第一提供装置24将排序后的各个第二消息M_A1,M_B1,M_A2,M_B2分别批量提供至子系统A以及子系统B。由于第一子系统为子系统B,则对于子系统A,第一子系统的第二消息第一提供装置24将通过网络将各个第二消息发送至子系统A。而对于子系统B,第一子系统的第二消息第一提供装置24将存储该各个第二消息以供后续使用。本领域技术人员应理解,此处,对于提供第二消息的相关描述仅为示例性而非限定性描述,存在其他各种实现方式而不背离本发明的精神或范畴,并以引用的方式包含于此。
在一个优选实施例中,第一子系统的第二消息第一提供装置24分别将排序后的一个或多个第二消息定时批量提供至各个子系统。例如,第一子系统的第二消息第一提供装置24可以每隔一定时间,如10ms,将该10ms内所获得的经排序后的一个或多个第二消息定时批量提供至各个子系统。
在又一个优选实施例中,第一子系统的第二消息第一提供装置24包括用于基于所述一个或多个第二消息的消息来源,对各个子系统分别确定需要提供至该子系统的一个或多个第二消息的装置,以下简称第二消息确定装置241(未示出),以及用于对各个子系统,将所述需要提供至该子系统的一个或多个第二消息批量提供至该子系统的装置,以下简称第二消息第二提供装置242(未示出)。
首先第一子系统的第二消息确定装置241基于排序后的一个或多个第二消息的消息来源,对各个子系统分别确定需要提供至该子系统的一个或多个第二消息。然后,第一子系统的第二消息第二提供装置242将需要提供至该子系统的一个或多个第二消息批量提供至该子系统。此处,第二消息的消息来源意指该第二消息所基于的第一消息由哪个子系统所生成。例如,对于第二消息M_A1,其基于第一消息MA1,该第一消息MA1由子系统A生成,因此该第二消息M_A1的消息来源为子系统A。第一子系统的第二消息确定装置241基于各个第二消息的消息来源,对于各个子系统可确定将消息来源不为该子系统的第二消息批量提供至该子系统。例如,第一子系统的第二消息确定装置241可将消息来源不为子系统A的第二消息M_B1以及M_B2批量提供至子系统A,将消息来源不为子系统B的第二消息M_A1以及M_A2批量提供至子系统B。
接着,各个子系统的消息发送装置25分别发送所获取的一个或多个第二消息中的各个第二消息。在一个实施例中,第一子系统的第二消息提供装置23将经排序的各个第二消息分别提供至各个子系统,则各个子系统的消息发送装置25分别发送从该第一子系统所接收的经排序的各个第二消息至该子系统的各个消息接收方。优选地,子系统的各个消息接收方与该子系统位于同一地理位置。例如,第一子系统的第二消息提供装置23将M_A1,M_B1,M_A2,M_B2分别提供至子系统A和子系统B,则子系统A的消息发送装置25发送M_A1,M_B1,M_A2,M_B2至该子系统A的各个消息接收方,并且子系统B的消息发送装置25发送M_A1,M_B1,M_A2,M_B2至该子系统B的各个消息接收方。
在一个优选实施例中,各个子系统中的每个子系统的消息发送装置25首先基于该子系统的第一消息生成装置21所生成的一个或多个第一消息以及该子系统所获取的一个或多个第二消息,来确定该子系统的需要发送的一个或多个第二消息。然后,各个子系统中的每个子系统的消息发送装置25发送该子系统的所述需要发送的一个或多个第二消息中的各个第二消息。例如,如上文所述,第一子系统的第二消息确定装置241可以首先基于排序后的一个或多个第二消息的消息来源,对各个子系统分别确定需要提供至该子系统的一个或多个第二消息。然后,第一子系统的第二消息第二提供装置242将需要提供至该子系统的一个或多个第二消息批量提供至该子系统。例如,第一子系统的第二消息第二提供装置242将消息来源不为子系统A的第二消息M_B1以及M_B2批量提供至子系统A,将消息来源不为子系统B的第二消息M_A1以及M_A2批量提供至子系统B。子系统A的消息发送装置25基于该子系统的第一消息生成装置21所生成的第一消息MA1、MA2以及该子系统所获取的第二消息M_B1、M_B2,确定需要发送的第二消息为M_A1、M_A2、M_B1、M_B2,并可根据各个消息的消息生成时间戳来排序得到M_A1,M_B1,M_A2,M_B2。然后子系统A的消息发送装置25依次发送M_A1,M_B1,M_A2,M_B2。类似地,子系统B的消息发送装置25基于该子系统的第一消息生成装置21所生成的第一消息MB1、MB2以及该子系统所获取的第二消息M_A1、M_A2,确定需要发送的第二消息为M_A1、M_A2、M_B1、M_B2,并可根据各个消息的消息生成时间戳来排序得到M_A1,M_B1,M_A2,M_B2。然后子系统B的消息发送装置25依次发送M_A1,M_B1,M_A2,M_B2。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个装置也可以由一个装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种分布式系统中用于消息传送的方法,其中,所述分布式系统包括多个子系统,其中所述多个子系统中包括一个第一子系统,其中,该方法包括:
-各个子系统分别根据所接收的消息发送请求生成第一消息;
-各个子系统分别将其所生成的一个或多个第一消息批量提供至所述第一子系统;
-所述第一子系统对所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息,其中包括所述第一子系统基于所获取的来自各个子系统的一个或多个第一消息的消息生成时间戳来对该所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息;
-所述第一子系统分别将排序后的所述一个或多个第二消息批量提供至各个子系统;
-所述各个子系统分别向与该子系统位于同一地理位置的消息接收方发送所获取的一个或多个第二消息中的各个第二消息。
2.根据权利要求1所述的方法,其中,所述各个子系统分别将其所生成的一个或多个第一消息批量提供至所述第一子系统的步骤包括:
-所述各个子系统分别将其所生成的一个或多个第一消息定时批量提供至所述第一子系统。
3.根据权利要求1-2中任一项所述的方法,其中,所述第一子系统分别将排序后的所述一个或多个第二消息批量提供至各个子系统的步骤包括:
-所述第一子系统分别将所述一个或多个第二消息定时批量提供至各个子系统。
4.根据权利要求1-2中任一项所述的方法,其中,所述第一子系统分别将排序后的所述一个或多个第二消息批量提供至各个子系统的步骤包括:
-所述第一子系统基于所述一个或多个第二消息的消息来源,对各个子系统分别确定需要提供至该子系统的一个或多个第二消息;
-对各个子系统,所述第一子系统将所述需要提供至该子系统的一个或多个第二消息批量提供至该子系统。
5.根据权利要求1-2中任一项所述的方法,其中,所述各个子系统发送所获取的一个或多个第二消息中的各个第二消息的步骤包括:
-所述各个子系统中的每个子系统基于其所生成的一个或多个第一消息以及所获取的一个或多个第二消息,来确定该子系统的需要发送的一个或多个第二消息;
-所述各个子系统中的每个子系统发送该子系统的所述需要发送的一个或多个第二消息中的各个第二消息。
6.一种在分布式系统中用于消息传送的装置,其中,所述分布式系统包括多个子系统,其中所述多个子系统中包括一个第一子系统,其中,该装置包括:
-在各个子系统中的用于根据所述子系统所接收的消息发送请求生成第一消息的装置;
-在各个子系统中的用于将该子系统所生成的一个或多个第一消息批量提供至所述第一子系统的装置;
-在所述第一子系统中的用于对所述第一子系统所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息的装置,其中包括在所述第一子系统中的用于基于所获取的来自各个子系统的一个或多个第一消息的消息生成时间戳来对该所获取的来自各个子系统的一个或多个第一消息进行排序以获得经排序的一个或多个第二消息的装置;
-在所述第一子系统中的用于分别将排序后的所述一个或多个第二消息批量提供至各个子系统的装置;
-在各个子系统中的用于向与该子系统位于同一地理位置的消息接收方发送所述子系统所获取的一个或多个第二消息中的各个第二消息的装置。
7.根据权利要求6所述的装置,其中,所述在各个子系统中的用于将该子系统所生成的一个或多个第一消息批量提供至所述第一子系统的装置包括:
-在各个子系统中的用于将该子系统所生成的一个或多个第一消息定时批量提供至所述第一子系统的装置。
8.根据权利要求 6-7中任一项所述的装置,其中,在所述第一子系统中的用于分别将排序后的所述一个或多个第二消息批量提供至各个子系统的装置包括:
-在所述第一子系统中的用于将所述一个或多个第二消息定时批量提供至各个子系统的装置。
9.根据权利要求6-7中任一项所述的装置,其中,所述在第一子系统中的用于分别将排序后的所述一个或多个第二消息批量提供至各个子系统的装置包括:
-在所述第一子系统中的用于基于所述一个或多个第二消息的消息来源,对各个子系统分别确定需要提供至该子系统的一个或多个第二消息的装置;
-在所述第一子系统中的用于对各个子系统,将所述需要提供至该子系统的一个或多个第二消息批量提供至该子系统的装置。
10.根据权利要求6-7中任一项所述的装置,其中,所述在各个子系统中的用于发送所述子系统所获取的一个或多个第二消息中的各个第二消息的装置用于:
-基于所述子系统所生成的一个或多个第一消息以及所获取的一个或多个第二消息,来确定所述子系统的需要发送的一个或多个第二消息;
-发送所述子系统的所述需要发送的一个或多个第二消息中的各个第二消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410742726.2A CN104539512B (zh) | 2014-12-05 | 2014-12-05 | 一种分布式系统中用于消息传送的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410742726.2A CN104539512B (zh) | 2014-12-05 | 2014-12-05 | 一种分布式系统中用于消息传送的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104539512A CN104539512A (zh) | 2015-04-22 |
CN104539512B true CN104539512B (zh) | 2018-11-23 |
Family
ID=52854981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410742726.2A Active CN104539512B (zh) | 2014-12-05 | 2014-12-05 | 一种分布式系统中用于消息传送的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104539512B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018044334A1 (en) * | 2016-09-02 | 2018-03-08 | Iex Group. Inc. | System and method for creating time-accurate event streams |
CN108933966B (zh) * | 2017-05-27 | 2021-12-14 | 北京云中融信网络科技有限公司 | 请求消息处理方法、装置及系统、终端和存储介质 |
CN107783847A (zh) * | 2017-09-22 | 2018-03-09 | 平安科技(深圳)有限公司 | 数据发送方法及终端设备 |
CN109309583B (zh) * | 2018-08-30 | 2021-11-23 | 百度在线网络技术(北京)有限公司 | 基于分布式系统的信息获取方法、装置、电子设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1120768A (zh) * | 1995-09-05 | 1996-04-17 | 张向东 | 在公用电话网中分层次传输数据的方法和装置 |
CN1863008A (zh) * | 2006-06-20 | 2006-11-15 | 杭州华为三康技术有限公司 | 分布式系统中实现数据资源同步的方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377631B (zh) * | 2010-08-06 | 2015-08-05 | 北京乾唐视联网络科技有限公司 | 一种基于流量控制的数据传输方法及通信系统 |
-
2014
- 2014-12-05 CN CN201410742726.2A patent/CN104539512B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1120768A (zh) * | 1995-09-05 | 1996-04-17 | 张向东 | 在公用电话网中分层次传输数据的方法和装置 |
CN1863008A (zh) * | 2006-06-20 | 2006-11-15 | 杭州华为三康技术有限公司 | 分布式系统中实现数据资源同步的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104539512A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949158B2 (en) | Screenshot method and apparatus | |
CN104539512B (zh) | 一种分布式系统中用于消息传送的方法与装置 | |
CN110365752B (zh) | 业务数据的处理方法、装置、电子设备和存储介质 | |
WO2019072294A3 (en) | Achieving consensus among network nodes in a distributed system | |
CN107241380B (zh) | 用于基于时间调整的负载均衡的方法和设备 | |
JP6904064B2 (ja) | タスク配備プログラム、タスク配備方法、およびタスク配備装置 | |
JP2016505938A (ja) | ユーザに関連付けられている複数のデバイスに対する通知の送信 | |
WO2015161662A1 (zh) | 即时消息的处理方法和装置 | |
CN106603711B (zh) | 通信方法、系统及消息服务器 | |
US20140164332A1 (en) | Backup system and backcup method thereof | |
KR20150082932A (ko) | 가상 머신의 구성 관리 지원 장치 및 방법과, 그 구성 관리 지원 장치를 이용한 클라우드 서비스 중개 장치 및 방법 | |
CN110581784A (zh) | 一种节点健康检查方法、装置及设备 | |
CN106717068B (zh) | 一种nan设备之间的距离测量方法及nan设备 | |
CN108600407A (zh) | 一种ip地址分配方法、装置、设备及机器可读存储介质 | |
CN105430028A (zh) | 服务调用方法、提供方法及节点 | |
CN108632399A (zh) | 一种地址分配方法和装置 | |
WO2017133487A1 (zh) | 一种任务调度方法、装置和计算机存储介质 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN104079605A (zh) | 一种机群部署系统及机群部署方法 | |
CN108966034B (zh) | 虚拟物品显示方法、装置和存储介质 | |
JP6922241B2 (ja) | 情報処理装置、情報処理方法、プログラム、情報処理システム | |
CN103428273B (zh) | 在异步式交互中进行响应询问的方法与装置 | |
JP2017535899A (ja) | サービスデータを処理するための方法、装置、および、システム | |
CN106712990B (zh) | 服务部署方法和系统 | |
CN110545296A (zh) | 一种日志数据获取方法、装置及其设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |