【技术实现步骤摘要】
【国外来华专利技术】用于向多个订户提供消息的系统和方法相关申请的交叉引用本申请要求2016年9月23日提交的美国专利申请15/274,281的优先权,其全部内容通过引用而并入于此。
技术介绍
本说明书涉及数据通信系统,特别地涉及用于实现实时、可扩展的发布-订阅消息传送的系统。发布-订阅模式(或者“PubSub”)是利用软件系统实现的数据通信消息传送布置,其中,所谓的发布者将消息发布到主题,并且所谓的订户接收与他们所订阅的特定主题有关的消息。每个主题可以存在一个或多个发布者,并且发布者一般不知道什么样的订户(如果有的话)将接收到所发布的消息。一些PubSub系统不缓存消息或者具有小的缓存,这意味着订户可能不会接收到在订阅特定主题之前所发布的消息。在消息发布激增期间、或者随着特定主题的订户的数量增加,PubSub系统可能易受到性能不稳定性的影响。
技术实现思路
在各种实现中,这里所描述的系统和方法利用共享结构(即,“快速缓冲器”)来存储多个订户可以同时读取的消息数据。为了避免与锁定相关联的问题,所述系统和方法利用“无锁”或非阻塞方法。订户能够在没有阻塞或者断定出从何处读取数据以及直到快速缓冲器中的哪个点的情况下抓取许多数据。所述系统和方法与现有方法相比提供了许多益处。例如,发布者不受订户或相关订阅逻辑的限制,并且与存在多少订户(如果有的话)无关地具有稳定的发布速度。系统的这种属性可以例如通过使发布和订阅组件和/或进程彼此无关来实现。在一些情况下,发布和订阅组件可以通过无锁存储器写入和读取(例如,使用这里所描述的快速缓冲器方法)来共享信息。可选地或另外,发布和订阅组件和/或进程可被配置为利用 ...
【技术保护点】
1.一种计算机实现的方法,包括:从多个发布者接收多个消息;将所述消息中的各消息分配给多个通道其中之一,其中各通道包括有顺序的多个消息;根据所述顺序将所述通道中的各通道的消息存储在一个或多个相应存储缓冲器中,其中各存储缓冲器具有第一持续时间的相应存活时间;对于特定通道,从相应存储缓冲器检索所述特定通道的消息;根据所述顺序将所述特定通道的检索消息存储在传递缓冲器中,所述传递缓冲器包括一个或多个数据块,其中各数据块具有第二持续时间的相应存活时间;以及将所述传递缓冲器中所存储的消息提供给所述特定通道的多个订户。
【技术特征摘要】
【国外来华专利技术】2016.09.23 US 15/274,2811.一种计算机实现的方法,包括:从多个发布者接收多个消息;将所述消息中的各消息分配给多个通道其中之一,其中各通道包括有顺序的多个消息;根据所述顺序将所述通道中的各通道的消息存储在一个或多个相应存储缓冲器中,其中各存储缓冲器具有第一持续时间的相应存活时间;对于特定通道,从相应存储缓冲器检索所述特定通道的消息;根据所述顺序将所述特定通道的检索消息存储在传递缓冲器中,所述传递缓冲器包括一个或多个数据块,其中各数据块具有第二持续时间的相应存活时间;以及将所述传递缓冲器中所存储的消息提供给所述特定通道的多个订户。2.根据权利要求1所述的方法,其中,将所述传递缓冲器中所存储的消息提供给所述特定通道的多个订户还包括:判断特定订户的连接状况;以及基于此,将所述传递缓冲器中所存储的消息中的一个或多个消息提供给所述特定订户。3.根据权利要求2所述的方法,其中,还包括:判断为所述特定订户具有到所述特定通道的既存连接;以及基于此,将所述传递缓冲器中所存储的一个或多个消息提供给所述特定订户,所述一个或多个消息包括具有已经期满的相应存活时间的一个或多个数据块中所存储的消息。4.根据权利要求2所述的方法,其中,还包括:判断为所述特定订户具有到所述特定通道的新连接,并且基于此:(i)将具有尚未期满的相应存活时间的一个或多个数据块中所存储的一个或多个消息提供给所述特定订户;以及(ii)防止所述特定订户接收具有已经期满的相应存活时间的一个或多个数据块中所存储的一个或多个消息。5.根据权利要求1所述的方法,其中,将所述特定通道的检索消息存储在所述传递缓冲器中包括:将所述特定通道中的顺序较前的检索消息存储在如下数据块中,其中所述数据块相比用于存储所述特定通道中的顺序较后的检索消息的数据块而言具有将会较早期满的存活时间。6.根据权利要求1所述的方法,其中,所述传递缓冲器包括所述数据块的链表,其中所述特定通道中的顺序最后的检索消息被存储在所述链表的尾数据块中。7.根据权利要求6所述的方法,其中,将所述特定通道的检索消息存储在所述传递缓冲器中还包括:从所述链表中移除所述链表头处的一个或多个数据块,其中所移除数据块具有已经期满的相应存活时间。8.根据权利要求1所述的方法,其中,所述传递缓冲器驻留在第一计算节点上;以及所述传递缓冲器中所存储的消息通过驻留在所述第一计算节点上的相应计算进程而被提供给所述多个订户中的各订户。9.根据权利要求8所述的方法,其中,所述存储缓冲器驻留在与所述第一计算节点不同的相应第二计算节点上。10.根据权利要求1所述的方法,其中,所述传递缓冲器包括可见区域和不可见区域。11.根据权利要求10所述的方法,其中,具有既存连接的订户被许可访问来自所述可见区域和所述不可见区域这两者的数据。12.根据权利要求10所述的方法,其中,具有新连接的订户被许可访问来自所述可见区域的数据,并且不被许可访...
【专利技术属性】
技术研发人员:I·米尔雅可夫,
申请(专利权)人:萨托里环球有限责任公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。