Megosztás a következőn keresztül:


Oktatóanyag: Magas rendelkezésre állású alkalmazás létrehozása Blob Storage használatával

Ez az oktatóanyag egy sorozat első része. Ebben megtudhatja, hogyan teheti az alkalmazásadatokat magas rendelkezésre állásúvá az Azure-ban.

Az oktatóanyag elvégzése után egy olyan konzolalkalmazással fog rendelkezni, amely feltölt és lekéri a blobot egy olvasási hozzáférésű geo-zónaredundáns (RA-GZRS) tárfiókból.

Az Azure Storage georedundanciái aszinkron módon replikálják a tranzakciókat egy elsődleges régióból egy több száz kilométerre lévő másodlagos régióba. A replikációs folyamat garantálja a másodlagos régió adatainak végső konzisztenciáját. A konzolalkalmazás az áramkör-megszakító mintával határozza meg, hogy melyik végponthoz csatlakozik, és automatikusan váltson a végpontok között a hibák és a helyreállítások szimulálása során.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

A sorozat első részében a következőkkel ismerkedhet meg:

  • Tárfiók létrehozása
  • A kapcsolati sztring beállítása
  • A konzolalkalmazás futtatása

Előfeltételek

Az oktatóanyag elvégzéséhez:

Sign in to the Azure portal

Jelentkezzen be az Azure Portalra.

Tárfiók létrehozása

A tárfiókok egyedi névteret biztosítanak az Azure Storage-adatobjektumok tárolásához és eléréséhez.

Kövesse az alábbi lépéseket egy olvasási hozzáférésű geo-zónaredundáns (RA-GZRS) tárfiók létrehozásához:

  1. Válassza az Erőforrás létrehozása gombot az Azure Portalon.

  2. Válassza a Tárfiók – blob, fájl, tábla, üzenetsor lehetőséget az Új oldalról.

  3. Töltse ki a tárfiók űrlapját a következő adatokkal az alábbi képen látható módon, és kattintson a Létrehozás elemre:

    Setting Mintaérték Leírás
    Előfizetés Saját előfizetésem Az előfizetései részleteivel kapcsolatban lásd az előfizetéseket ismertető cikket.
    ResourceGroup myResourceGroup Az érvényes erőforráscsoport-nevekkel kapcsolatban lásd az elnevezési szabályokat és korlátozásokat ismertető cikket.
    Név mystorageaccount A tárfiók egyedi neve.
    Helyen USA keleti régiója Choose a location.
    Teljesítmény Standard A standard teljesítmény jó választás a példaforgatókönyvben.
    Fióktípus StorageV2 Általános célú v2-tárfiók használata ajánlott. Az Azure Storage-fiókok típusaival kapcsolatos további információkért tekintse meg a Tárfiókok áttekintését.
    Replikáció Olvasási hozzáférésű geozónára redundáns tárolás (RA-GZRS) Az elsődleges régió zónaredundáns, és egy másodlagos régióba replikálódik, és engedélyezve van a másodlagos régió olvasási hozzáférése.
    Hozzáférési szint Gyakori elérésű Használja a gyakori elérésű réteget a gyakran használt adatokhoz.

    create storage account

A minta letöltése

Töltse le a mintaprojektet, bontsa ki (bontsa ki) a storage-dotnet-circuit-breaker-pattern-ha-apps-using-ra-grs.zip fájlt, majd keresse meg a v12 mappát a projektfájlok megkereséséhez.

A git használatával klónozhatja az adattárat a helyi fejlesztési környezetbe. A v12 mappában lévő mintaprojekt egy konzolalkalmazást tartalmaz.

git clone https://github.com/Azure-Samples/storage-dotnet-circuit-breaker-pattern-ha-apps-using-ra-grs.git

A minta konfigurálása

Az Azure Blob Storage-ba irányuló alkalmazáskéréseket engedélyezni kell. DefaultAzureCredential Az ügyfélkódtár által Azure.Identity biztosított osztály használata ajánlott módszer az Azure-szolgáltatásokhoz való csatlakozáshoz a kódban. A .NET v12-kódminta ezt a megközelítést használja. További információért tekintse meg a DefaultAzureCredential áttekintését.

