1

WCF ベースのパブリッシュ サブスクライブ フレームワークのさまざまなオプションを検討しています。パブリッシャーとなる 1 つの WCF Web サービスと、サブスクライバーとして登録された 1000 のクライアントがあるとします。公開されたメッセージの中には、すべてのクライアントが関心を持つものもありますが、同時に、特定のメッセージを 1 人のクライアントに通知できるようにしたいと考えています。通知を受け取ると、クライアントは Web サービスで他の Web サービス メソッドを呼び出します。

NServiceBus はこの種のシナリオに適していますか? トランスポートに MSMQ を使用すると、クライアントがインストールされているすべての PC でキューを作成する必要があるということですか?

4

1 に答える 1

4

いくつかの課題には、サブスクライブしている特定のクライアントがダウンしたときにパブリッシャーがどのように動作するか、サブスクライバーが復旧したときにそのメッセージを利用できるようにするかなどがあります。その場合、MSMQ のように、それらの間である種の永続的なメッセージングが必要になります。

単一のクライアントに通知することについての質問は、そのクライアントから送信されたリクエストの結果ですか? その場合、標準の NServiceBus 呼び出しが Bus.Reply の形式で行われます。WCF を使用する場合、応答が非同期になる場合は、コールバック コントラクトを使用する必要があります。

NServiceBus は、説明したすべてのことを行うことができ、MSMQ を自動的にインストールしてキューを作成する機能を備えているため、クライアント側の展開が大幅に簡素化されます。

また、NServiceBus を使用して WCF 経由でメッセージを公開することもできるため、必要に応じて NServiceBus 以外のクライアントもサポートできます。また、Windows 以外のプラットフォームのクライアントが WCF を使用しなくても相互運用できるようにする独自の http ゲートウェイと XSD スキーマも備えています。

それがあなたの質問に答えることを願っています。

于 2010-03-22T21:55:02.097 に答える