5

我想使用 AWS lambda 函数来扇出每个用户的活动流信息并将其插入到 firebase 端点。

我应该使用 Kinesis、SQS 还是 SNS 来触发这个用例的 lambda 函数?可以从服务器触发对活动流的更新,并且客户端应该接近实时(在 60 秒左右)接收更新。

我认为我对什么是 SQS 有一个很好的了解,并且过去使用过 Kinesis,但对 SNS 不太确定。

如果我们为每个用户创建一个 SNS 主题,然后每个关注者都使用 AWS lambda 函数订阅这些主题 - 那会奏效吗?

以编程方式为每个用户创建主题和订阅并分别关注关系是否有意义?

4

1 回答 1

3

像往常一样,对此类问题的回答主要是“这取决于您的用例”。

Kinesis vs SQS:

如果您的客户关心事件之间的相对(例如基于时间戳)排序,您几乎肯定会选择 Kinesis。SQS 是一个尽力而为的 FIFO 队列,这意味着事件可能会乱序到达,这将由您的客户端来管理相对排序。

就延迟而言,我发现摄入到 Kinesis 中的数据可以在 300 毫秒内对其消费者可见。

SNS 什么时候能让你感兴趣?

(即使使用 SNS,您也必须使用 SQS)。如果您使用 SNS,很容易添加一个可以处理您的事件的新应用程序。例如,如果将来您决定将所有事件提取到例如 Elasticsearch 中以提供实时分析,那么您所要做的就是将另一个 SQS 队列添加到现有主题并编写消费者。

于 2015-07-04T01:37:42.420 回答