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


Az Azure Cosmos DB integrált gyorsítótárának konfigurálása

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Ez a cikk bemutatja, hogyan építhet ki dedikált átjárót, konfigurálhatja az integrált gyorsítótárat, és hogyan csatlakoztathatja az alkalmazást.

Előfeltételek

A dedikált átjáró kiépítése

  1. Lépjen egy Azure Cosmos DB-fiókra az Azure Portalon, és válassza a Dedikált átjáró lapot.

    Képernyőkép az Azure Portalról, amely bemutatja, hogyan navigálhat a dedikált Azure Cosmos DB-átjáró lapjára.

  2. Töltse ki a Dedikált átjáró űrlapot a következő részletekkel:

    • Dedikált átjáró – Kapcsolja be a kapcsolót kiépítettre.
    • Termékváltozat – Válasszon ki egy termékváltozatot a szükséges számítási és memóriamérettel. Az integrált gyorsítótár a memória körülbelül 50%-át fogja használni, a fennmaradó memóriát pedig a háttérpartíciók metaadataihoz és útválasztási kéréseihez használja.
    • Példányok száma – Csomópontok száma. Fejlesztési célból javasoljuk, hogy egy D4-es méretű csomóponttal kezdjen. A gyorsítótárazáshoz és a magas rendelkezésre álláshoz szükséges adatok mennyisége alapján a kezdeti tesztelés után növelheti a csomópont méretét.

    Képernyőkép a dedikált Azure Portal átjárólapjáról, amely egy dedikált átjárófürt létrehozásának mintabemeneti beállításait jeleníti meg.

  3. Válassza a Mentés lehetőséget , és várjon körülbelül 5–10 percet, amíg a dedikált átjáró kiépítése befejeződik. A kiépítés befejezésekor a következő értesítés jelenik meg:

    Képernyőkép egy értesítésről az Azure Portalon, amely bemutatja, hogy a dedikált átjáró kiépítése befejeződött-e.

Az alkalmazás konfigurálása az integrált gyorsítótár használatára

Dedikált átjáró kiépítésekor a rendszer automatikusan létrehoz egy integrált gyorsítótárat. Ha nem kell az integrált gyorsítótárat használnia, nem kell az Azure Cosmos DB-t használó összes alkalmazást csatlakoztatnia a dedikált átjáróhoz. A dedikált átjáró hozzáadása nem befolyásolja az Azure Cosmos DB-hez való csatlakozás meglévő módjait. Előfordulhat például, hogy az egyik CosmosClient átjáró móddal és a dedikált átjáróvégponttal csatlakozik, míg a másik CosmosClient közvetlen módot használ.

Hitelesítés szerepköralapú hozzáférés-vezérléssel

A dedikált átjáró ugyanazokat az engedélyeket, szerepkördefiníciókat és szerepkör-hozzárendeléseket használja, mint az Azure Cosmos DB. Ha már rendelkezik szerepköralapú hozzáférés-vezérléssel (RBAC) az Adatsík-műveletekhez az Azure Cosmos DB-fiókban, akkor azt is használhatja a dedikált átjáróhoz való hitelesítéshez. Ismerje meg az RBAC-t az Azure Cosmos DB adatsík-műveleteihez .

Konfigurálja a CosmosClient dedikált átjáróvégpont, a hitelesítő adatok és az átjáró kapcsolati módjának beállításával. Minden dedikált átjáróvégpont ugyanazt a mintát követi. Távolítsa el documents.azure.com az eredeti végpontról, és cserélje le a helyére sqlx.cosmos.azure.com. A dedikált átjárók végpontja mindig ugyanaz lesz, még akkor is, ha eltávolítja és újra létrehozza azt.

using Azure.Core;
using Azure.Identity;
using Microsoft.Azure.Cosmos;

string endpoint = "<dedicated-gateway-endpoint>";

TokenCredential credential = new DefaultAzureCredential();

CosmosClient client = new(endpoint, credential, new CosmosClientOptions { ConnectionMode = ConnectionMode.Gateway });

Fontos

A .NET SDK-ban a közvetlen kapcsolati mód az alapértelmezett. Kifejezetten konfigurálnia kell az átjáró módot a dedikált átjáró használatához.

Hitelesítés kapcsolati sztring

  1. Módosítsa az alkalmazás kapcsolati sztring az új dedikált átjáróvégpont használatára.

    A frissített dedikált átjáró kapcsolati sztring a Kulcsok panelen található:

    Képernyőkép az Azure Portal kulcsainak lapjáról a dedikált átjáróval kapcsolati sztring.

    Minden dedikált átjáró kapcsolati sztring ugyanazt a mintát követi. Távolítsa el documents.azure.com az eredeti kapcsolati sztring, és cserélje le.sqlx.cosmos.azure.com A dedikált átjárók mindig ugyanazzal a kapcsolati sztring rendelkeznek, még akkor is, ha eltávolítja és újra létrehozza azt.

  2. Ha a .NET-et vagy a Java SDK-t használja, állítsa a kapcsolati módot átjáró módra. Ez a lépés nem szükséges a Python- és Node.js SDK-khoz, mivel az átjáró módon kívül további csatlakozási lehetőségekkel sem rendelkeznek.

