用于递送实时消息的消息传递平台制造技术

技术编号:32866274 阅读:12 留言:0更新日期:2022-04-02 11:51
本公开涉及以如下方式根据与来自在消息传递平台上交换的大消息流的内容匹配的查询订阅来随着时间而向客户端应用流传输实时消息:该方式提高消息递送速度,有效地控制计算机资源的管理以处理活动查询订阅的数目的波动,并且/或者提高对照从作者视角生成的消息来匹配查询订阅的安全性,同时从发起查询订阅的用户视角实时地递送那些消息。的用户视角实时地递送那些消息。的用户视角实时地递送那些消息。

【技术实现步骤摘要】
【国外来华专利技术】用于递送实时消息的消息传递平台
[0001]相关申请的交叉引用
[0002]本申请是于2019年10月30日提交的美国非临时申请第16/669,044号和于2019年10月30日提交的美国非临时申请第16/668,811号的继续部分并要求它们的优先权,这两个申请要求于2019年8月6日提交的美国临时申请第62/883,633号的优先权,该申请的公开内容通过引用整体并入本文。
[0003]本申请还要求于2019年8月6日提交的美国临时专利申请第62/883,633号的优先权,该申请的公开内容通过引用整体并入本文。

技术介绍

[0004]社交媒体消息传递平台可以促进数百万或数亿条社交媒体消息在其用户当中的交换。在平台上交换的消息常常能够向平台的用户提供关于当前事件的最新更新或报告。在一些示例中,用户可以在平台上提交搜索并且接收结果流,使得用户能够随着时间而查看与一个或多个关键词匹配的消息。然而,在一段时间内匹配非常大消息流中的消息同时将那些消息实时地呈现给用户涉及诸如处理速度、计算机资源分配和安全性问题的复杂技术性技术挑战。

技术实现思路

