0

Servicebus の実装 (NServicebus、MassTransit など) について多くのことを読んでいて、Servicebus のしくみを理解していると思います。私は自分自身を知っており、テクノロジーを使用する傾向があるため、ニーズのオーバーヘッドになる可能性があるため、適切なシナリオが何であるかはまだわかりません.

だから私の質問は次のとおりです。Servicebusを使用する正当な理由/シナリオは何ですか?それを使用するにはDDD技術を使用する必要がありますか?

私が考えたいくつかのシナリオ:

  • 外部システムとの通信 (たとえば、アプリケーションが外部システムと通信しており、これらが確実に呼び出されるようにしたい。たとえば、データベース内のオブジェクトを永続化するが、データを同期するために外部 Web サービスも呼び出す必要がある。コマンドを作成し、イベントを取得する 2 つのハンドラーがあり、1 つはデータベースに保持され、もう 1 つは Web サービスを処理します。コマンドが失敗した場合は再試行されます)
  • スケーラビリティ (複数のマシンでスケールアウトできる)
  • よりクリーンなコードにつながる可能性があります (たとえば、エンティティが更新されたときにいくつかの連続したタスクを実行する代わりに、これらのタスクを分離して実行するさまざまなメッセージハンドラーを使用することができます。たとえば、エンティティを保存したり、別のハンドラーが非正規化されたデータストアで更新を実行したりできます)。
4

1 に答える 1

2

NserviceBus を使用するいくつかの良い方法を釘付けにしたと思います。どのプロジェクトでもまだ使用していませんが、それがどのように機能するかを理解するためだけに、ラボでいくつかの実践的な作業を行いました. 私には古い同僚がいて、サービスバスを使用したシステム間統合を支持して、biztalk 統合サーバーを捨てたと言っていました。

メッセージ間に依存関係がある場合に非常に便利な Saga のサポートを忘れないでください。NService バスは、トランザクション型および非同期型の安全な通信エンドポイントを提供します。

DDD では、servicebus を使用すると、ファイア アンド フォーゲットなどの非同期ドメイン イベントを処理するための優れたツールがアプリケーションに提供されます。Web アプリケーションを開発し、電子メールの送信、Facebook の統合、Twitter、ディスク上のファイルへのデータの保存、アプリケーションへのメッセージの送信が必要な場合に適しています。

物事を複雑にするのはほとんど私たちの性質だと思うので、「私は自分自身を知っていて、テクノロジーを使用する傾向があります...」と言うとき、それは自己視点の良い兆候だと思います. Udi Dahan のように、彼自身を Software Simplist と呼んでいます。本番まで頑張ってください。

于 2012-02-07T20:36:26.307 に答える