1

異なるWebサーバー間でデータを同期する必要があります。考え方は非常に基本的です。1つのサーバーで1つのエンティティを作成する場合、それを他のすべてのサーバーに送信する必要があります。それを行う正しい方法は何ですか?現在、2つのアプローチを評価しています。Amazonのsqsおよびsnsサービスと、いくつかのKey-Valueデータベース(memcachedやmemqueueなど)を使用したカスタム実装です。カスタム実装の一般的な落とし穴は何ですか?フィードバックをいただければ幸いです。

4

1 に答える 1

2

サーバーごとに新しいキューを作成し、各キューにデータを書き込むと、SQS は問題なく動作します。最大の欠点は、新しいメッセージをポーリングするために各サーバーが必要になることです。

メッセージを複数の場所にブロードキャストできるため、SNS はより効率的に機能します。ただし、これは 1 回限りの試みです。SNS が送信したときにマシンが通知を受信できない場合、SNS は再試行しません。

送信するメッセージの数やパフォーマンス要件は指定しませんが、SQS/SNS システムはローカルの memcache よりもはるかに遅くなる可能性があります (主にメッセージの送信とそれを受信するサーバーの間の遅延が原因です)。 /key-value サーバー ソリューション。

混合ソリューションは、永続ストア (SimpleDB など) を使用し、SNS を使用して、新しいデータが利用可能であることをサーバーに警告することです。

于 2011-07-18T12:07:22.660 に答える