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


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:

  1. .NET-mintaalkalmazás
  2. NodeJS-mintaalkalmazás
  3. Mongoose mintaalkalmazás
  4. Java-mintaalkalmazás
  5. 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 urlfrissí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:

  1. Elsődleges
  2. PRIMARY_PREFERRED
  3. MÁSODLAGOS
  4. SECONDARY_PREFERRED
  5. 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:

  1. 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.
  2. 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:

  1. 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.
  2. 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