7

1 つのワーカー プロセス IIS ですべてのメッセージをブロードキャストおよび受信します。ワーカー プロセスを 2 に上げると、1 つおきのメッセージしか受信しません (50% が失われます)。設計、構成、またはバグによるものですか?

4

1 に答える 1

13

これは仕様によるものです。2 つのワーカー プロセスは状態を共有せず、クライアントはラウンド ロビン ベースでそれらの間で分散されます。つまり、50% がプロセス A に接続され、50% がプロセス B に接続されます。デフォルトでは、プロセス A はプロセス B からのメッセージを認識しません。

構成しているものは「Web ガーデン」(「Web ファーム」と混同しないでください) と呼ばれ、通常、障害のあるアプリケーションの応答性を高めるために使用されます (この SO の質問を参照してください)。SignalR はスケーラビリティを念頭に置いてゼロから構築されているため、この構成では何のメリットもありません。

私の推奨事項は、ワーカー プロセスの制限を 1 に保つことです。

ただし、Web ガーデンで動作させる方法があります。プロセス間でメッセージを共有するために、Redis や Windows Azure サービス バス (詳細はドキュメントを参照)などの外部メッセージ バスを使用する必要があります。追加のネットワーク遅延。

于 2012-10-08T09:18:40.290 に答える