開発日報

窓際エンジニアの開発備忘。日報は嘘です。

【マイクロサービス】メッセージブローカー概説

マイクロサービスにおける課題

複数サービスが直列に連携されている場合、

  • 直列に接続しているサービスのどれか1つがダウンすると、サービスとしての機能が正常に動作しなくなる
    • 稼働率が下がる
      • なので、直列に連携されているサービスがそれぞれ同期的何連携が不要なら、各サービスを並列に切り出して非同期で連携するようにする
        • 連携する際の他サービスのCallをメッセージブローカーを介して行う

キュー方式とPub/Sub方式

Aサービス(API)がBサービス(API)を呼び出す場合、、

  • キュー(Pull)方式 : Aサービスがメッセージブローカにメッセージを格納し、そのメッセージをBサービスがかくにんしにいく。
    • メリット:処理量が多くても対応できる。
    • デメリット:コンシューマー側によるメッセージブローカ確認頻度によってはタイムラグが発生する
  • Pub/Sub方式:メッセージブローカーが直接サービスBにデータをPUSHする。
    • メリット:リアルタイム性が高い。
    • デメリット:コンシューマー側のインターフェース変更の影響を受ける。処理が重くなるかも。