0

オンライン ドキュメントを参照して、NServiceBus を理解しようとしています。頭を包み込めないのは、インフラストラクチャの全体的な推奨設定です。私たちのアプリは、単一のマシンと複数の (論理的に異なる) サイト (n 店舗 - 1 本社) の両方で実行できるはずです。NServiceBus (NuGet 経由で v5 を使用しています) については、ホストとエンドポイントの概念を完全には理解していません。

15 個のサービス (注文サービス、アイテム サービスなど) があるとします。

  1. 15 個のクライアント(バスを介してメッセージを送信するコードを含む 15 個のクラス ライブラリ プロジェクト) と 15 個のサーバー(サービス固有のメッセージ/コマンドを処理する 1 つ以上の受信メッセージ ハンドラー クラス) が必要ですか? だから合計30。

  2. 各サービスは独自の個別の MSMQ を使用する必要がありますか?

  3. これらの 15 個の「サーバー」プロジェクトの場合、実稼働環境では NServiceBus.Host を 15 回インストールする必要があります (したがって、15 個の Windows サービス インスタンスを作成します)。VS でのデバッグ中に、デバッグを開始すると NSerivceBus.Host.exe が開始されます。

したがって、各ホスト/サーバー プロジェクトに対して 1 つのエンドポイントのみを効果的に「ホスト」します。または、単一のホストとその内部に 15 のエンドポイントを持つことはできますか?

私がこの ESB パターンを初めて知ったので、ご意見をお寄せいただきありがとうございます。

4

2 に答える 2

0

サービス (大文字の :-) SOA サービス定義のように) は、ビジネス機能の論理グループです。

エンドポイントは物理的なプロセスです。たとえば、E コマース エンドポイント (Web サイト) では、ホスト プロセスにデプロイされた多くのサービスからハンドラー (アセンブリ) を作成できます。

少数のマシンに展開された少数のエンドポイントから始めることもできますが、規模が拡大するにつれて、重要なデータを処理するハンドラーを独自のエンドポイントに抽出する必要があり、「un-キュー内の重要な」メッセージを処理して、「重要な」メッセージ フォームの処理を遅らせます。

キューに関しては、各エンドポイントには独自のプライベート キューがあります。

大規模になると、ハンドラーごとにエンドポイントのシナリオになる可能性がありますが、そうする必要があるまでにはしばらく時間がかかる可能性がありますが、最初から 1 つのハンドラー = 1 つのアセンブリを使用し、相互依存関係がないことを確認しますこれらのアセンブリの間に導入されます...

Udiのブログをご覧ください

意味のある用量?

于 2014-10-17T09:17:39.350 に答える