可扩展实时消息传送系统技术方案

技术编号:21519738 阅读:40 留言:0更新日期:2019-07-03 10:52
一种包括编码在计算机存储介质上的计算机程序的方法、系统和设备,用于平衡发布‑订阅系统中的负载。示例方法包括:至少部分基于负载数据来从多个托管节点中选择第一托管节点,所述负载数据是从表示所述多个托管节点上的负载的节点特定的数据和表示与通道相关联的负载的通道特定的数据的至少之一中选择的;将用以暂时托管所述通道的一部分的请求发送至所述第一托管节点;利用所述第一托管节点,通过暂时存储发布到所述通道的一个或多个消息、并且将向所述一个或多个消息的访问暂时提供至向所述通道的多个订户,来暂时托管通道部分;接收用以访问所述通道部分的请求;以及授予用以访问所述通道部分的许可。

Extensible Real-time Message Transfer System

【技术实现步骤摘要】
【国外来华专利技术】可扩展实时消息传送系统相关申请的交叉引用本申请要求2016年8月23日提交的美国专利申请15/244,380的优先权,其全部内容通过引用而被包含于此。
技术介绍
本说明书涉及数据通信系统,特别地涉及用于实现实时可扩展发布-订阅消息传送的系统。发布-订阅模式(或者“PubSub”)是利用软件系统实现的数据通信消息传送布置,其中,所谓的发布者将消息发布到主题,并且所谓的订户接收与他们所订阅的特定主题有关的消息。每个主题可以存在一个或多个发布者,并且发布者一般不知道什么样的订户(如果有的话)将接收到所发布的消息。一些PubSub系统不缓存消息或者具有小的缓存,这意味着订户可能不会接收到在订阅特定主题之前所发布的消息。在消息发布激增期间、或者随着特定主题的订户的数量增加,PubSub系统可能易受到性能不稳定性的影响。
技术实现思路
一般来说,本说明书所述的主题的一个方面可以体现在计算机实现的用于发布-订阅系统的负载平衡方法中。所述方法包括:至少部分基于负载数据来从多个托管节点中选择第一托管节点,所述负载数据是从表示所述多个托管节点上的负载的节点特定的数据和表示与通道相关联的负载的通道特定的数据的至少之一中选择的;将用以暂时托管所述通道的一部分的请求发送至所述第一托管节点;利用所述第一托管节点,通过暂时存储发布到所述通道的一个或多个消息、并且将向所述一个或多个消息的访问暂时提供至向所述通道的多个订户,来暂时托管通道部分;接收用以访问所述通道部分的请求;以及授予用以访问所述通道部分的许可。在特定示例中,所述节点特定的数据包括一个或多个负载度量,所述负载度量可以是或者包括,例如:各个托管节点正暂时托管的通道部分的数量;有许可访问各个托管节点的接口节点的数量;各个托管节点的数据接收速率;各个托管节点的数据发送速率;各个托管节点的存储利用率;以及/或者各个托管节点的处理速率。所述方法可以包括从所述多个托管节点接收所述节点特定的数据的至少一部分。替代地或者附加地,所述方法可以包括至少部分基于所接收到的用以访问通道部分的请求以及授予访问通道部分的许可,来确定所述节点特定的数据的至少一部分。在一些示例中,所述通道特定的数据包括一个或多个负载度量,所述负载度量可以是或者包括,例如:向所述通道的订户的数量;向所述通道的发布者的数量;向所述通道发布消息的速率;从所述通道读取消息的速率;有许可访问所述通道的接口节点的数量;以及/或者所述通道的通道部分大小。所述方法可以包括从托管节点和接口节点至少之一接收所述通道特定的数据的至少一部分。至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述节点特定的数据,来判断为在所述托管节点上的各个负载中所述第一托管节点上的负载最低;以及至少部分基于该判断来选择所述第一托管节点。在一些实例下,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述节点特定的数据,来判断为所述第一托管节点上的负载低于阈值负载水平;以及至少部分基于该判断来选择所述第一托管节点。在各种实现中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述节点特定的数据中的与所述第一托管节点相对应的部分和所述通道特定的数据中的与所述通道相对应的部分,来确定将由所述第一托管节点托管所述通道的部分产生的所述第一托管节点上的预期负载;判断为所述第一托管节点上的预期负载低于阈值负载水平;以及至少部分基于判断为所述第一托管节点上的预期负载低于所述阈值负载水平,来选择所述第一托管节点。所述通道部分可以包括所述通道的第一部分,所述通道可以包括第二部分,以及至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:判断为所述第一托管节点托管所述通道的第二部分;判断为所述第一托管节点上的负载低于阈值负载水平;以及至少部分基于判断为所述第一托管节点托管所述通道的第二部分并且所述第一托管节点上的负载低于所述阈值负载水平,来选择所述第一托管节点。在特定示例中,所述通道部分包括所述通道的第一部分,所述通道还包括第二部分,以及至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:判断为第二托管节点托管所述通道的第二部分;判断为所述第二托管节点上的负载高于阈值负载水平;判断为所述第一托管节点上的负载低于所述阈值负载水平;以及至少部分基于判断为所述第二托管节点上的负载高于所述阈值负载水平并且所述第一托管节点上的负载低于所述阈值负载水平,来选择所述第一托管节点。在一个示例中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述通道特定的数据的一部分,来确定与托管所述通道部分相关联的预期负载;至少部分基于所述节点特定的数据以及与托管所述通道部分相关联的预期负载,来判断为将所述通道部分托管在所述第一托管节点上将降低所述托管节点之间的负载分布的不均等;以及至少部分基于判断为将所述通道部分托管在所述第一托管节点上将降低所述托管节点之间的负载分布的不均等,来选择所述第一托管节点。在另一方面中,本说明的主题涉及一种具有接口节点、通道管理节点和多个托管节点的发布-订阅系统。所述系统能够操作以进行包括以下的操作:至少部分基于负载数据来从所述多个托管节点中选择第一托管节点,所述负载数据是从表示所述多个托管节点上的负载的节点特定的数据和表示与通道相关联的负载的通道特定的数据的至少之一中选择的;将用以暂时托管所述通道的一部分的请求发送至所述第一托管节点,其中所述第一托管节点通过暂时存储发布至所述通道的一个或多个消息、并且将向所述一个或多个消息的访问暂时提供至向所述通道的多个订户,来暂时托管通道部分;从所述接口节点接收用以访问所述通道部分的请求;以及将用以访问所述通道部分的许可授予至所述接口节点。在各种实例中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点的操作包括:至少部分基于所述节点特定的数据,来判断为在所述托管节点上的各个负载中所述第一托管节点上的负载最低;以及至少部分基于该判断来选择所述第一托管节点。至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点的操作可以包括:至少部分基于所述节点特定的数据,来判断为所述第一托管节点上的负载低于阈值负载水平;以及至少部分基于该判断来选择所述第一托管节点。在一些示例中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点的操作包括:至少部分基于所述节点特定的数据中的与所述第一托管节点相对应的部分和所述通道特定的数据中的与所述通道相对应的部分,来确定将由所述第一托管节点托管所述通道的部分产生的所述第一托管节点上的预期负载;判断为所述第一托管节点上的预期负载低于阈值负载水平;以及至少部分基于判断为所述第一托管节点上的预期负载低于所述阈值负载水平,来选择所述第一托管节点。在特定实现中,所述通道部分包括所述通道的第一部分,所述通道还包括第二部分,以及至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点的操作包括:判断为所述第一托管节点托管所述通道的第二部分;判断为所述第一托管节点上的负载低于阈值负载水平;以及至少部分基于本文档来自技高网...

