Olvasások globális terjesztése az Azure Cosmos DB MongoDB-hez készült API-jával
A KÖVETKEZŐKRE VONATKOZIK: MongoDB
Ez a cikk bemutatja, hogyan terjesztheti globálisan az olvasási műveleteket a MongoDB olvasási beállításaival az Azure Cosmos DB MongoDB-hez készült API-jával.
Előfeltételek
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Alternatív lehetőségként kipróbálhatja ingyenesen az Azure Cosmos DB-t Azure-előfizetés, díjfizetés és elköteleződés nélkül. Vagy használhatja az Azure Cosmos DB Emulatort ehhez az oktatóanyaghoz a következő kapcsolati sztring:
mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true
Ebből a rövid útmutatóból megtudhatja, hogyan állíthat be egy Azure Cosmos DB-fiókot globális disztribúcióval, majd csatlakozhat hozzá az Azure Portal használatával.
A mintaalkalmazás klónozása
Nyisson meg egy git terminálablakot, például a git bash eszközt, és a cd
paranccsal lépejen át egy munkakönyvtárba.
Az alábbi parancsok futtatásával klónozza a mintatárházat. Az érdeklődési platform alapján használja az alábbi mintaadattárak egyikét:
- .NET-mintaalkalmazás
- NodeJS-mintaalkalmazás
- Mongoose mintaalkalmazás
- Java-mintaalkalmazás
- SpringBoot-mintaalkalmazás
git clone <sample repo url>
Az alkalmazás futtatása
A használt platformtól függően telepítse a szükséges csomagokat, és indítsa el az alkalmazást. A függőségek telepítéséhez kövesse a mintaalkalmazás-adattárban található README-t. A NodeJS mintaalkalmazásban például az alábbi parancsokkal telepítheti a szükséges csomagokat, és elindíthatja az alkalmazást.
cd mean
npm install
node index.js
Az alkalmazás megpróbál csatlakozni egy MongoDB-forráshoz, és meghiúsul, mert a kapcsolati sztring érvénytelen. A kapcsolati sztring url
frissítéséhez kövesse a README lépéseit. Emellett frissítse az olvasási readFromRegion
régiót az Azure Cosmos DB-fiókban. Az alábbi utasítások a NodeJS-mintából származnak:
* Next, substitute the `url`, `readFromRegion` in App.Config with your Azure Cosmos DB account's values.
Az alábbi lépések elvégzése után a mintaalkalmazás fut, és a következő kimenetet hozza létre:
connected!
readDefaultfunc query completed!
readFromNearestfunc query completed!
readFromRegionfunc query completed!
readDefaultfunc query completed!
readFromNearestfunc query completed!
readFromRegionfunc query completed!
readDefaultfunc query completed!
readFromSecondaryfunc query completed!
Olvasás olvasási beállítási módban
A MongoDB protokoll a következő olvasási beállításokat biztosítja az ügyfelek számára:
- Elsődleges
- PRIMARY_PREFERRED
- MÁSODLAGOS
- SECONDARY_PREFERRED
- LEGKÖZELEBBI
Az olvasási beállítási módok viselkedéséről a MongoDB olvasási viselkedésének részletes dokumentációjában olvashat. Az Azure Cosmos DB-ben az elsődleges térképek a WRITE régióra, a másodlagos térképek pedig a READ régióra lesznek leképezve.
A gyakori forgatókönyvek alapján a következő beállítások használatát javasoljuk:
- Ha magas rendelkezésre állásra és alacsony késésű olvasásra van szükség, használja a LEGKÖZELEBBI olvasási beállítási módot. Ez a beállítás az olvasási műveleteket a legközelebbi elérhető régióra irányítja. Vegye figyelembe, hogy ha a legközelebbi régió a WRITE régió, akkor ezek a műveletek erre a régióra lesznek irányítva.
- Ha magas rendelkezésre állásra és az olvasások földrajzi eloszlására van szükség (a késés nem kényszer), akkor használja a PRIMARY PREFERRED vagy a SECONDARY PREFERRED olvasási beállítási módot. Ez a beállítás az olvasási műveleteket egy elérhető ÍRÁSI vagy OLVASÁSI régióra irányítja. Ha a régió nem érhető el, akkor a rendszer az olvasási beállítások viselkedésének megfelelően a következő elérhető régióba irányítja a kérelmeket.
A mintaalkalmazás alábbi kódrészlete bemutatja, hogyan konfigurálható a LEGKÖZELEBBI olvasási beállítás a NodeJS-ben:
var query = {};
var readcoll = client.db('regionDB').collection('regionTest', {readPreference: ReadPreference.NEAREST});
readcoll.find(query).toArray(function(err, data) {
assert.equal(null, err);
console.log("readFromNearestfunc query completed!");
});
Hasonlóképpen, az alábbi kódrészlet bemutatja, hogyan konfigurálható a SECONDARY_PREFERRED Olvasási beállítás a NodeJS-ben:
var query = {};
var readcoll = client.db('regionDB').collection('regionTest', {readPreference: ReadPreference.SECONDARY_PREFERRED});
readcoll.find(query).toArray(function(err, data) {
assert.equal(null, err);
console.log("readFromSecondaryPreferredfunc query completed!");
});
Az Olvasási beállítás paraméterként is megadható readPreference
a kapcsolati sztring URI-beállításokban:
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017?ssl=true&replicaSet=globaldb&readPreference=nearest';
// Database Name
const dbName = 'myproject';
// Use connect method to connect to the Server
MongoClient.connect(url, function(err, client) {
console.log("Connected correctly to server");
const db = client.db(dbName);
client.close();
});
Tekintse meg a megfelelő mintaalkalmazás-adattárat más platformokhoz, például a .NET-hez és a Java-hoz.
Olvasás címkékkel
Az Olvasási beállítások mód mellett a MongoDB protokoll lehetővé teszi címkék használatát az olvasási műveletek irányításához. Az Azure Cosmos DB MongoDB-hez készült API-jában a region
címke alapértelmezés szerint szerepel a isMaster
válasz részeként:
"tags": {
"region": "West US"
}
Ezért a MongoClient a címkét és a region
régiónevet is használhatja az olvasási műveletek adott régiókba való irányításához. Az Azure Cosmos DB-fiókok esetében a régiónevek az Azure Portal bal oldalán, a Settings-Replica> data globálisan alatt találhatók. Ez a beállítás hasznos az olvasási elkülönítés eléréséhez – olyan esetekben, amikor az ügyfélalkalmazás csak egy adott régióba szeretné irányítani az olvasási műveleteket. Ez a beállítás ideális nem éles/elemzési típusú forgatókönyvekhez, amelyek a háttérben futnak, és nem éles környezetben kritikus fontosságú szolgáltatások.
A mintaalkalmazás alábbi kódrészlete bemutatja, hogyan konfigurálható az olvasási beállítás címkékkel a NodeJS-ben:
var query = {};
var readcoll = client.db('regionDB').collection('regionTest',{readPreference: new ReadPreference(ReadPreference.SECONDARY_PREFERRED, {"region": "West US"})});
readcoll.find(query).toArray(function(err, data) {
assert.equal(null, err);
console.log("readFromRegionfunc query completed!");
});
Tekintse meg a megfelelő mintaalkalmazás-adattárat más platformokhoz, például a .NET-hez és a Java-hoz.
Ebben a cikkben megtanulta, hogyan terjesztheti globálisan az olvasási műveleteket az Olvasási beállítások használatával az Azure Cosmos DB MongoDB-hez készült API-jával.
Az erőforrások eltávolítása
Ha nem folytatja az alkalmazás használatát, törölje a cikk által létrehozott összes erőforrást az Azure Portalon az alábbi lépésekkel:
- Az Azure Portal bal oldali menüjében kattintson az Erőforráscsoportok lehetőségre, majd kattintson a létrehozott erőforrás nevére.
- Az erőforráscsoport lapján kattintson a Törlés elemre, írja be a törölni kívánt erőforrás nevét a szövegmezőbe, majd kattintson a Törlés gombra.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: