Procedura di configurazione della distribuzione globale in Azure Cosmos DB usando l'API MongoDBHow to setup Azure Cosmos DB global distribution using the MongoDB API

Questo articolo illustra come usare il portale di Azure per configurare la distribuzione globale in Azure Cosmos DB e quindi connettersi tramite l'API MongoDB.In this article, we show how to use the Azure portal to setup Azure Cosmos DB global distribution and then connect using the MongoDB API.

Questo articolo illustra le attività seguenti:This article covers the following tasks:

  • Configurare la distribuzione globale tramite il portale di AzureConfigure global distribution using the Azure portal
  • Configurare la distribuzione globale tramite l'API MongoDBConfigure global distribution using the MongoDB API

In questo video di Azure Friday, con Scott Hanselman e Karthik Raman, Principal Engineering Manager, sono disponibili altre informazioni sulla distribuzione globale in Azure Cosmos DB.You can learn about Azure Cosmos DB global distribution in this Azure Friday video with Scott Hanselman and Principal Engineering Manager Karthik Raman.

Per informazioni sul funzionamento della replica di database globale in Azure Cosmos DB, vedere Distribuire i dati a livello globale con Azure Cosmos DB.For more information about how global database replication works in Azure Cosmos DB, see Distribute data globally with Cosmos DB.

Aggiungere aree di database globali tramite il portale di AzureAdd global database regions using the Azure Portal

Azure Cosmos DB è disponibile in tutte le aree di Azure del mondo.Azure Cosmos DB is available in all Azure regions world-wide. 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.After selecting the default consistency level for your database account, you can associate one or more regions (depending on your choice of default consistency level and global distribution needs).

  1. Nella barra a sinistra del portale di Azure fare clic su Azure Cosmos DB.In the Azure portal, in the left bar, click Azure Cosmos DB.
  2. Nel pannello Azure Cosmos DB selezionare l'account di database da modificare.In the Azure Cosmos DB blade, select the database account to modify.
  3. Nel pannello dell'account fare clic su Replica i dati a livello globale dal menu.In the account blade, click Replicate data globally from the menu.
  4. Nel pannello Replica i dati a livello globale selezionare le aree da aggiungere o rimuovere facendo clic su di esse nella mappa e quindi scegliere Salva.In the Replicate data globally blade, select the regions to add or remove by clicking regions in the map, and then click Save. 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.There is a cost to adding regions, see the pricing page or the Distribute data globally with Azure Cosmos DB article for more information.

    Fare clic sulle aree nella mappa per aggiungerle o rimuoverle

Dopo l'aggiunta di una seconda area, nel pannello Replica i dati a livello globale del portale viene abilitata l'opzione Failover manuale.Once you add a second region, the Manual Failover option is enabled on the Replicate data globally blade in the portal. È possibile usare questa opzione per testare il processo di failover o per modificare l'area di scrittura primaria.You can use this option to test the failover process or change the primary write region. Dopo avere aggiunto una terza area, l'opzione Priorità di failover viene abilitata nello stesso pannello per poter modificare l'ordine di failover per le operazioni di lettura.Once you add a third region, the Failover Priorities option is enabled on the same blade so that you can change the failover order for reads.

Selezionare aree di database globaliSelecting global database regions

Esistono due scenari comuni per la configurazione di due o più aree:There are two common scenarios for configuring two or more regions:

  1. Offerta di accesso con bassa latenza ai dati indipendentemente dalla posizione del mondo in cui si trovano gli utenti finaliDelivering low-latency access to data to end users no matter where they are located around the globe
  2. Aggiunta di resilienza a livello di area per garantire continuità aziendale e ripristino di emergenza (BCDR)Adding regional resiliency for business continuity and disaster recovery (BCDR)

Per offrire l'accesso con bassa latenza agli utenti finali, è consigliabile distribuire l'applicazione e aggiungere Azure Cosmos DB nelle aree corrispondenti alla località in cui si trovano gli utenti dell'applicazione.For delivering low-latency to end-users, it is recommended to deploy both the application and add Azure Cosmos DB in the regions thats correspond to where the application's users are located.

Per finalità BCDR, è consigliabile aggiungere le aree in base alle coppie di aree descritte nell'articolo Continuità aziendale e ripristino di emergenza nelle aree geografiche abbinate di Azure.For BCDR, it is recommended to add regions based on the region pairs described in the Business continuity and disaster recovery (BCDR): Azure Paired Regions article.

Verifica della configurazione a livello di area usando l'API MongoDBVerifying your regional setup using the MongoDB API

Il modo più semplice per verificare in modo approfondito la configurazione globale nell'API per MongoDB consiste nell'eseguire il comando isMaster() da Mongo Shell.The simplest way of double checking your global configuration within API for MongoDB is to run the isMaster() command from the Mongo Shell.

Da Mongo Shell:From your Mongo Shell:

   db.isMaster()

Risultati dell'esempio:Example results:

   {
      "_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 tramite l'API MongoDBConnecting to a preferred region using the MongoDB API

L'API MongoDB consente di specificare le preferenze di lettura della raccolta per un database distribuito globalmente.The MongoDB API enables you to specify your collection's read preference for a globally distributed database. Per ottenere letture a bassa latenza e disponibilità elevata globale, è consigliabile impostare le preferenze di lettura della raccolta su nearest.For both low latency reads and global high availability, we recommend setting your collection's read preference to nearest. Una preferenza di lettura di tipo nearest viene configurata per la lettura dall'area più vicina.A read preference of nearest is configured to read from the closest region.

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 secondary preferred.For applications with a primary read/write region and a secondary region for disaster recovery (DR) scenarios, we recommend setting your collection's read preference to secondary preferred. Una preferenza di lettura di tipo secondary preferred viene configurata per la lettura dall'area secondaria quando l'area primaria non è disponibile.A read preference of secondary preferred is configured to read from the secondary region when the primary region is unavailable.

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

Se infine si vogliono specificare manualmente le aree di lettura,Lastly, if you would like to manually specify your read regions. è possibile impostare il valore Tag per l'area entro la preferenza di lettura.You can set the region Tag within your read preference.

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.That's it, that completes this tutorial. Per informazioni su come gestire la coerenza dell'account con replica globale, vedere Livelli di coerenza in Azure Cosmos DB.You can learn how to manage the consistency of your globally replicated account by reading Consistency levels 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.And for more information about how global database replication works in Azure Cosmos DB, see Distribute data globally with Azure Cosmos DB.

Passaggi successiviNext steps

In questa esercitazione sono state eseguite le operazioni seguenti:In this tutorial, you've done the following:

  • Configurare la distribuzione globale tramite il portale di AzureConfigure global distribution using the Azure portal
  • Configurare la distribuzione globale tramite le API di DocumentDBConfigure global distribution using the DocumentDB APIs

È ora possibile passare all'esercitazione successiva per imparare a sviluppare in locale usando l'emulatore locale di Azure Cosmos DB.You can now proceed to the next tutorial to learn how to develop locally using the Azure Cosmos DB local emulator.