【技术保护点】
1.一种计算机实现的负载平衡方法,其用于发布‑订阅系统,所述负载平衡方法包括:至少部分基于负载数据来从多个托管节点中选择第一托管节点,所述负载数据是从表示所述多个托管节点上的负载的节点特定的数据和表示与通道相关联的负载的通道特定的数据的至少之一中选择的;将用以暂时托管所述通道的一部分的请求发送至所述第一托管节点;利用所述第一托管节点,通过暂时存储发布到所述通道的一个或多个消息、并且将向所述一个或多个消息的访问暂时提供至向所述通道的多个订户,来暂时托管通道部分;接收用以访问所述通道部分的请求;以及授予用以访问所述通道部分的许可。

【技术特征摘要】
【国外来华专利技术】2016.08.23 US 15/244,3801.一种计算机实现的负载平衡方法,其用于发布-订阅系统,所述负载平衡方法包括:至少部分基于负载数据来从多个托管节点中选择第一托管节点,所述负载数据是从表示所述多个托管节点上的负载的节点特定的数据和表示与通道相关联的负载的通道特定的数据的至少之一中选择的;将用以暂时托管所述通道的一部分的请求发送至所述第一托管节点;利用所述第一托管节点,通过暂时存储发布到所述通道的一个或多个消息、并且将向所述一个或多个消息的访问暂时提供至向所述通道的多个订户,来暂时托管通道部分;接收用以访问所述通道部分的请求;以及授予用以访问所述通道部分的许可。2.根据权利要求1所述的负载平衡方法,其中,所述节点特定的数据包括从以下至少之一中选择的一个或多个负载度量:各个托管节点正暂时托管的通道部分的数量;有许可访问各个托管节点的接口节点的数量;各个托管节点的数据接收速率;各个托管节点的数据发送速率;各个托管节点的存储利用率;以及各个托管节点的处理速率。3.根据权利要求1所述的负载平衡方法,还包括:从所述多个托管节点接收所述节点特定的数据的至少一部分。4.根据权利要求1所述的负载平衡方法,还包括:至少部分基于所接收到的用以访问通道部分的请求以及所授予的访问通道部分的许可,来确定所述节点特定的数据的至少一部分。5.根据权利要求1所述的负载平衡方法,其中,所述通道特定的数据包括从以下至少之一中选择的一个或多个负载度量:向所述通道的订户的数量;向所述通道的发布者的数量;向所述通道发布消息的速率;从所述通道读取消息的速率;有许可访问所述通道的接口节点的数量;以及所述通道的通道部分大小。6.根据权利要求1所述的负载平衡方法,还包括:从托管节点和接口节点至少之一接收所述通道特定的数据的至少一部分。7.根据权利要求1所述的负载平衡方法,其中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述节点特定的数据,来判断为在所述托管节点上的各个负载中所述第一托管节点上的负载最低;以及至少部分基于该判断来选择所述第一托管节点。8.根据权利要求1所述的负载平衡方法,其中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述节点特定的数据,来判断为所述第一托管节点上的负载低于阈值负载水平;以及至少部分基于该判断来选择所述第一托管节点。9.根据权利要求1所述的负载平衡方法,其中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述节点特定的数据中的与所述第一托管节点相对应的部分和所述通道特定的数据中的与所述通道相对应的部分,来确定将由所述第一托管节点托管所述通道的部分产生的所述第一托管节点上的预期负载;判断为所述第一托管节点上的预期负载低于阈值负载水平;以及至少部分基于判断为所述第一托管节点上的预期负载低于所述阈值负载水平,来选择所述第一托管节点。10.根据权利要求1所述的负载平衡方法,其中,所述通道部分包括所述通道的第一部分,所述通道还包括第二部分,以及至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:判断为所述第一托管节点托管所述通道的第二部分;判断为所述第一托管节点上的负载低于阈值负载水平;以及至少部分基于判断为所述第一托管节点托管所述通道的第二部分并且所述第一托管节点上的负载低于所述阈值负载水平,来选择所述第一托管节点。11.根据权利要求1所述的负载平衡方法,其中,所述通道部分包括所述通道的第一部分,所述通道还包括第二部分,以及至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:判断为第二托管节点托管所述通道的第二部分;判断为所述第二托管节点上的负载高于阈值负载水平;判断为所述第一托管节点上的负载低于所述阈值负载水平;以及至少部分基于判断为所述第二托管节点上的负载高于所述阈值负载水平并且所述第一托管节点上的负载低于所述阈值负载水平,来选择所述第一托管节点。12.根据权利要求1所述的负载平衡方法,其中,至少部分基于所述负载数据来从所述多个托管节点中选择所述第一托管节点包括:至少部分基于所述通道特定的数据的一部分,来确定与托管所述通道部分相关联的预期负载;至少部分基于所述节点特定的数据以及与托管所述通道部分相关联的预期负载,来判断为将所述通道部分托管在所述第一托管节点...

【专利技术属性】
技术研发人员:L·瓦尔金F·E·林德
申请(专利权)人:萨托里环球有限责任公司
类型:发明
国别省市:美国,US

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

1