Samouczek: symulowanie błędu podczas odczytywania danych z regionu podstawowego
Ten samouczek jest drugą częścią serii. W tym artykule poznasz zalety magazynu geograficznie nadmiarowego (RA-GZRS) z dostępem do odczytu , symulując awarię.
Aby zasymulować awarię, można użyć routingu statycznego lub programu Fiddler. Obie metody umożliwiają symulowanie niepowodzenia żądań do podstawowego punktu końcowego konta magazynu RA-GZRS, co prowadzi aplikację do odczytu z pomocniczego punktu końcowego.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Część druga serii zawiera informacje na temat wykonywania następujących czynności:
- Uruchamianie i zatrzymywanie aplikacji
- Symulowanie awarii przy użyciu nieprawidłowej trasy statycznej lub programu Fiddler
- Symulowanie przywracania podstawowego punktu końcowego
Wymagania wstępne
Przed rozpoczęciem tego samouczka wykonaj poprzedni samouczek: Udostępnianie danych aplikacji o wysokiej dostępności za pomocą usługi Azure Storage.
Aby zasymulować niepowodzenie przy użyciu routingu statycznego, użyjesz wiersza polecenia z podwyższonym poziomem uprawnień.
Aby symulować błąd przy użyciu narzędzia Fiddler, pobierz i zainstaluj program Fiddler
Symulowanie błędu przy użyciu nieprawidłowej trasy statycznej
Możesz utworzyć nieprawidłową trasę statyczną dla wszystkich żądań do podstawowego punktu końcowego konta magazynu RA-GZRS. W tym samouczku host lokalny jest używany jako brama na potrzeby kierowania żądań do konta magazynu. Użycie hosta lokalnego jako bramy powoduje, że wszystkie żądania do podstawowego punktu końcowego konta magazynu są w pętli z powrotem wewnątrz hosta, co powoduje niepowodzenie żądania. Wykonaj poniższe kroki, aby symulować błąd i przywracanie podstawowego punktu końcowego przy użyciu nieprawidłowej trasy statycznej.
Uruchamianie i zatrzymywanie aplikacji
Skorzystaj z instrukcji w poprzednim samouczku , aby uruchomić przykład i pobrać plik testowy, potwierdzając, że pochodzi z magazynu podstawowego. W zależności od platformy docelowej możesz ręcznie wstrzymać przykład lub zaczekać na monit.
Symulowanie błędu
Gdy aplikacja jest wstrzymana, otwórz wiersz polecenia w systemie Windows jako administrator lub uruchom terminal jako główny w systemie Linux.
Uzyskaj informacje o podstawowej domenie punktu końcowego konta magazynu, wprowadzając następujące polecenie w wierszu polecenia lub terminalu, zastępując ciąg STORAGEACCOUNTNAME
nazwą konta magazynu.
nslookup STORAGEACCOUNTNAME.blob.core.windows.net
Skopiuj adres IP konta magazynu do edytora tekstów w celu późniejszego użycia.
Aby uzyskać adres IP hosta lokalnego, wpisz ipconfig
w wierszu polecenia systemu Windows lub ifconfig
w terminalu systemu Linux.
Aby dodać trasę statyczną dla hosta docelowego, wpisz następujące polecenie w wierszu polecenia systemu Windows lub terminalu systemu Linux, zastępując ciąg <destination_ip>
adresem IP konta magazynu i <gateway_ip>
adresem IP hosta lokalnego.
Linux
sudo route add <destination_ip> gw <gateway_ip>
Windows
route add <destination_ip> <gateway_ip>
W oknie z uruchomionym przykładem wznów aplikację lub naciśnij odpowiedni klawisz, aby pobrać przykładowy plik i potwierdzić, że pochodzi z magazynu pomocniczego. Następnie możesz wstrzymać próbkę ponownie lub poczekać na monit.
Symulowanie przywracania podstawowego punktu końcowego
Aby zasymulować ponowne działanie podstawowego punktu końcowego, usuń nieprawidłową trasę statyczną z tabeli routingu. Dzięki temu wszystkie żądania do podstawowego punktu końcowego będą kierowane za pośrednictwem bramy domyślnej. Wpisz następujące polecenie w wierszu polecenia systemu Windows lub terminalu systemu Linux.
Linux
sudo route del <destination_ip> gw <gateway_ip>
Windows
route delete <destination_ip>
Następnie możesz wznowić aplikację lub nacisnąć odpowiedni klawisz, aby ponownie pobrać przykładowy plik, tym razem potwierdzając, że po raz kolejny pochodzi z magazynu podstawowego.
Symulowanie błędu przy użyciu programu Fiddler
Aby zasymulować awarię za pomocą programu Fiddler, należy wstrzyknąć odpowiedź niepomyślną dla żądań do podstawowego punktu końcowego konta magazynu RA-GZRS.
Poniższe sekcje pokazują, jak zasymulować błąd i przywrócić podstawowy punkt końcowy przy użyciu programu Fiddler.
Uruchamianie programu Fiddler
Otwórz program Fiddler i wybierz kolejno pozycje Reguły i Dostosuj reguły.
Zostanie uruchomiony edytor ScriptEditor programu Fiddler i wyświetli plik SampleRules.js. Ten plik jest używany do dostosowywania programu Fiddler.
Wklej następujący przykładowy kod w OnBeforeResponse
funkcji, zastępując ciąg STORAGEACCOUNTNAME
nazwą konta magazynu. W zależności od próbki może być również konieczne zastąpienie HelloWorld
nazwą pobranego pliku testowego lub usunięcie tej części warunku, jeśli nie ma zastosowania. Nowy kod jest komentowany, aby upewnić się, że nie jest uruchamiany natychmiast.
Po zakończeniu wybierz pozycję Plik i Zapisz, aby zapisać swoje zmiany. Pozostaw otwarte okno ScriptEditor, aby użyć go w poniższych krokach.
/*
// 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;
}
*/
Uruchamianie i zatrzymywanie aplikacji
Skorzystaj z instrukcji w poprzednim samouczku , aby uruchomić przykład i pobrać plik testowy, potwierdzając, że pochodzi z magazynu podstawowego. W zależności od platformy docelowej możesz ręcznie wstrzymać przykład lub zaczekać na monit.
Symulowanie błędu
Gdy aplikacja jest wstrzymana, wróć do programu Fiddler i usuń komentarz z reguły niestandardowej zapisanej OnBeforeResponse
w funkcji. Pamiętaj, aby wybrać pozycję Plik i Zapisz , aby zapisać zmiany, aby reguła weszła w życie. Ten kod wyszukuje żądania do konta magazynu RA-GZRS, a jeśli ścieżka zawiera nazwę przykładowego pliku, zwraca kod odpowiedzi .503 - Service Unavailable
W oknie z uruchomionym przykładem wznów aplikację lub naciśnij odpowiedni klawisz, aby pobrać przykładowy plik i potwierdzić, że pochodzi z magazynu pomocniczego. Następnie możesz wstrzymać próbkę ponownie lub poczekać na monit.
Symulowanie przywracania podstawowego punktu końcowego
W programie Fiddler ponownie usuń lub oznacz jako komentarz regułę niestandardową. Wybierz pozycję Plik i Zapisz , aby upewnić się, że reguła nie będzie już obowiązywać.
W oknie z uruchomionym przykładem wznów aplikację lub naciśnij odpowiedni klawisz, aby pobrać przykładowy plik i potwierdzić, że pochodzi z magazynu podstawowego po raz kolejny. Następnie możesz zamknąć przykład.
Następne kroki
W drugiej części serii omówiono symulowanie niepowodzenia testowania magazynu geograficznie nadmiarowego dostępu do odczytu.
Aby dowiedzieć się więcej na temat sposobu działania magazynu RA-GZRS i związanego z nim ryzyka, zobacz Projektowanie aplikacji wysokiej dostępności za pomocą magazynu RA-GZRS.