Condividi tramite


Configurare un database distribuito a livello globale usando l'API di Azure Cosmos DB per MongoDB

SI APPLICA A: MongoDB

Questo articolo illustra come usare il portale di Azure per configurare un database distribuito a livello globale e quindi connettersi a esso usando l'API di Azure Cosmos DB per MongoDB.

Questo articolo illustra le attività seguenti:

Aggiungere aree di database globali tramite il portale di Azure

Azure Cosmos DB è disponibile in tutte le aree di Azure a livello mondiale. Dopo aver selezionato il livello di coerenza predefinito per l'account di database, è possibile associare una o più aree, a seconda del livello di coerenza predefinito e delle esigenze di distribuzione globale scelti.

  1. Nella barra a sinistra del portale di Azure fare clic su Azure Cosmos DB.

  2. Nella pagina Azure Cosmos DB selezionare l'account di database da modificare.

  3. Nella pagina dell'account fare clic su Replica i dati a livello globale dal menu.

  4. Nella pagina Replica i dati a livello globale selezionare le aree da aggiungere o rimuovere facendo clic su di esse nella mappa e quindi scegliere Salva. L'aggiunta di aree ha un costo. Per altre informazioni, vedere la pagina relativa ai prezzi o l'articolo Distribuire i dati a livello globale con Azure Cosmos DB.

    Fare clic sulle aree nella mappa per aggiungerle o rimuoverle

Dopo l'aggiunta di una seconda area, viene abilitata l'opzione Failover manuale nella pagina Replica i dati a livello globale del portale. È possibile usare questa opzione per testare il processo di failover o per modificare l'area di scrittura primaria. Dopo avere aggiunto una terza area, l'opzione Priorità di failover viene abilitata nella stessa pagina per poter modificare l'ordine di failover per le operazioni di lettura.

Selezionare aree di database globali

Esistono due scenari comuni per la configurazione di due o più aree:

  1. Offerta di accesso con bassa latenza ai dati indipendentemente dalla posizione del mondo in cui si trovano gli utenti finali
  2. Aggiunta di resilienza a livello di area per garantire continuità aziendale e ripristino di emergenza (BCDR)

Per offrire l'accesso con bassa latenza agli utenti finali, è consigliabile distribuire l'applicazione e Azure Cosmos DB nelle aree corrispondenti alla località in cui si trovano gli utenti dell'applicazione.

Ai fini della continuità aziendale e del ripristino di emergenza, è consigliabile aggiungere le aree in base alle coppie di aree descritte nell'articolo Replica tra più aree in Azure: continuità aziendale e ripristino di emergenza.

Verifica della configurazione a livello di area

Un modo semplice per verificare la configurazione globale con l'API Azure Cosmos DB for MongoDB consiste nell'eseguire il comando isMaster() da Mongo Shell.

Da Mongo Shell:

   db.isMaster()

Risultati dell'esempio:

   {
      "_t": "IsMasterResponse",
      "ok": 1,
      "ismaster": true,
      "maxMessageSizeBytes": 4194304,
      "maxWriteBatchSize": 1000,
      "minWireVersion": 0,
      "maxWireVersion": 2,
      "tags": {
         "region": "South India"
      },
      "hosts": [
         "vishi-api-for-mongodb-southcentralus.documents.azure.com:10255",
         "vishi-api-for-mongodb-westeurope.documents.azure.com:10255",
         "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
      ],
      "setName": "globaldb",
      "setVersion": 1,
      "primary": "vishi-api-for-mongodb-southindia.documents.azure.com:10255",
      "me": "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
   }

Connessione a un'area preferita

L'API di Azure Cosmos DB per MongoDB consente di specificare le preferenze di lettura della raccolta per un database distribuito globalmente. Per ottenere letture a bassa latenza e disponibilità elevata globale, è consigliabile impostare le preferenze di lettura della raccolta su nearest. Una preferenza di lettura di tipo nearest viene configurata per la lettura dall'area più vicina.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Nearest));

Per applicazioni con un'area di lettura/scrittura primaria e un'area secondaria per scenari di ripristino di emergenza, è consigliabile impostare le preferenze di lettura della raccolta su primary preferred. Una preferenza di lettura di tipo primary preferredviene configurata per la lettura dall'area secondaria quando l'area primaria non è disponibile.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.SecondaryPreferred));

Se infine si vogliono specificare manualmente le aree di lettura, è possibile impostare il valore Tag per l'area entro la preferenza di lettura.

var collection = database.GetCollection<BsonDocument>(collectionName);
var tag = new Tag("region", "Southeast Asia");
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Secondary, new[] { new TagSet(new[] { tag }) }));

L'esercitazione è terminata. Per informazioni su come gestire la coerenza dell'account con replica globale, vedere Livelli di coerenza in Azure Cosmos DB. Per informazioni sul funzionamento della replica di database globale in Azure Cosmos DB, vedere Distribuire i dati a livello globale con Azure Cosmos DB.

Passaggi successivi

In questa esercitazione sono state eseguite le operazioni seguenti:

  • Configurare la distribuzione globale tramite il portale di Azure
  • Configurare la distribuzione globale usando l'API di Azure Cosmos DB per MongoDB

È ora possibile passare all'esercitazione successiva per imparare a sviluppare in locale usando l'emulatore locale di Azure Cosmos DB.

Si sta tentando di pianificare la capacità per una migrazione ad Azure Cosmos DB? È possibile usare le informazioni del cluster di database esistente per la pianificazione della capacità.