Udostępnij za pośrednictwem


Włączanie replikacji geograficznej

W tym artykule opisano replikację magazynów aplikacja systemu Azure Configuration. Dowiesz się, jak tworzyć, używać i usuwać replikę w magazynie konfiguracji.

Aby dowiedzieć się więcej na temat koncepcji replikacji geograficznej, zobacz Replikacja geograficzna w konfiguracji aplikacja systemu Azure.

Wymagania wstępne

Tworzenie i wyświetlanie listy replik

Aby utworzyć replikę magazynu konfiguracji w portalu, wykonaj poniższe kroki.

Uwaga

Tworzenie repliki magazynu usługi App Configuration z prywatnymi punktami końcowymi skonfigurowanymi przy użyciu statycznego adresu IP nie jest obsługiwane. Jeśli wolisz prywatny punkt końcowy z konfiguracją statycznego adresu IP, należy utworzyć repliki przed dodaniu dowolnego prywatnego punktu końcowego do magazynu.

  1. W magazynie App Configuration w obszarze Ustawienia wybierz pozycję Replikacja geograficzna.

  2. W obszarze Repliki wybierz pozycję Utwórz. Wybierz lokalizację nowej repliki na liście rozwijanej, a następnie przypisz replikę nazwę. Ta nazwa repliki musi być unikatowa.

    Zrzut ekranu przedstawiający wyróżniony przycisk Replikacja geograficzna oraz przycisk tworzenia repliki.

  3. Wybierz pozycję Utwórz.

  4. Powinna zostać wyświetlona nowa replika wyświetlana w obszarze Repliki. Sprawdź, czy stan repliki to "Powodzenie", co oznacza, że została utworzona pomyślnie.

    Zrzut ekranu przedstawiający listę replik utworzonych dla magazynu konfiguracji.

Usuwanie repliki

Aby usunąć replikę w portalu, wykonaj poniższe kroki.

  1. W magazynie App Configuration w obszarze Ustawienia wybierz pozycję Replikacja geograficzna.

  2. W obszarze Repliki wybierz ikonę ... z prawej strony repliki, którą chcesz usunąć. Wybierz pozycję Usuń z listy rozwijanej.

     Zrzut ekranu przedstawiający trzy kropki po prawej stronie wybranej repliki z wyświetloną opcją usuwania.

  3. Sprawdź nazwę repliki, która ma zostać usunięta, i wybierz przycisk OK , aby potwierdzić.

  4. Po zakończeniu procesu sprawdź listę replik, które zostały usunięte z odpowiedniej repliki.

Automatyczne odnajdywanie replik

Dostawcy usługi App Configuration mogą automatycznie odnaleźć wszystkie repliki z danego punktu końcowego usługi App Configuration i spróbować nawiązać z nimi połączenie. Ta funkcja umożliwia korzystanie z replikacji geograficznej bez konieczności zmiany kodu lub ponownego wdrażania aplikacji. Oznacza to, że można włączyć replikację geograficzną lub dodać dodatkowe repliki nawet po wdrożeniu aplikacji.

Automatyczne odnajdywanie replik jest domyślnie włączone, ale możesz odwołać się do następującego przykładowego kodu, aby go wyłączyć (niezalecane).

Zmodyfikuj wywołanie AddAzureAppConfiguration metody , która jest często znajdowana w program.cs pliku aplikacji.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Disable automatic replica discovery
    options.ReplicaDiscoveryEnabled = false;

    // Other changes to options
});

Uwaga

Obsługa automatycznego odnajdywania replik jest dostępna, jeśli używasz wersji 7.1.0 lub nowszej dowolnego z następujących pakietów.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Skalowanie i przechodzenie w tryb failover przy użyciu replik

Każda utworzona replika ma dedykowany punkt końcowy. Jeśli aplikacja znajduje się w wielu lokalizacjach geograficznych, możesz zaktualizować każde wdrożenie aplikacji w lokalizacji, aby połączyć się z repliką bliżej tej lokalizacji, co pomaga zminimalizować opóźnienie sieci między aplikacją a usługą App Configuration. Ponieważ każda replika ma swój oddzielny limit przydziału żądań, ta konfiguracja ułatwia również skalowalność aplikacji, gdy rośnie do usługi rozproszonej w wielu regionach.

