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/