3

あるプロセスのサーバーへの接続がダウンし、別のサーバーへの接続がアップしているシナリオをシミュレートしようとしています。私の場合、ネットワークケーブルを引っ張るだけでは機能しません。これは、稼働状態を維持するために別のプロセス接続が必要なためです。

この種の仕事のためのツールはありますか?私はWindowsを使用しています。ありがとう!

4

3 に答える 3

3

これをシミュレートできるレイヤーがいくつかあります。最も簡単なのは、2 つのサーバーが 2 つの異なる TCP ポートでリッスンしている場合です。その場合、2 つの tcp プロキシを実行し、障害をシミュレートするときに 1 つを停止/一時停止できます。Windows の場合、tcpTraceを使用してこれを行うことをお勧めします。

もう 1 つのオプションは、物理 NIC にブリッジされる 2 つの仮想 NIC に 2 つのサーバーをバインドすることです。もちろん、2 つの物理 NIC がある場合は、各サーバー プロセスを異なる物理 NIC にバインドできます。

下位レベルでは、WAN シミュレーターを実行できます。ほとんどのシミュレーターでは、特定のタイプのトラフィックまたは特定のポートに影響を与えることができます。そのようなシミュレーターの 1 つがPacketstormです。

私がお勧めするもう 1 つの方法は、デバッガーを 1 つのプロセスにアタッチし、そのプロセス上のすべてのスレッドをデバッガーで停止することです。多くの場合、プロセスは終了しませんが、ガベージ コレクションまたはループでスタックします。ソケットが閉じないため、多くの「高可用性」ソリューションは自動的にフェイルオーバーしません。

于 2009-08-28T06:37:27.723 に答える
2

1つのアプローチは、テストの目的で関連するネットワーク接続コードをモックすることです。この場合、接続がダウンした場合に通常どおりに返されるようにモックを作成することをお勧めします。

于 2009-08-28T06:29:24.917 に答える
0

マシンでスリープ/休止状態モードを使用できる場合の貧乏人のアプローチ:

  • Windows ファイアウォールでアウトバウンド ルールを設定して、特定のプログラムの接続を禁止します。
  • すでに接続されているソケットは接続されたままになります。マシンを短時間スリープ/休止モードにして、それらのソケットを強制的に切断します。
  • システムが復元されると、プログラムは新しい接続を確立できません。
  • ファイアウォール ルールを無効にするとすぐに、新しい接続が可能になります。

各接続は許可エラーですぐに失敗するため、ネットワークの停止をシミュレートしないことに注意してください。ただし、接続を確立するプロセスが妨げられます。

于 2016-12-18T20:57:57.427 に答える