Po włączeniu replikacji geograficznej i niedostępności jednej repliki możesz zezwolić aplikacji na przejście w tryb failover do innej repliki w celu zwiększenia odporności. Dostawcy usługi App Configuration mają wbudowaną obsługę trybu failover za pośrednictwem replik udostępnianych przez użytkownika i/lub dodatkowych automatycznie odnalezionych replik. Listę punktów końcowych repliki można podać w kolejności najbardziej preferowanego punktu końcowego. Gdy bieżący punkt końcowy nie jest dostępny, dostawca przejdzie w tryb failover do mniej preferowanego punktu końcowego, ale próbuje nawiązać połączenie z bardziej preferowanymi punktami końcowymi od czasu do czasu. Jeśli wszystkie repliki dostarczone przez użytkownika nie są dostępne, automatycznie odnalezione repliki zostaną losowo wybrane i użyte. Gdy bardziej preferowany punkt końcowy stanie się dostępny, dostawca przełączy się do niego na potrzeby przyszłych żądań.

Zakładając, że masz aplikację korzystającą z aplikacja systemu Azure Configuration, możesz zaktualizować ją jako poniższy przykładowy kod, aby skorzystać z funkcji trybu failover. Możesz podać listę punktów końcowych uwierzytelniania firmy Microsoft Entra lub listę parametry połączenia na potrzeby uwierzytelniania opartego na kluczach dostępu.

Zmodyfikuj wywołanie AddAzureAppConfiguration metody , która jest często znajdowana w program.cs pliku aplikacji.

Nawiązywanie połączenia za pomocą identyfikatora Entra firmy Microsoft

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica endpoints
    var endpoints = new Uri[] {
        new Uri("<first-replica-endpoint>"),
        new Uri("<second-replica-endpoint>") };
    
    // Connect to replica endpoints using Microsoft Entra authentication
    options.Connect(endpoints, new DefaultAzureCredential());

    // Other changes to options
});

Nawiązywanie połączenia za pomocą parametrów połączenia

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica connection strings
    var connectionStrings = new string[] {
        Environment.GetEnvironmentVariable("FIRST_REPLICA_CONNECTION_STRING"),
        Environment.GetEnvironmentVariable("SECOND_REPLICA_CONNECTION_STRING") };
    
    // Connect to replica endpoints using connection strings
    options.Connect(connectionStrings);

    // Other changes to options
});

Uwaga

Obsługa trybu failover jest dostępna, jeśli używasz wersji 6.0.0 lub nowszej dowolnego z następujących pakietów.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Przejście w tryb failover może wystąpić, jeśli dostawca usługi App Configuration przestrzega następujących warunków.

  • Odbiera odpowiedzi ze stanem niedostępności usługi (kod stanu HTTP 500 lub nowszy).
  • Doświadczenia z problemami z łącznością sieciową.
  • Żądania są ograniczane (kod stanu HTTP 429).

Tryb failover nie będzie występować w przypadku błędów klienta, takich jak błędy uwierzytelniania.

Równoważenie obciążenia z replikami

Domyślnie aplikacja zawsze wysyła żądania do najbardziej preferowanego punktu końcowego, z wyjątkiem przypadku przejścia w tryb failover. Oprócz przejścia w tryb failover repliki mogą być również używane do równoważenia obciążenia żądań. Proaktywnie dystrybuując żądania we wszystkich dostępnych replikach w czasie, można uniknąć wyczerpania limitu przydziału żądań pojedynczej repliki i poprawić ogólną skalowalność aplikacji.

Dostawcy usługi App Configuration oferują wbudowaną obsługę równoważenia obciążenia między replikami, niezależnie od tego, czy są udostępniane w kodzie, czy automatycznie odnajdywane. Poniższe przykłady kodu umożliwiają włączenie tej funkcji w aplikacji (zalecane).

Zmodyfikuj wywołanie AddAzureAppConfiguration metody , która jest często znajdowana w program.cs pliku aplikacji.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Enable load balancing
    options.LoadBalancingEnabled = true;

    // Other changes to options
});

Uwaga

Obsługa równoważenia obciążenia jest dostępna, jeśli używasz wersji 8.0.0-preview.3 lub nowszej dowolnego z następujących pakietów.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Następne kroki