セッション、自動転送、パーティション

Azure イベントベース・メッセージベースソリューションの開発

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

セッションの概要

Azure イベントベース・メッセージベースソリューションの開発

セッションの概要

  • セッション単位の順序保証
    • セッションIDで実装される
    • コンシューマーごとに1セッション
    • メッセージの順序が維持される
  • 軽量な状態管理により:
    • 再起動に対応する
    • クリーンなFIFOキューを実現する
    • 多数の同時セッションにスケールする

Service Bus セッション

Azure イベントベース・メッセージベースソリューションの開発

配信不能キューと自動転送

配信不能キュー

  • 処理に失敗したメッセージ
  • メインのメッセージパスをブロック解除する

自動転送

  • 別のキューまたはトピックへ送信される
  • 診断フローで使用される
  • 再試行に使用される

配信不能キュー

自動転送

Azure イベントベース・メッセージベースソリューションの開発

重複検出

  • ネットワーク接続が切断されることがある
    • メッセージの再送信が発生する
    • 重複処理は問題となる
  • 重複検出の方法:
    • 一意のメッセージIDを使用する
    • 時間ウィンドウと組み合わせる
    • 同じIDのメッセージを破棄する
  • 各メッセージは一度のみ処理される

重複検出の図

Azure イベントベース・メッセージベースソリューションの開発

高スループットのためのパーティション

Service Bus のパーティション

  • 複数のブローカーに分散される
    • メッセージが並列処理される
    • 耐障害性が向上する
  • 同じAPIを引き続き使用する
    • Service Bus が分散を管理する
    • 同じ接続文字列を使用する
Azure イベントベース・メッセージベースソリューションの開発

まとめ

Service Bus のまとめ

Azure イベントベース・メッセージベースソリューションの開発

では、練習しましょう!

Azure イベントベース・メッセージベースソリューションの開発

Preparing Video For Download...