[0005]本公开涉及以如下方式根据与来自在消息传递平台上交换的大消息流的内容匹配的查询订阅来随着时间而向客户端应用流传输实时消息:该方式提高消息递送速度,有效地控制计算机资源的管理以处理活动查询订阅的数目的波动,并且/或者提高对照从作者视角生成的消息来匹配查询订阅的安全性,同时从发起查询订阅的用户视角实时地递送那些消息。
[0006]为了建立客户端应用开始接收与活动查询相关的消息流的活动查询,客户端应用可以生成查询订阅请求(例如,GraphQL订阅查询)并且通过网络将其发送到消息传递平台的订阅执行器(例如,GraphQL引擎)以使订阅执行器生成查询订阅并且将该查询订阅提供给消息传递平台的事件产生器系统。另外,客户端应用可以生成订阅请求并将该订阅请求发送到输送引擎以在客户端应用与输送引擎之间创建递送信道。可以经由递送信道将由事件产生器系统匹配的消息流传输到客户端应用。以这种方式,查询订阅的管理通过使用两个单独的模块例如订阅执行器、输送引擎而与消息的递送分开,这可以提高从查询创建到实时消息的匹配然后再到实时消息到客户端的呈现的递送速度。另外,在一些示例中,由于生成了两个订阅(例如,一个在订阅执行器处,并且一个在输送引擎处),所以这可以建议客户端应用将必须在订阅执行器和输送模块两者处更新。然而,如本公开中稍后讨论的,客户端应用可以与输送引擎一起更新,并且消息传递平台的结构可以使得查询订阅在输送引擎和订阅执行器处更新,从而减少在客户端应用与消息传递平台之间传送以维持查询订阅的通信量。此外,消息传递平台可以能够针对大消息流(例如,每秒超过50k条消息)执行来自数千个客户端应用的查询订阅并且每秒向客户端应用递送几万条消息。
[0007]可能不要求用户刷新用户界面或者提交在用户界面上查看新消息的另一请求,而是相反响应于其它用户在消息传递平台上张贴与查询订阅相匹配的消息而将该消息推送到用户的用户界面。例如,用户可以键入诸如“dog(狗)”的搜索词语以生成活动查询,然后接收包括搜索词语“dog”的消息流,并且随着新消息被创建并张贴到消息传递平台而继续接收包括搜索词语“dog”的消息,直到活动查询期满为止。与在提交静态查询(例如,响应于搜索请求而接收web结果的列表)的时刻附近提供一次结果的静态查询相反,用户可以在活动查询的提交之后继续查看已匹配的内容(并且直到活动查询期满为止)。
[0008]事件产生器系统包括事件产生器管理器和多个事件产生器,该多个事件产生器被配置成同时地执行查询订阅以标识匹配内容。事件产生器管理器从订阅执行器接收查询订阅并且将查询订阅指配给一个或多个事件产生器,使得查询订阅被存储在所指配的事件产生器处。在一些示例中,事件产生器管理器可以管理事件产生器的配置,例如,引起查询订阅的存储和移除,以控制事件产生器系统处的计算资源。例如,事件产生器管理器可以从事件产生器移除期满的(或有错误的)查询订阅,并且当在事件产生器管理器处接收到新查询订阅时指配它们。所指配的事件产生器响应于来自消息队列的消息与查询订阅相匹配而生成响应事件。响应事件可以标识具有与查询订阅相匹配的内容的消息。
[0009]订阅执行器接收响应事件,用从发起查询订阅的用户视角的数据生成由响应事件标识的消息,并且将这些消息提供给输送引擎以经由递送信道来递送。例如,消息队列中的消息已从其作者视角生成。然而,可能要求被递送到客户端应用的消息具有从发起请求的用户视角的数据。订阅执行器可以在消息已由事件产生器系统匹配之后但在由输送引擎递送之前生成消息(例如,水合(hydrate)消息并对其应用可见性规则)。以这种方式,如果匹配消息的作者已限制(例如,阻挡或禁言)发起查询订阅的用户,则订阅执行器可以丢弃该消息,从而提高消息传递平台的安全性。此外,在一些示例中,由于响应事件可以仅包括用户已为订阅而请求的数据,所以在事件总线上发布的数据量可以减少,从而使得不向客户端发送额外的数据,这可以帮助节省带宽以每秒流传输更多事件。
[0010]在一些示例中,可以将事件产生器分组成多个事件产生器组,其中每个事件产生器组接收完整消息流。每个产生器组包括多个事件产生器,其中每个事件产生器接收完整消息流的单独部分。每个事件产生器组被分配了查询订阅的单独部分。事件产生器管理器可以将订阅查询指配给事件产生器组,其中组中的每个事件产生器存储并执行查询订阅。在一些示例中,事件产生器管理器可以将订阅指配给第一事件产生器组和第二事件产生器组,使得如果在事件产生器组中的一个处处理查询订阅时存在错误,则能够维持查询订阅。以这种方式,系统能够通过增加或减少事件产生器组的数目和/或增加或减少每个组中的事件产生器的数目来容易地控制事件产生器系统处的响应量以处理(to account for)查询订阅和响应事件的波动量。例如,响应于单个事件产生器组中的事件产生器的数目在增加,每个个体事件产生器可以从消息流接收更少消息来处理,并且因此可以具有更多计算能力来处理额外的搜索。响应于事件产生器组的数目在增加,分配给事件产生器的搜索词语的数目可以减少。
[0011]在一些示例中,事件产生器系统包括收集器服务,该收集器服务从事件产生器接收响应事件并且丢弃一个或多个响应事件以控制流传输速率,使得由响应事件标识的消息被以等于或低于流传输速率阈值的方式流传输到客户端。例如,如果以快速率流传输消息,
则用户可能无法消费流传输的消息。因此,收集器服务可以节流流传输速率,使得流传输消息的速率等于或小于阈值水平。例如,如果流传输速率阈值是每秒10条消息,则收集器服务可以在一秒时间间隔内丢弃超过了10条的那些响应事件。在一些示例中,收集器服务可以基于除了当响应事件被生成时的时间之外的其它属性丢弃消息。例如,收集器服务可以丢弃被预测为低质量或不当的消息以便以小于阈值的流传输速率提供消息。在一些示例中,收集器服务可以丢弃被预测成具有低参与度的消息以便以小于阈值的流传输速率提供消本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于在消息传递平台中处理查询订阅以用于递送实时消息的系统,所述系统包括:队列,所述队列包括在能够由服务器计算机执行的所述消息传递平台上交换的消息流,所述消息传递平台被配置成将消息流传输到能够由计算设备执行的客户端应用的用户界面;多个事件产生器;事件产生器管理器,所述事件产生器管理器被配置成接收查询订阅并且将所述查询订阅指配给所述多个事件产生器中的一个或多个事件产生器,每个事件产生器被配置成响应于来自所述消息流的满足所述查询订阅的消息而生成响应事件;以及收集器服务,所述收集器服务被配置成从所述多个事件产生器接收所述响应事件并且在响应事件总线上发布所述响应事件以被递送到所述客户端应用。2.根据权利要求1所述的系统,其中,所述收集器服务被配置成从所述多个事件产生器接收状态响应并且将所述状态响应存储在存储器缓存中,所述收集器服务被配置成通过查询在所述存储器缓存中的所述状态响应来周期性地确定所述查询订阅的健康状态,响应于所述健康状态被确定为可修复的,所述收集器服务被配置成从所述存储器缓存获得与所述订阅查询相关的订阅数据并且将所述订阅数据提供给一个或多个事件产生器以重启所述查询订阅。3.根据权利要求1

