0

サーバーと約 150 台のクライアント マシンがあります。すべてのクライアントはサーバーに登録し、サーバーは登録されたクライアントでメソッド呼び出し (コールバック) を行います。

このシステムでは、サーバーは接続されているすべてのクライアントに定期的に ping を送信します (ping はコールバック メソッドです) (接続の活性チェック)。しかし、スレッドですべてのクライアントの ping 操作を行うと。利用できないクライアントでのメソッド呼び出しの待機時間が原因で、動作が遅すぎます。接続が切断された場合は、タイムアウトが発生するのを待ちます。そのため、待ち時間が長すぎます。接続の活性チェックに関する新しいアイデアがあります。
接続されたクライアントごとにスレッドを作成します。そして、各スレッドは自分のクライアントを制御するだけです。したがって、すべてのシステム接続チェックはこれらのスレッドによって行われます。

便利ですか?

このプロジェクトの他の専門的なオファーはありますか?

ありがとう。

4

1 に答える 1

0

クライアントをチェックするとき、サーバーはそれらのクライアントとして機能するため、実際には双方向の公正なアーキテクチャです。中央ノードにクライアントの状態を認識させたい場合は、特定の間隔でハートビート メッセージを使用してサーバーをポーリングすることにより、クライアントがサーバーに「こんにちは」と言うようにします。サーバーが次に予想されるハートビートを受信しないと、クライアントは停止していると見なされます。より多くのスレッドを開始しても利点はありませんが、パフォーマンスが低下する可能性があります。ワーカー スレッドまたは何らかのアクター パターンを使用してハートビートを処理することを検討してください。

于 2012-04-05T19:15:45.773 に答える