Compartir a través de


Configuración de una base de datos distribuida globalmente mediante la API de Azure Cosmos DB para MongoDB

SE APLICA A: 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.

En este artículo se tratan las tareas siguientes:

Incorporación de regiones a la base de datos global mediante Azure Portal

Azure Cosmos DB está disponible en todas las regiones de Azure globales. 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).

  1. En la barra izquierda de Azure Portal, haga clic en Azure Cosmos DB.

  2. En la página Azure Cosmos DB, seleccione la cuenta de base de datos que quiere modificar.

  3. En la página de la cuenta, haga clic en Replicar datos globalmente en el menú.

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

    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. Puede usar esta opción para probar el proceso de conmutación por error o cambiar la región de escritura principal. 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.

Selección de regiones de la base de datos global

Hay dos escenarios comunes para configurar dos o más regiones:

  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.
  2. Agregar resistencia regional para la continuidad empresarial y la recuperación ante desastres (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.

En el caso de BCDR, se recomienda agregar las regiones en función de los pares de regiones descritos en el artículo Replicación entre regiones de Azure: Continuidad empresarial y recuperación ante desastres.

Comprobación de la configuración regional

Una manera sencilla de comprobar la configuración global con la API de Azure Cosmos DB for MongoDB es ejecutar el comando isMaster() desde el Shell de Mongo.

Desde el Shell de Mongo:

   db.isMaster()

Resultados de ejemplo:

   {
      "_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 preferencia

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. Para lecturas de poca latencia y alta disponibilidad global, se recomienda establecer las preferencias de lectura de la colección en más cercano. Una preferencia de lectura de más cercano está configurada para leer desde la región más cercana.

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 primaria preferida. Una preferencia de lectura de primaria preferida está configurada para leer desde la región secundaria cuando la región primaria no está disponible.

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

Por último, si quiere hacerlo manualmente, especifique las áreas de lectura. Puede establecer la etiqueta de región dentro de sus preferencias de lectura.

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. Para información sobre cómo administrar la coherencia de la cuenta replicada globalmente, lea Niveles de coherencia en 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.

Pasos siguientes

En este tutorial, ha hecho lo siguiente:

  • Configuración de la distribución global con Azure Portal
  • Configuración de la distribución global mediante la API de Azure Cosmos DB para MongoDB

Ahora puede continuar en el tutorial siguiente para aprender a desarrollar localmente con el emulador local de Azure Cosmos DB.

¿Intenta planear la capacidad de una migración a Azure Cosmos DB? Para ello, puede usar información sobre el clúster de bases de datos existente.