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
- Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
- Egy meglévő alkalmazás, amely az Azure Cosmos DB-t használja. Ha nincs ilyenje, íme néhány példa.
- Meglévő Azure Cosmos DB API for NoSQL-fiók.
A dedikált átjáró kiépítése
Lépjen egy Azure Cosmos DB-fiókra az Azure Portalon, és válassza a Dedikált átjáró lapot.
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.
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:
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
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ó:
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.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 MaxIntegratedCacheStaleness
azt 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