7

netflix を構築していて、各ビューをユーザー ID とムービー ID でログに記録したいとします。

形式は、viewID、userID、timestamp、

ただし、これをスケーリングするために、1 秒間に 1000 ビューを取得していると仮定します。これらのビューを SQS のキューに入れ、キュー リーダーが 1 つずつキューを解除して、それを mysql データベースに書き込むのは理にかなっていますか。このようにして、データベースが書き込み要求で過負荷になることはありません。

これはうまくいくように見えますか?

4

1 に答える 1

7

ファイサル、

これは妥当なアーキテクチャです。ただし、SQS への書き込みは、RabbitMQ (または任意のローカル) メッセージ キューなどへの書き込みよりも何倍も遅くなることを知っておく必要があります。

デフォルトでは、SQS FIFO キューは、バッチ処理を使用して 1 秒あたり最大 3,000 メッセージをサポートするか、バッチ処理を使用しないで 1 秒あたり最大 300 メッセージ (1 秒あたり 300 の送信、受信、または削除操作) をサポートします。制限の引き上げをリクエストするには、サポート リクエストを提出する必要があります。

そうは言っても、SQS は使いやすくデバッグも簡単なので、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 に答える