最近、私は分散型メッセージングとそれに関連するパターンについて多くのことを読んでいます。たとえばNServiceBusなどのツールでサポートされているものをいくつか使用しました。
それらのパターンの多くは、インターネット上で説明されています。私が最近読んだそれらのいくつかは次のとおりです。
- メッセージ ブローカー: http://msdn.microsoft.com/en-us/library/ff648849.aspx
- メッセージ バス : http://msdn.microsoft.com/en-us/library/ms978583.aspx
- SOA のメッセージング パターン: http://msdn.microsoft.com/en-us/library/aa480027.aspx
- 相違点に関する Udi Dahan の投稿 : http://www.udidahan.com/2011/03/24/bus-and-broker-pubsub-differences/
NService バスなどのツールを使用すると、インフラストラクチャの問題についてあまり考えずに多くのことを実行できる場合、基本的なメッセージ バスとコマンド ハンドラーを実装しようとしたときに、いくつかの疑問が生じました。実際、これらのパターンに関しては、それらの間に多くの違いは見られません。
長いのでコードは貼りませんが、私が話したい実装のアイデアをよく説明している 2 つのブログ投稿を見つけました。
アイデアは単純です。メッセージ バスはサブスクライバーを追跡し、関心があれば別のサブスクライバーにメッセージをディスパッチします。
メッセージバスによく似ています。コマンド バスは、特定のコマンド タイプのコマンド ハンドラを呼び出します。
したがって、どちらの場合も類似点があります。
あるパターンを別のパターンと使用した場合の実際の違いと利点は何ですか (ツールのサポートについて話しているのではありません)。何が欠けていますか?
2番目の質問はです。サポートツールなしでメッセージバスは価値がありますか? すべてのテナントへのサポートを単独で推進するつもりはありません。
長くて紛らわしい質問で申し訳ありませんが、詳細については遠慮なくお尋ねください。