Fontos

Ha a legújabb .NET- vagy Java SDK-verziót használja, az alapértelmezett kapcsolati mód a közvetlen mód. Az integrált gyorsítótár használatához felül kell bírálnia ezt az alapértelmezett beállítást.

Kérelmek konzisztenciájának módosítása

Győződjön meg arról, hogy a kérés konzisztenciája munkamenet vagy végleges. Ha nem, a kérés mindig megkerüli az integrált gyorsítótárat. Egy adott konzisztenciát az összes olvasási művelethez a legegyszerűbben úgy konfigurálhat, ha fiókszinten állítja be. Konzisztenciát a kérelem szintjén is konzisztenciát konfigurálhat, ami akkor ajánlott, ha csak az olvasások egy részhalmazát szeretné használni az integrált gyorsítótár használatához.

MaxIntegratedCacheStaleness beállítása

Konfigurálja MaxIntegratedCacheStalenessazt a maximális időtartamot, amelyben hajlandó elviselni az elavult gyorsítótárazott adatokat. Javasoljuk, hogy a MaxIntegratedCacheStaleness lehető legnagyobb értéket állítsa be, mert növeli annak valószínűségét, hogy az ismétlődő pontolvasások és lekérdezések gyorsítótár-találatok lehetnek. Ha 0 értékre állítjaMaxIntegratedCacheStaleness, az olvasási kérés soha nem fogja használni az integrált gyorsítótárat a konzisztenciaszinttől függetlenül. Ha nincs konfigurálva, az alapértelmezett érték MaxIntegratedCacheStaleness 5 perc.

Feljegyzés

A MaxIntegratedCacheStaleness beállítás akár 10 év is lehet. A gyakorlatban ez az érték a maximális elavultság, és a gyorsítótár hamarabb alaphelyzetbe állítható a csomópontok újraindítása miatt, amelyek előfordulhatnak.

A beállítás az MaxIntegratedCacheStaleness egyes SDK-k alábbi verzióiban támogatott:

SDK Támogatott verziók
.NET SDK v3 >= 3.30.0
Java SDK v4 >= 4.34.0
Node.js SDK >=3.17.0
Python SDK >=4.3.1
FeedIterator<MyClass> myQuery = container.GetItemQueryIterator<MyClass>(new QueryDefinition("SELECT * FROM c"), requestOptions: new QueryRequestOptions
        {
            DedicatedGatewayRequestOptions = new DedicatedGatewayRequestOptions 
            { 
                MaxIntegratedCacheStaleness = TimeSpan.FromMinutes(30) 
            }
        }
);

Az integrált gyorsítótár megkerülése

BypassIntegratedCache A kérés beállításával szabályozhatja, hogy mely kérések használják az integrált gyorsítótárat. Az integrált gyorsítótárat megkerülő írások, pontolvasások és lekérdezések nem használnak gyorsítótár-tárolót, így helyet takarítanak meg más elemek számára. A gyorsítótárat megkerülő kérések továbbra is a dedikált átjárón keresztül lesznek irányítva. Ezek a kérések a háttérrendszerből és a költség-kérelemegységekből lesznek kézbesítve.

A gyorsítótár megkerülése az egyes SDK-k alábbi verzióiban támogatott:

SDK Támogatott verziók
.NET SDK v3 >= 3.39.0
Java SDK v4 >= 4.49.0
Node.js SDK >= 4.1.0
Python SDK Nem támogatott
FeedIterator<MyClass> myQuery = container.GetItemQueryIterator<MyClass>(new QueryDefinition("SELECT * FROM c"), requestOptions: new QueryRequestOptions
        {
            DedicatedGatewayRequestOptions = new DedicatedGatewayRequestOptions 
            { 
                BypassIntegratedCache = true
            }
        }
);

Gyorsítótár-találatok ellenőrzése

Végül újraindíthatja az alkalmazást, és ellenőrizheti az ismétlődő pontolvasások vagy lekérdezések integrált gyorsítótár-találatait, és ellenőrizheti, hogy a kérelem díja 0-e. Miután módosította a CosmosClient dedikált átjáróvégpont használatára, a rendszer az összes kérést a dedikált átjárón keresztül irányítja át.

Ahhoz, hogy egy olvasási kérés (pontolvasás vagy lekérdezés) az integrált gyorsítótárat használja, az alábbi feltételek mindegyikének teljesülnie kell:

  • Az ügyfél csatlakozik a dedikált átjáróvégponthoz
  • Az ügyfél átjáró módot használ (a Python és Node.js SDK-k mindig átjáró módot használnak)
  • A kérés konzisztenciáját munkamenetre vagy véglegesre kell állítani

Feljegyzés

Van visszajelzése az integrált gyorsítótárról? Hallani akarjuk! Nyugodtan megoszthatja visszajelzéseit közvetlenül az Azure Cosmos DB mérnöki csapatával: cosmoscachefeedback@microsoft.com

Következő lépések