ショートポーリングとロングポーリング

AWSのSQS(Simple Queue Service)の公式ドキュメントを読んでいるときに、「ショートポーリング」と「ロングポーリング」という言葉がでてきたので、調べてみました。

ショートポーリングとロングポーリングは、一般的なIT用語として広く使用されている概念です。

ショートポーリングとロングポーリングの一般的な定義

  • ショートポーリング:
    • ショートポーリングは、クライアントがサーバーに対して定期的にリクエストを送り、メッセージが存在するかどうかを確認する方法です。この方式では、サーバーは即座に応答し、メッセージがない場合は空のレスポンスを返します。これにより、サーバーへのリクエスト数が増加し、コストが高くなる可能性があります。
  • ロングポーリング:
    • ロングポーリングは、クライアントがサーバーにリクエストを送り、メッセージが利用可能になるまで接続を維持する方法です。サーバーは、メッセージが到着するか、指定されたタイムアウト時間が経過するまで応答を待ちます。この方式は、空のレスポンスを減らし、コスト効率を向上させることができます。

AWS SQSにおける使用

AWS SQSでは、これらのポーリング方式がメッセージの受信に利用されており、特にロングポーリングが推奨されています。ロングポーリングを使用することで、メッセージが到着した際に即座に受信できるため、効率的なメッセージ処理が可能になります。

これらの概念は、メッセージキューイングやデータ取得の効率を考える上で重要な要素です。

参考サイト

https://qiita.com/ss12345/items/fdf4a1bdfe3899b775fd

https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/best-practices-using-appropriate-polling-mode.html

https://stackoverflow.com/questions/51475944/is-sqs-short-polling-ever-preferable-to-long-polling

https://kazuqueue-tech.com/difference-short-long-polling/