2011-12-29 10 views
1

この質問の一部は、正確に何を尋ねる必要があるかわからないので、私はその状況から始めてそこから作業します。ウェブファームのサービスバス(たぶん?)

私が取り組んでいるプロジェクトの1つに、aspCometライブラリによるCOMETの使用があります。プログラムのユースケースは、いくらか協調的なスライドショーです。 1人の人間が大部分を実行し、1人または複数の参加者が特定のアクションを実行できます。画面上でアクションが実行されるまでの待ち時間が短い

これまでは、1台のサーバー上で実行されていました。さて、パフォーマンスの理由よりも信頼性を高めるために、少しだけスケールアウトしたいと思っています。だから、Rackspaceのクラウドにはいくつかのボックスがあり、楽しいものがすべてある。

私は、同じ「ショー」の異なる人々が異なるサーバー上にいる可能性があるため、COMETの仕組みにいくつかの変更を加える必要があることを知っていました。彼らがサイトにすでに到着するまで、彼らが所属しているものは何か?

私は最初、よく説明されていなかったWCFメッシュプロバイダを使用してこの問題に取り組んだ。今はメッセージをディスパッチして問題に遭遇していることがあります。何が起こっているのか)、それはCOMETの長い投票をねじ込み、ちょっと変わったやり方で壊してしまいます(ボタンをクリックするとイベントが発生するか、10秒間待つことになります) )。

多くの研究により、.Netサービスバスプロバイダの1つが私の必要とするものを実行できると信じています。

  • (データベースの外)の障害の

    1. シングルポイントのピアのないハードコード:しかし、私は私が必要なものをカバーしなくなる例を見つけることができません。
    2. ニアリアルタイム(ポーリングなし、最高のだろうベースのイベント)

    私の理想的なソリューションは、サーバーが起動したとき、それはでちょうど行の場合でも、他のサーバーは(その存在を知ることができますことを伴うだろうテーブルのどこかに)、それぞれのサーバーがパブリッシャとサブスクライバの両方である、相互にブロードキャストメッセージを送信し始めることができます。これは私がWCFメッシュプロバイダで多少持っていたものですが、私はあまりコードに自信がありません。

    誰も私にこれを正しい方向に向けることができますか?サービスバスプロバイダのためのドキュメントで探す適切な用語でさえ、この時点では良いでしょう。それともサービスバスは私が望むものではありませんか?この時点で、各Webサーバー上にJabberサーバーを設定し、それが自分の制約内に収まるかどうかを判断するために解決します。

  • +1

    ロングポーリングを行わずにデータを取得するためにリアルタイムに近い場合は、RabbitMQを使用してデータをキューに入れ、HTTPストリーミングを使用することをお勧めします。 – rpgmaker

    答えて

    1

    私はNServiceBusに1トンも話すことができませんが、回答は似ていると思います。

    1. MSMQはマルチキャストを使用できます。つまり、各エンドポイントはその存在をブロードキャストし、DBテーブルは必要ありません。 RabbitMQはこのExchange-to-Queueバインディング・プロセスを使用します。これは、Rabbitインスタンスまたはクラスタが稼動していてメッセージが存在している限りです。 RabbitMQはクラスタ化できますが、MSMQはクラスタ化できません。 *注:Rackspaceのマルチキャストに問題があるかもしれませんが、どのように動作するかわかりません。もしそうなら、MSMQ(RabbitMQではなく)のランタイムサービスに後戻りする必要があります。これは、誰もが制御メッセージを調整する単一のポイントを持つため、単一障害点を作成します。

    2. ピアのハードコーディング:上記で説明したビット。 MSMQのマルチキャストがそれを処理します。うさぎはまた、あなたが聞きたい交換にキューをバインドするだけで、行うことができます。 MassTransitはこれをあなたのために処理します。

    3. ニアリアルタイム:これらは両方ともリアルタイムに近いメッセージングを使用します。あなたのメッセージコンシューマーコードにポーリングはありません。

    サービスバスは、あなたが試しているものに対して合理的な解決策のようだと思います。いくつかの詳細が必要になりますが、一般的なメッセージングの方法は正しいです。あなたがRabbitMQの上に何かをしたいと思って、Rabbitが大部分のものを扱うように設定すると、軽量メッセージングライブラリが他にもあります。

    MassTransitを使い始めるには、http://readthedocs.org/projects/masstransit/とメーリングリストhttp://groups.google.com/group/masstransit-discussがあります。将来の質問があり、誰かがあなたを助けようとするなら、メーリングリストに参加してください。

    +0

    MSMQは高可用性のためにクラスタ化できます。 –

    関連する問題