2中的任一项所述的系统,其中,所述事件产生器管理器包括被配置成经由thrift调用接收所述查询订阅的应用编程接口(API),并且所述API被配置成基于与所述查询订阅相关联的用户标识符将所述查询订阅指配给所述事件产生器中的一个或多个事件产生器。4.根据权利要求1

3中的任一项所述的系统,其中,所述事件产生器管理器被配置成监测在所述多个事件产生器处处理的查询订阅的数目和所述消息流的大小,并且基于所述查询订阅的数目和所述消息流的大小调整所述多个事件产生器的数目。5.根据权利要求1

4中的任一项所述的系统,其中,所述多个事件产生器被布置在事件产生器组中,并且所述事件产生器管理器被配置成将个体查询订阅指配给第一事件产生器组和第二事件产生器组。6.根据权利要求1

5中的任一项所述的系统,其中,响应于接收到新响应事件,所述收集器服务被配置成通过查询存储器缓存来确定针对所述查询订阅的所述响应事件是否已超过流传输速率阈值,所述收集器服务被配置成响应于所述流传输速率阈值被超过而丢弃所述新响应事件。7.根据权利要求1

6中的任一项所述的系统,其中,响应于接收到新响应事件,所述收集器服务被配置成确定所述新响应事件的消息标识符是否被存储在存储器缓存中,所述收集器服务被配置成响应于所述消息标识符未被存储在所述存储器缓存中而在所述响应事件总线上发布所述新响应事件,并且将所述新响应事件存储在所述存储器缓存中,所述收集器服务被配置成响应于所述消息标识符被存储在所述存储器缓存中而丢弃所述新响应事件。8.根据权利要求1

