7

假设我正在构建 netflix,我想通过用户 ID 和电影 ID 记录每个视图

格式为 viewID 、 userID 、 timestamp 、

然而,为了扩大规模,假设每秒获得 1000 次观看。将这些视图排队到 SQS 是否有意义,然后我们的队列读取器可以一一取消排队并将其写入 mysql 数据库。这样,数据库就不会因写请求而过载。

这看起来可行吗?

4

1 回答 1

7

费萨尔,

这是一个合理的架构;但是,您应该知道写入 SQS 会比写入 RabbitMQ(或任何本地)消息队列之类的东西慢很多倍。

默认情况下,SQS FIFO 队列支持每秒最多 3,000 条消息(带批处理)或每秒最多 300 条消息(每秒 300 次发送、接收或删除操作)(不带批处理)。要请求增加限制,您需要提交支持请求。

话虽如此,从 SQS 开始并不是一个坏主意,因为它易于使用和调试。

此外,您可能需要调查 MongoDB 的日志记录...查看以下参考资料:

MongoDB 非常适合记录日志

http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging

封顶集合

http://blog.mongodb.org/post/116405435/capped-collections

使用 MongoDB 进行实时分析

http://blog.mongodb.org/post/171353301/using-mongodb-for-real-time-analytics

于 2010-12-07T19:29:08.753 回答