2009-08-25 13 views
0

私は完全にメッセージ駆動型の小規模な分散システムで作業しています。今、私は通常何かを送ってすぐにそれを閉じる必要があるたびにソケットを開きます。状態はサーバー側でのみ維持されます(たとえば、クライアントから5分間メッセージが到着しない場合は、それが死んだと見なします)。分散システムのメッセージを送信して処理する堅牢な方法

しかし、ステータスメッセージがサーバーに届かない場合は、再試行しても、失敗した場合はサーバーがダウンしているか、別のサーバーに切り替わったかなど、クライアントのメッセージの低レベルスケジューリングを行う必要があります。 )、クライアントとサーバーの両方で手動でリッスンする(さらに、サーバーからクライアントに到達する方法を情報交換する)必要があります。また、何らかのブロードキャストシステムを追加するつもりですが、これは積み重なるようになっています。問題は、このメッセージングを処理するMonoとMicrosoftで動作する.NET用の既存のバス/メッセージングシステムがあるかどうかですもの?私はNServiceBusを見ましたが、それはMonoで多かれ少なかれサポートされているMSMQ(まだ真実ですか?)に依存しています。全体として、NServiceBusはもうちょっと重すぎます。理想的には、システムは1:1および1:N接続をサポートし、エラーを堅牢に処理して報告し、いくつかの高度な機能(キューイングメッセージ、セキュリティ)も備えています。

答えて

2

RabbitMQを調べましたか?

+0

今、ベータ版になっているようです(C#のインターフェースです)。 – Anteru

+0

それはちょうどインタフェースです、私はそれについて心配しないでしょう。最悪の場合は手書きのものよりも良いと思います。特にソースを確認することができます。 –

+0

FWIW、System.MessagingのMono(アルファ)実装はRabbitMQを使用します。 http://www.mono-project.com/SystemMessaging –

0

Mono-Oliveを見ましたか?私は彼らがWCFを実装していたことを知っていますが、これは現在では十分に実装されていれば、おそらくあなたにとって最良の選択肢になるでしょう。

+0

最高で作業中に見えます。問題は、それは堅牢でなければならないということです。 – Anteru

関連する問題