チャネル
チャネルはキュー内のエフェメラル宛先で、メッセージ処理の公平性の向上、メッセージ選択の指定およびリクエスト/レスポンス・パターンの有効化に使用できます。チャネルに公開されたメッセージは、キュー・レベルまたはチャネル・レベルの両方から消費できます。
チャネルにより、単一のキュー内のアドレス可能な個々の宛先の数が増え、より適切なスケーリングが可能になります。
チャネルを明示的に作成または削除する必要はありません。チャネルは親キューの権限、暗号化方法および制限を共有しますが、キューはチャネル容量を構成でき、1つのチャネルがいつでも使用できるキュー全体の容量の最大量を制限できます。
メッセージ処理の公平性
多くのプロデューサが同じキューに公開されている場合、あるプロデューサからボリュームが突然急増すると、他のプロデューサからのメッセージの処理が遅延する可能性があります。一部のシナリオでは、トラフィックが多いコンシューマまたはノイジー・ネイバーを優先して、スキューイングからメッセージ消費を保護する必要がある場合があります。
チャネルがないと、各プロデューサに対して個別のキューを維持し、すべてのプロデューサからメッセージを均等に消費するロード・バランシング・メカニズムを実装する必要があります。
チャネルを使用すると、各プロデューサは特定のチャネルにメッセージを公開できますが、キュー・レベルでメッセージを消費できます。キュー・サービスは、使用可能なメッセージがあるランダム・チャネルからメッセージを返し、公平性が向上します。
メッセージ選択
コンシューマは、一致するチャネルIDで公開されたメッセージを選択するリクエストにオプションのパラメータを含めることができます。キュー・サービスは、IDに一致するチャネルのいずれかから使用可能なメッセージのみを返します。
複数のチャネルIDがリクエストの選択と一致する場合、使用可能なメッセージがあるランダム・チャネルからメッセージが返されます。メッセージが特定のチャネルにパブリッシュされたが、消費リクエストにチャネルが含まれていない場合、メッセージはランダム・チャネルから、使用可能なメッセージとともに返されます。
詳細は、チャネルからのメッセージの消費を参照してください。
リクエスト- レスポンス・パターン
リクエスト/返信一時的パターンは確立された統合パターンであり、送信者アプリケーションがリクエストを送信できるようにし、受信者が送信者アプリケーションにレスポンスを正しく送信する方法を提供します。このパターンには通常、トランザクションの存続期間が短いキューのみが必要です。
キューおよびチャネルを使用すると、複数のアプリケーションが単一のキューにメッセージを送信し、自身を一意に識別するチャネルIDを指定できます。コンシューマ・アプリケーションは、メッセージ・プロデューサにレスポンスを送信し、そのIDを含めることができます。プロデューサが同じIDを含むレスポンスを受信すると、トランザクションは完了とみなされます。メッセージが正常に処理されてコンシューマによって削除された後、チャネルにメッセージが存在しなくなった場合、チャネルは自動的に削除されます。