7中的任一项所述的系统,还包括:订阅执行器,所述订阅执行器被配置成响应于对于通过网络从所述客户端应用接收到
的查询订阅请求的接收而将所述查询订阅传送到所述事件产生器管理器;以及输送引擎,所述输送引擎被配置成响应于对于通过所述网络从所述客户端应用接收的订阅请求的接收而在所述输送引擎与所述客户端应用之间创建递送信道,使得由所述响应事件标识的所述消息在所述查询订阅处于活动的一段时间期间经由所述递送信道被流传输到所述客户端应用。9.根据权利要求8所述的系统,其中,所述订阅执行器订阅所述响应事件总线,其中,所述订阅执行器被配置成响应于所述响应事件被发布在所述响应事件总线上而确定由所述响应事件标识的消息的作者是否已限制与所述查询订阅的用户标识符相关联的用户,其中,所述订阅执行器被配置成响应于所述用户被确定为受所述作者限制而丢弃由所述响应事件标识的所述消息。10.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质存储可执行指令,当由至少一个处理器执行时,所述可执行指令被配置成使所述至少一个处理器:由事件产生器管理器接收要与包括在能够由服务器计算机执行的消息传递平台上交换的消息流的队列中的内容进行匹配的查询订阅,所述消息传递平台被配置成将消息递送到能够由计算设备执行的客户端应用的用户界面;由所述事件产生器管理器将所述查询订阅指配给多个事件产生器中的一个或多个事件产生器;由个体事件产生器响应于来自所述消息流的包括所述查询订阅的查询词语的消息而生成响应事件;由收集器服务从所述多个事件产生器接收所述响应事件;由所述收集器服务将所述响应事件存储在存储器缓存中;以及由所述收集器服务在响应事件总线上发布所述响应事件以被递送到所述客户端应用。11.根据权利要求10所述的非暂时性计算机可读介质,还包括:由所述收集器服务从所述事件产生器接收状态响应并且将所述状态响应存储在所述存储器缓存中;由所述收集器服务通过查询在所述存储器缓存中的所述状态响应来周期性地确定所述查询订阅的健康状态;响应于所述健康状态被确定为可修复的,从所述存储器缓存获得与所述订阅查询相关的订阅数据;并且将所述订阅数据提供给一个或多个事件产生器以重启所述查询订阅。12.根据权利要求10

11中的任一项所述的非暂时性计算机可读介质,其中,所述多个事件产生器被布置在事件产生器组中,并且基于使用与所述查询订阅相关联的用户标识符来执行模操作从而将所述查询订阅指配给事件产生器组。13.根据权利要求10

12中的任一项所述的非暂时性计算机可读介质,还包括:由所述收集器服务确定一段时间内的响应事件的数目是否已超过流传输速率阈值;以及由所述收集器服务响应于所述流传输速率阈值被超过而丢弃一个或多个响应事件。14.根据权利要求10

13中的任一项所述的非暂时性计算机可读介质,还包括:
由所述收集器服务确定由所述响应事件标识的消息是否已经被发布到响应事件总线;以及响应于所述消息被确定为已经被发布到所述响应事件总线而丢弃所述响应事件。15.根据权利要求10

14中的任一项所述的非暂时性计算机可读介质,还包括:由订阅执行器响应于对于通过网络从所述客户端应用接收到的查询订阅请求的接收而将所述查询订阅传送到所述事件产生器管理器;由输送引擎响应于对于通过所述网络从所述客户端应用接收到的订阅请求的接收而在所述输送引擎与所述客户端应用之间创建递送信道;由所述订阅执行器基于来自所述响应事件的消息标识符和与所述查询订阅相关联的用户标识符生成消息;以及由所述输送引擎在所述查询订阅处于活动的一段时间期间经由所述递送信道将所述消息流传输到所述客户端应用。16.一种用于在消息传递平台中处理查询订阅的方法,所述方法包括:由事件产生器管理器接收要与包括在能够由服务器计算机执行的消息传递平台上交换的消息流的队列中的内容进行匹配的查询订阅;由所述事件产生器管理器将所述查询订阅指配给多个事件产生器组中的一个事件产生器组,每个事件产生器组包括多个事件产生器,每个事件产生器组被配置成接收所述消息流的单独部分;由个体事件产生器响应于来自所述消息流的所述相应部分的包括所述查询订阅的查询词语的消息而生成响应事件;以及由收集器服务将所述响应事件发布到响应事件总线。17.根据权利要求16所述的方法,进一步包括:由所述收集器服务从所述事件产生器接收状态响应并且将所述状态响应存储在存储器缓存中;由所述收集器服务通过查询在所述存储器缓存中的所述状态响应来周期性地确定所述查询订阅的健康状态;响应于所述健康状态被确定为可修复的,从所述存储器缓存获得与所述订阅查询相关的订阅数据;并且将...

【专利技术属性】
技术研发人员:里什
申请(专利权)人:推特股份有限公司
类型:发明
国别省市:

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

1