Freigeben über


Lernprogramm: Simulieren eines Fehlers beim Lesen von Daten aus dem primären Bereich

Dieses Lernprogramm ist Teil 2 einer Reihe. Darin erfahren Sie mehr über die Vorteile des geo-zone-redundanten Speichers mit Lesezugriff (RA-GZRS), indem Sie einen Ausfall simulieren.

Um einen Fehler zu simulieren, können Sie entweder statisches Routing oder Fiddler verwenden. Beide Methoden ermöglichen es Ihnen, Fehler für Anforderungen an den primären Endpunkt Ihres RA-GZRS Speicherkontos zu simulieren, wodurch die Anwendung stattdessen vom sekundären Endpunkt gelesen werden kann.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

In Teil 2 der Serie erfahren Sie, wie Sie:

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, führen Sie das vorherige Lernprogramm aus: Machen Sie Ihre Anwendungsdaten mit Azure Storage hoch verfügbar.

Zum Simulieren eines Fehlers mit statischem Routing verwenden Sie eine Eingabeaufforderung mit erhöhten Rechten.

Um einen Fehler mithilfe von Fiddler zu simulieren, laden Sie Fiddler herunter und installieren sie

Simulieren eines Fehlers mit einer ungültigen statischen Route

Sie können eine ungültige statische Route für alle Anforderungen an den primären Endpunkt Ihres RA-GZRS Speicherkontos erstellen. In diesem Lernprogramm wird der lokale Host als Gateway für Routinganforderungen an das Speicherkonto verwendet. Wenn Sie den lokalen Host als Gateway verwenden, werden alle Anforderungen an den primären Endpunkt Ihres Speicherkontos innerhalb des Hosts zurückschleifen, was zu einer fehlgeschlagenen Anforderung führt. Führen Sie die folgenden Schritte aus, um einen Fehler und die Wiederherstellung des primären Endpunkts mit einer ungültigen statischen Route zu simulieren.

Starten und Anhalten der Anwendung

Verwenden Sie die Anweisungen im vorherigen Lernprogramm , um das Beispiel zu starten und die Testdatei herunterzuladen und zu bestätigen, dass sie aus dem primären Speicher stammt. Je nach Zielplattform können Sie das Beispiel dann manuell anhalten oder müssen an der Eingabeaufforderung warten.

Simulieren eines Fehlers

Öffnen Sie während der Pause der Anwendung eine Eingabeaufforderung unter Windows als Administrator, oder führen Sie das Terminal als Root unter Linux aus.

Rufen Sie Informationen zur primären Endpunktdomäne des Speicherkontos ab, indem Sie den folgenden Befehl in einer Eingabeaufforderung oder einem Terminal eingeben und `STORAGEACCOUNTNAME` durch den Namen Ihres Speicherkontos ersetzen.

nslookup STORAGEACCOUNTNAME.blob.core.windows.net

Kopieren Sie die IP-Adresse Ihres Speicherkontos in einen Text-Editor zur späteren Verwendung.

Um die IP-Adresse Ihres lokalen Hosts abzurufen, geben Sie ipconfig in die Windows-Eingabeaufforderung oder ifconfig in das Linux-Terminal ein.

Wenn Sie eine statische Route für einen Zielhost hinzufügen möchten, geben Sie den folgenden Befehl an einer Windows-Eingabeaufforderung oder einem Linux-Terminal ein, und ersetzen Sie <destination_ip> durch die IP-Adresse Ihres Speicherkontos und <gateway_ip> durch Ihre lokale Host-IP-Adresse.

Linux

sudo route add <destination_ip> gw <gateway_ip>

Fenster

route add <destination_ip> <gateway_ip>

Setzen Sie im Fenster mit dem ausgeführten Beispiel die Anwendung fort, oder drücken Sie die entsprechende Taste, um die Beispieldatei herunterzuladen, und bestätigen Sie, dass sie vom sekundären Speicher stammt. Sie können das Beispiel dann erneut anhalten oder an der Eingabeaufforderung warten.

Simulieren der Wiederherstellung des primären Endpunkts

Um zu simulieren, dass der primäre Endpunkt wieder funktionsfähig wird, löschen Sie die ungültige statische Route aus der Routingtabelle. Dadurch können alle Anforderungen an den primären Endpunkt über das Standardgateway weitergeleitet werden. Geben Sie den folgenden Befehl an einer Windows-Eingabeaufforderung oder einem Linux-Terminal ein.

Linux

sudo route del <destination_ip> gw <gateway_ip>

Fenster

route delete <destination_ip>

