dot Redis 8 来了——而且是开源的

了解更多

8.5.1 要流式传输的数据

返回主页

8.5.1 要流式传输的数据

当人们在我们的社交网络中执行各种操作时,这些操作会在定义我们的 API 的各种函数中看到。 特别是,我们花费了大部分时间来构建关注/取消关注用户以及发布/删除消息的功能。 如果我们构建了社交网络的其他部分,我们还会发现由于用户行为而发生的各种其他事件。 流式 API 旨在随着时间的推移生成这些事件序列,从而使客户端或其他服务可以了解整个网络中发生的某个子集。

在构建流式 API 的过程中,必须做出各种决定,这些决定通常可以归结为三个主要问题

  • 应该公开哪些事件?
  • 应该存在哪些访问限制(如果有)?
  • 应该提供哪些类型的过滤选项?

目前,我不会回答关于访问限制的第二个问题。 当我们根据对隐私和系统资源的期望构建社交网络时,我们需要回答这个问题。 但我会回答另外两个问题。

因为我们专注于发布/删除消息以及关注/取消关注用户,所以我们至少应该提供其中的一些事件。 为了现在保持简单,我们将只生成消息发布和删除事件。 但是,基于我们创建和传递的结构,添加对关注/取消关注事件或我们添加的其他操作的事件的支持应该很容易。

我们将提供的过滤选项类型将与 Twitter 在公共方面提供的 API 特性和功能显着重叠。 特别是,除了类似于 Twitter 的 *firehose* 和 *sample* 流的随机选择的消息子集之外,我们还将提供过滤消息的能力,该消息等效于关注(用户)、跟踪(关键字)和位置过滤器。

现在我们知道了可以访问哪些数据,让我们开始研究如何提供数据。