Java サーバー/クライアント プログラムの設計を開始しました。潜在的に 100 のクライアントを持つ 1 つのサーバーがあり、クライアントは VPN 経由でサーバーに接続している別の国にある可能性があるため、ネットワーク帯域幅は理想的ではない可能性があります。典型的な使用法は、サーバーがジョブをクライアントにディスパッチし、クライアントが結果をサーバーに返すことです。ただし、サーバーとクライアント間で転送する必要があるデータはそれほど多くありませんが、おそらくジョブごとに約 10 KB であり、各ジョブには約 5-クライアントでの実行に 10 分。
設計には 2 つのオプションがあります。
1、クライアントがサーバーに登録しようとしているときにソケット接続の要求を開始すると、通信用のすべてのソケット接続が保持されます。
2、クライアントは登録のためにソケット接続を開始し、接続を閉じます。サーバーはクライアントのリストを維持し、サーバーはジョブのディスパッチ時に接続を開始してから閉じます。クライアントは接続を再開して結果を報告し、終了します。
問題は、パフォーマンスとコードの複雑さの点で、どちらのオプションがより優れた設計になるかです。