アーキテクチャモデル:トレーディング送信トレイ

アーキテクチャモデル:トレーディング送信トレイ

言及されながら

アプリケーションイベント(システムイベント)

コンテキスト

serviceコマンドは通常、データベースを更新し、メッセージ/イベントを送信する必要があります。例えば、サービスのサガはアトミックデータベースを更新し、メッセージ/イベントを送信する必要が関与しました。同様に、発行ドメインのイベントサービスは、アトミック集約更新され、イベントを解放する必要があります。データベースの更新メッセージを送信しなければならないとの原子は、データの不整合やエラーを回避します。しかし、アトミックデータベースを更新し、メッセージ/イベントを公開する分散トランザクション間でデータベースやメッセージング剤の使用は現実的ではありません。

問題

どのように信頼性の高い/アトミックデータベースを更新し、メッセージ/イベントをパブリッシュ?

フォーカス

  • あなたは2PCを選択することはできません

結論

ローカルトランザクションが送信トレイテーブルに挿入されるサービスメッセージ/イベントを使用して、リレーショナル・データベースの一部分(例えば、MESSAGE)です。(ドキュメントやプロジェクトなど)が更新されたレコードのプロパティにメッセージ/イベントを追加するために、サービスのNoSQLデータベースを使用してください。メッセージ中継別のプロセスは、メッセージ・ブローカーにポストされたイベントのデータベースに挿入されます。

結果のコンテキスト

このモデルは、次の利点があります。

  • シニアフィールドサービスリリースイベント
  • あなたは2PCを選択することはできません

このモデルは、次のような欠点があります。

  • 開発者はデータベース/イベントを更新した後にメッセージを投稿することを忘れかもしれませんので、誤りを生じやすいかもしれません。

また、このモデルでは、次のような問題があります。

  • メッセージリレーは、いくつかのメッセージを発行することができます。例えば、それはニュースの後に解放されてもよいが、それはクラッシュ前にレコードにそうしました。あなたが再起動すると、再びメッセージを解放します。これにより、ユーザは、メッセージがすでに処理した追跡することによって、メッセージIDであってもよい冪等しなければなりません。幸いなことに、起因する(メッセージブローカがメッセージを複数回提供することができますので)通常冪等する必要があるメッセージのユーザーには、これは通常は問題ではありません。

関連パターン

    • 佐賀とドメインのイベントモデルは、このモデルの需要が作成されます。
    • イベントトレーサビリティは、別のソリューションです
    • メッセージリレーの実装は2つのモードがあります。
      • トランザクションログの末尾のモード
      • ポーリングモードによって掲示されます

おすすめ

転載: www.cnblogs.com/paxlyf/p/11293718.html