3

開発環境でコードがWebロールインスタンスの障害をどのように処理するかをテストする必要があります。

インスタンスの1つを終了するにはどうすればよいですか?このためのUIにオプションが表示されません。奇妙な省略のようです

アップデート

問題は分散キャッシュレイヤーに関連しています(Azureが独自のレイヤーを提供していることは知っています)システムが欠落しているノードや追加のノードなどにどのように反応するかをテストできるようにしたいと思います

おそらく私の本当の質問は

RoleEnvironment.CurrentRoleInstance.Role.Instancesがどの程度最新であるか

4

3 に答える 3

3

devエミュレーターで不正な終了をシミュレートする必要があるのは、通常、ステートフルまたは長時間実行されているWebロールで何かを実行しているためです。これは一般的には推奨されませんが、避けられない場合もあります。

失敗をシミュレートする最良の方法は、プロセスを強制終了することだと思います。タスクマネージャー(またはより適切なProcess Explorer)を開くと、「WaIISHost」または「WaWorkerHost」のいずれかをホストしている「WatDebugger」が表示されます。このプロセスを強制終了すると、失敗をシミュレートすると思います。

正直なところ、これはクラウドでテストする方が簡単です。インスタンスの1つにRDPを実行して、「WaAppAgent」プロセスを強制終了できます。これにより、RoleEntryPointとファブリックコントローラーエージェントが強制終了されます。それは本当の不潔な失敗になります。

于 2011-07-11T14:35:02.090 に答える
0

インスタンスを終了するということは、インスタンス数を減らして、どれが強制終了されるかを確認することを意味しますか?不潔な出口についてのライアンの見方は好きですが、それがファブリックによって強制的に殺された場合、それは別の球技になります。

于 2011-07-11T21:06:05.907 に答える
0

失敗とは、利用できなくなるという意味ですか?次のリクエストは他のインスタンスの1つによって単純に処理されるため、シームレスである必要があります。使用可能なインスタンスが1つある限り、Azureはそのインスタンスに呼び出しをルーティングします。

これは高可用性システムの性質であり、リクエストは利用可能なインスタンスによって処理されます。これが、1つ以上のインスタンスで障害が発生した場合にリクエストを処理するために、そもそも複数のインスタンスがある理由です。

これが、アプリケーションが状態を処理する方法に常に注意する必要がある理由です。状態は、インスタンスの外部、キューまたはデータベースのいずれかで維持する必要があります。これにより、すべてのプロセスが作業の一部を取得して実行できるようになります。

セッション状態を扱う別の質問があります。MicrosoftAzureはセッション状態をどのように処理しますか?

于 2011-07-11T14:11:39.230 に答える