コンテンツにスキップ

配信保証

配信保証は、メッセージングシステムが処理するメッセージの配信をどの程度強く保証するかを定義します。

メッセージ配信に関する保証を強化するにつれて、システムはメッセージが配信されることを確認するために、より多くのチェックや確認を行う必要があります。また、メッセージが指定された回数だけ配信されることを保証するために状態を維持する必要があります。これにより、システムのレイテンシが増加し、全体的なスループットが低下します。各メッセージは、配信されたと見なされる前に、追加の内部確認や同等の数の追加往復を必要とする場合があります。

  • キューはデフォルトで少なくとも一度の配信を提供します。これは信頼性を最適化するためです。
  • これは、メッセージが少なくとも一度は配信されることが保証されており、稀に二度以上配信される可能性があることを意味します。
  • 大多数のアプリケーションにとって、これはメッセージを失うことなくエンドツーエンドのレイテンシを最小限に抑えるための適切なバランスです。なぜなら、正確に一度の配信は、どのメッセージングシステムにおいても追加のオーバーヘッドを伴うからです。

同じメッセージを複数回処理することが意図しない動作を引き起こす場合には、メッセージをキューに書き込む際にユニークIDを生成し、それをデータベースの挿入時の主キーや、処理後にメッセージを重複排除するための冪等性キーとして使用します。例えば、この冪等性キーを上流のメールAPIや支払いAPIのIDとして使用することで、これらのサービスがあなたの代わりに重複を拒否できるようになり、アプリケーション内で追加の状態を保持する必要がなくなります。