2012-12-03 33 views
138

SNSとSQSのどちらを使用するのか分かりませんが、なぜそれらは常に結合されていますか?Amazon SNSとAmazon SQSの違いは何ですか?

+0

は...それが正しい流れを以下に記述されていますか?発行元 - > SNS - > SQL(キュー内のメッセージを保持) - >購読者(現在オフライン) – friendyogi

+1

https://aws.amazon.com/blogs/aws/queues-and-notifications-now-best-friends/ –

答えて

226

SNSは、分散パブリッシュ・サブスクライブシステムです。メッセージはで、サブスクライバにはサブタイトルがパブリッシャからSNSに送信されます。 SQSは、キューイングシステムに配信されます。メッセージは受信者にプッシュされません。受信者はメッセージを受信するにはSQSを送信する必要があります。同時に複数の受信者がメッセージを受信することはできません。どの受信者もメッセージを受信し、処理して削除することができます。他の受信者は後で同じメッセージを受信しません。ポーリングは、SNSとは異なり、メッセージがすぐに加入者にプッシュされるのとは異なり、本質的にSQSのメッセージ配信にいくらかの遅延をもたらします。 SNSは、電子メール、SMS、httpエンドポイント、SQSなどのいくつかのエンドポイントをサポートしています。不明な番号とメッセージの受信者タイプが必要な場合は、SNSが必要です。

常にSNSとSQSを結合する必要はありません。 SNSに電子メール、SMS、またはhttpエンドポイントにメッセージを送信させることができます。 SNSとSQSの結合には利点があります。あなたは、外部のサービスがあなたのホストに接続することを望んでいないかもしれません(ファイアウォールは外部からあなたのホストへのすべての着信接続をブロックするかもしれません)。あなたのエンドポイントは、大量のメッセージのためにちょうど死ぬかもしれません。電子メールとSMSは、メッセージを素早く処理する選択肢ではないかもしれません。 SNSとSQSを組み合わせることで、あなたのペースでメッセージを受け取ることができます。これにより、クライアントはオフラインになり、ネットワークやホストの障害にも耐えられます。保証された配送も実現します。 httpエンドポイントまたは電子メールまたはSMSにメッセージを送信するようにSNSを設定すると、メッセージの送信に何回か失敗するとメッセージが削除される可能性があります。

SQSは、主にアプリケーションのデカップリングやアプリケーションの統合に使用されます。メッセージは短期間(最大14日間)SQSに保存できます。 SNSはいくつかのサブスクライバにいくつかのメッセージのコピーを配布します。たとえば、アプリケーションによって生成されたデータを複数のストレージシステムに複製するとします。 SNSを使用して、このデータを複数のサブスクライバに送信し、それぞれが受信したメッセージを異なるストレージシステム(s3、ホスト上のハードディスク、データベースなど)に複製することができます。 AWSドキュメントから

+1

基本的に、プッシュ通知メッセージのようなものを実装するには、SNSとSQSを使用することをお勧めします。そのため、snsのプッシュは、ユーザーがキューから取得するまでキューに入れられますか?ユーザーごとにキューを作成することは可能ですか? –

+0

うん。あなたはSNSのために必要な数の加入者を持つことができます。複数のキューに通知を送信することができます。 – Srikanth

+0

こんにちは申し訳ありませんが、この質問は古いですが、私はSQSについて知り、オフラインメッセージを保存しているのですか? APNSはオフラインメッセージを保存しないため、最新のメッセージのみが保存されます。 IOSデバイスがいつオフラインであり、オフラインメッセージをすぐに保存するかを知っていますか?また、デバイスがオンラインに戻った後に送信しますか? – John

15

アマゾンSNSは定期的にアップデートを確認または「ポーリング」する必要 を排除し、アプリケーションが「プッシュ」メカニズムを介して 複数の加入者にタイムクリティカルなメッセージを送信することができます。

アマゾンSQSは、ポーリングモデルを介してメッセージを交換する分散アプリケーション によって使用されるメッセージキューサービスであり、 デカップルが送信と同時に利用できるように各 コンポーネントを必要とせずにコンポーネントを収容するために使用することができます。私はあなたのコメントから理解何

http://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html

関連する問題