Az Azure Blob Storage-ra irányuló kéréseket a fiók hozzáférési kulcsával is engedélyezheti. Ezt a megközelítést azonban körültekintően kell használni a hozzáférési kulcsok felfedésétől való védelme érdekében.

A konzolalkalmazás futtatása

A Visual Studióban nyomja le az F5 billentyűt, vagy kattintson a Start gombra az alkalmazás hibakeresésének megkezdéséhez. A Visual Studio automatikusan visszaállítja a hiányzó NuGet-csomagokat, ha a csomag-visszaállítás konfigurálva van. További információ: Csomagok telepítése és újratelepítése csomag-visszaállítással .

Amikor a konzolablak elindul, az alkalmazás lekéri a másodlagos régió állapotát, és megírja ezeket az információkat a konzolra. Ezután az alkalmazás létrehoz egy tárolót a tárfiókban, és feltölt egy blobot a tárolóba. A blob feltöltése után az alkalmazás folyamatosan ellenőrzi, hogy a blob replikált-e a másodlagos régióba. Ez az ellenőrzés addig folytatódik, amíg a blob replikálódik, vagy el nem éri a ciklusfeltételek által meghatározott iterációk maximális számát.

Ezután az alkalmazás egy ciklust ad meg a blob letöltésére vonatkozó kéréssel, amely kezdetben az elsődleges tárolóból olvas. A blob letöltéséhez nyomja le bármelyik billentyűt. Ha az elsődleges régióból újrapróbálkozható hiba történik, az olvasási kérés újrapróbálkozása a másodlagos régió végpontján történik. A konzol kimenete akkor jelenik meg, amikor a régió másodlagosra vált.

Screenshot of Console output for secondary request.

A ciklusból való kilépéshez és az erőforrások törléséhez nyomja le a Esc kulcsot a blobletöltési parancssorban.

A mintakód értelmezése

A minta létrehoz egy BlobServiceClient újrapróbálkozással konfigurált objektumot és egy másodlagos régióvégpontot. Ez a konfiguráció lehetővé teszi, hogy az alkalmazás automatikusan a másodlagos régióra váltson, ha a kérés meghiúsul az elsődleges régió végpontján.

string accountName = "<YOURSTORAGEACCOUNTNAME>";
Uri primaryAccountUri = new Uri($"https://{accountName}.blob.core.windows.net/");
Uri secondaryAccountUri = new Uri($"https://{accountName}-secondary.blob.core.windows.net/");

// Provide the client configuration options for connecting to Azure Blob storage
BlobClientOptions blobClientOptions = new BlobClientOptions()
{
    Retry = {
        // The delay between retry attempts for a fixed approach or the delay
        // on which to base calculations for a backoff-based approach
        Delay = TimeSpan.FromSeconds(2),

        // The maximum number of retry attempts before giving up
        MaxRetries = 5,

        // The approach to use for calculating retry delays
        Mode = RetryMode.Exponential,

        // The maximum permissible delay between retry attempts
        MaxDelay = TimeSpan.FromSeconds(10)
    },

    // Secondary region endpoint
    GeoRedundantSecondaryUri = secondaryAccountUri
};

// Create a BlobServiceClient object using the configuration options above
BlobServiceClient blobServiceClient = new BlobServiceClient(primaryAccountUri, new DefaultAzureCredential(), blobClientOptions);

Ha a GeoRedundantSecondaryUri tulajdonság be van állítva BlobClientOptions, a GET vagy a HEAD kérelmek újrapróbálkozása a másodlagos végpont használatára vált. Az ezt követő újrapróbálkozások az elsődleges és a másodlagos végpont között váltakoznak. Ha azonban a másodlagos URI-ból érkező válasz állapota 404, akkor a kérés későbbi újrapróbálkozásai már nem használják a másodlagos URI-t, mivel ez a hibakód azt jelzi, hogy az erőforrás nem replikált a másodlagos régióba.

További lépések

A sorozat első részében megismerkedett azzal, hogy egy alkalmazás magas rendelkezésre állásúvá válik az RA-GZRS tárfiókokkal.

Folytassa a sorozat második részével, hogy megtanulja, hogyan szimulálhat egy hibát, és hogyan kényszerítheti az alkalmazást a másodlagos RA-GZRS-végpont használatára.

Források

Elavult SDK-kkal kapcsolatos kódmintákért tekintse meg a következő erőforrásokat: