Configuración de una base de datos distribuida globalmente mediante la API de Azure Cosmos DB para MongoDBSet up global distributed database using Azure Cosmos DB's API for MongoDB

En este artículo se muestra cómo usar Azure Portal para configurar una base de datos distribuida globalmente y conectarla mediante la API de Azure Cosmos DB para MongoDB.In this article, we show how to use the Azure portal to setup a global distributed database and connect to it using Azure Cosmos DB's API for MongoDB.

En este artículo se tratan las tareas siguientes:This article covers the following tasks:

Incorporación de regiones a la base de datos global mediante Azure PortalAdd global database regions using the Azure portal

Azure Cosmos DB está disponible en todas las regiones de Azure de todo el mundo.Azure Cosmos DB is available in all Azure regions worldwide. Tras seleccionar el nivel de coherencia predeterminado para la cuenta de base de datos, puede asociar una o varias regiones (según la elección del nivel de coherencia y las necesidades de distribución global).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. En la barra izquierda de Azure Portal, haga clic en Azure Cosmos DB.In the Azure portal, in the left bar, click Azure Cosmos DB.

  2. En la página Azure Cosmos DB, seleccione la cuenta de base de datos que quiere modificar.In the Azure Cosmos DB page, select the database account to modify.

  3. En la página de cuentas, haga clic en Replicar datos globalmente en el menú.In the account page, click Replicate data globally from the menu.

  4. En la página Replicar datos globalmente, seleccione las regiones que quiere agregar o quitar haciendo clic en ellas en el mapa y, después, haga clic en Guardar.In the Replicate data globally page, select the regions to add or remove by clicking regions in the map, and then click Save. Agregar regiones conlleva un costo; consulte la página de precios o el artículo Distribución de datos global con Azure Cosmos DB para más información.There is a cost to adding regions, see the pricing page or the Distribute data globally with Azure Cosmos DB article for more information.

    Haga clic en las regiones en el mapa para agregarlas o quitarlas

Cuando agrega una segunda región, se habilita la opción Conmutación por error manual en la página Replicar datos globalmente del portal.Once you add a second region, the Manual Failover option is enabled on the Replicate data globally page in the portal. Puede usar esta opción para probar el proceso de conmutación por error o cambiar la región de escritura principal.You can use this option to test the failover process or change the primary write region. Cuando agrega una tercera región, la opción Prioridades de conmutación por error se habilita en la misma página para que pueda cambiar el orden de la conmutación por error en las lecturas.Once you add a third region, the Failover Priorities option is enabled on the same page so that you can change the failover order for reads.

Selección de regiones de la base de datos globalSelecting global database regions

Hay dos escenarios comunes para configurar dos o más regiones:There are two common scenarios for configuring two or more regions:

  1. Proporcionar acceso de baja latencia a los datos a los usuarios finales, independientemente de la región del mundo en la que se encuentren.Delivering low-latency access to data to end users no matter where they are located around the globe
  2. Agregar resistencia regional para la continuidad empresarial y la recuperación ante desastres (BCDR).Adding regional resiliency for business continuity and disaster recovery (BCDR)

Para proporcionar latencia baja a los usuarios finales, se recomienda implementar la aplicación y Azure Cosmos DB en las regiones correspondientes a la ubicación de los usuarios de la aplicación.For delivering low-latency to end users, it is recommended that you deploy both the application and Azure Cosmos DB in the regions that correspond to where the application's users are located.

En el caso de BCDR, se recomienda agregar las regiones en función de los pares de regiones descritos en el artículo Continuidad empresarial y recuperación ante desastres (BCDR): regiones emparejadas de 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.

Comprobación de la configuración regionalVerifying your regional setup

Una manera sencilla de comprobar la configuración global con la API de Cosmos DB para MongoDB es ejecutar el comando isMaster() desde el Shell de Mongo.A simple way to check your global configuration with Cosmos DB's API for MongoDB is to run the isMaster() command from the Mongo Shell.

Desde el Shell de Mongo:From your Mongo Shell:

   db.isMaster()

Resultados de ejemplo: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"
   }

Conexión a una región de preferenciaConnecting to a preferred region

La API de Azure Cosmos DB para MongoDB le permite especificar preferencias de lectura de la colección para una base de datos distribuida globalmente.The Azure Cosmos DB's API for MongoDB enables you to specify your collection's read preference for a globally distributed database. Para lecturas de poca latencia y alta disponibilidad global, se recomienda establecer las preferencias de lectura de la colección en más cercano.For both low latency reads and global high availability, we recommend setting your collection's read preference to nearest. Una preferencia de lectura de más cercano está configurada para leer desde la región más cercana.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));

Para las aplicaciones con una región de lectura/escritura principal y una secundaria para escenarios de recuperación ante desastres, se recomienda establecer preferencias de lectura de la colección en secundaria preferida.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 preferencia de lectura de secundaria preferida está configurado para leer desde la región secundaria cuando la región principal no está disponible.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));

Por último, si quiere hacerlo manualmente, especifique las áreas de lectura.Lastly, if you would like to manually specify your read regions. Puede establecer la etiqueta de región dentro de sus preferencias de lectura.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 }) }));

De este modo finaliza este tutorial.That's it, that completes this tutorial. Para información sobre cómo administrar la coherencia de la cuenta replicada globalmente, lea Niveles de coherencia en Azure Cosmos DB.You can learn how to manage the consistency of your globally replicated account by reading Consistency levels in Azure Cosmos DB. Para más información sobre cómo funciona la replicación global de bases de datos en Azure Cosmos DB, consulte Distribución global de datos 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.

Pasos siguientesNext steps

En este tutorial, ha hecho lo siguiente:In this tutorial, you've done the following:

  • Configuración de la distribución global con Azure PortalConfigure global distribution using the Azure portal
  • Configuración de la distribución global mediante la API de Cosmos DB para MongoDBConfigure global distribution using the Cosmos DB's API for MongoDB

Ahora puede continuar en el tutorial siguiente para aprender a desarrollar localmente con el emulador local de Azure Cosmos DB.You can now proceed to the next tutorial to learn how to develop locally using the Azure Cosmos DB local emulator.