0

.NET Framework で UDP マルチキャストを使用する代わりの方法を探しており、提案を探しています。

かなりの数の ASP.NET アプリケーションを実行している複数の Web サーバーにメッセージを送信する必要があります。これらのメッセージは、複数の異なるマシンから送信される一方向のみです。管理者権限が必要なため使用できないことを除けば、UDP マルチキャストは完璧です。理由の詳細については、 ASP.NET マルチキャスト UdpClient の問題を参照してください。

複数のアプリケーションがブロードキャストタイプのメッセージを受信できるようにする、同様の方法で機能するものは他にありますか?

4

5 に答える 5

1

ØMQには 2 つのCLR バインディングがあり、独自のメッセージング レイヤーを展開するよりも生産的です。PUB/SUB ソケットを使用して、必要に応じて TCP または IP マルチキャストでメッセージをマルチキャストできます。また、ライブラリは ASP.net の外部にあるため、これにより、発生している権利の制限の問題が解消されます。

于 2010-12-15T01:59:06.303 に答える
1

いくつかの可能性が思い浮かびます:

  1. マルチキャスト UDP コードを Windows サービスに入れます。ポートにリスナーを 1 つだけ持つことで、昇格されたアクセス許可は必要ありません。共有メモリやその他のさまざまな手法を使用して、サービスと通信できます。

  2. 中央のメッセージ ディスパッチ/リレー ノードへの非同期のポイント ツー ポイント raw TCP 接続を使用します。非同期 I/O を使用してメッセージを送受信すると、待機時間が最小限に抑えられます。

  3. SQL Server の Service Broker などの永続的なキュー メカニズムを使用します。これはまだユニキャストですが、すべてのエンドポイントにメッセージを送信する単一のストアド プロシージャを使用できます。ここでも、非同期 I/O を使用して待機時間を最小限に抑えます。

  4. Tibco Rendezvous のような、アウト オブ プロセスの商用メッセージ パッシング バスを使用します。

于 2010-01-08T09:20:56.927 に答える
1

MSMQ または SQL データベースの使用を検討しましたか? SQL 2008 データベースを使用すると、SQL サーバーから変更を通知することもできます。

于 2010-01-08T06:37:21.583 に答える
0

ActiveMQ は、msmq と同様に無料のサービスです。あなたのような非永続的なメッセージを処理できます。欠点は、基本的に中央サーバーがあるスポークおよびハブ スタイルのアプローチであるため、サーバーが必要になることです。しかし、.NET ではうまく機能し、優れたパフォーマンスを発揮します。毎秒何百ものメッセージを送信していますが、問題なく動作しています。

于 2010-11-24T19:06:28.320 に答える