Anschließend können Sie die Anwendung fortsetzen oder die entsprechende Taste drücken, um die Beispieldatei erneut herunterzuladen. Dieses Mal wird bestätigt, dass sie erneut aus dem primären Speicher stammt.

Simulieren eines Fehlers mit Fiddler

Um einen Fehler im Fiddler zu simulieren, fügen Sie eine fehlerhafte Antwort für Anforderungen an den primären Endpunkt Ihres RA-GZRS-Speicherkontos ein.

In den folgenden Abschnitten wird gezeigt, wie Sie mit Fiddler einen Fehler und die Wiederherstellung des primären Endpunkts simulieren.

Fiddler starten

Öffnen Sie Fiddler, wählen Sie "Regeln" und "Regeln anpassen" aus.

Anpassen von Fiddler-Regeln

Der Fiddler ScriptEditor startet und zeigt die SampleRules.js Datei an. Diese Datei wird verwendet, um Fiddler anzupassen.

Fügen Sie das folgende Codebeispiel in die OnBeforeResponse Funktion ein, und ersetzen STORAGEACCOUNTNAME Sie ihn durch den Namen Ihres Speicherkontos. Je nach Probe müssen Sie möglicherweise auch HelloWorld durch den Namen der heruntergeladenen Testdatei ersetzen oder diesen Teil der Bedingung entfernen, wenn dies nicht zutrifft. Der neue Code wird auskommentiert, um sicherzustellen, dass er nicht sofort ausgeführt wird.

Wählen Sie " Datei" und " Speichern " aus, um Ihre Änderungen zu speichern. Lassen Sie das ScriptEditor-Fenster für die Verwendung in den folgenden Schritten geöffnet.

    /*
        // Simulate data center failure
        // After it is successfully downloading the blob, pause the code in the sample,
        // uncomment these lines of script, and save the script.
        // It will intercept the (probably successful) responses and send back a 503 error.
        // When you're ready to stop sending back errors, comment these lines of script out again
        //     and save the changes.

        if ((oSession.hostname == "STORAGEACCOUNTNAME.blob.core.windows.net")
            // depending on the sample, you may need to modify or remove the line below
            && (oSession.PathAndQuery.Contains("HelloWorld"))) {
            oSession.responseCode = 503;
        }
    */

Angepasste Regel einfügen

Starten und Anhalten der Anwendung

Verwenden Sie die Anweisungen im vorherigen Lernprogramm , um das Beispiel zu starten und die Testdatei herunterzuladen und zu bestätigen, dass sie aus dem primären Speicher stammt. Je nach Zielplattform können Sie das Beispiel dann manuell anhalten oder müssen an der Eingabeaufforderung warten.

Simulieren eines Fehlers

Wechseln Sie bei angehaltener Anwendung zurück zu Fiddler, und heben Sie die Auskommentierung der benutzerdefinierten Regel auf, die Sie in der Funktion OnBeforeResponse gespeichert haben. Wählen Sie " Datei" und " Speichern " aus, um Ihre Änderungen zu speichern, damit die Regel wirksam wird. Dieser Code sucht nach Anforderungen an das RA-GZRS Speicherkonto und, wenn der Pfad den Namen der Beispieldatei enthält, gibt er einen Antwortcode von 503 - Service Unavailable zurück.

Setzen Sie im Fenster mit dem ausgeführten Beispiel die Anwendung fort, oder drücken Sie die entsprechende Taste, um die Beispieldatei herunterzuladen, und bestätigen Sie, dass sie vom sekundären Speicher stammt. Sie können das Beispiel dann erneut anhalten oder an der Eingabeaufforderung warten.

Simulieren der Wiederherstellung des primären Endpunkts

Entfernen oder kommentieren Sie in Fiddler die benutzerdefinierte Regel erneut. Wählen Sie "Datei" und " Speichern " aus, um sicherzustellen, dass die Regel nicht mehr wirksam ist.

Setzen Sie im Fenster mit dem ausgeführten Beispiel die Anwendung fort, oder drücken Sie die entsprechende Taste, um die Beispieldatei herunterzuladen, und bestätigen Sie, dass sie erneut aus dem primären Speicher stammt. Anschließend können Sie das Beispiel beenden.

Nächste Schritte

In Teil 2 der Reihe haben Sie erfahren, wie Sie einen Fehler beim Testen des georedundanten Speichers mit Lesezugriff simulieren.

Weitere Informationen zur Funktionsweise von RA-GZRS Speicher und den damit verbundenen Risiken finden Sie unter Entwerfen von HA-Apps mit RA-GZRS.