Cuando se trata de bases de datos, la seguridad de los datos y el rendimiento son increíblemente importantes. Como empresa, usted quiere asegurarse de que dispone de un sistema de recuperación ante desastres y de que su base de datos no es un cuello de botella para el resto de sus aplicaciones y necesidades empresariales.
Cuando se trata de rendimiento, tiene sentido que los usuarios accedan a las aplicaciones y bases de datos más cercanas a su ubicación. En este caso, ¿cómo asegurarse de que los datos están donde deben estar?
Servidor Couchbase es capaz de replicar datos entre clústeres, lo que supone un gran escenario de recuperación ante desastres y una mejor alineación para la localización de datos. Esto se hace a través de lo que se denomina replicación cruzada de centros de datos (XDCR) y, en realidad, es bastante fácil de gestionar.
Para este ejemplo, vamos a utilizar Docker. Necesitamos ser capaces de crear múltiples clusters de Couchbase, ya sea de forma local o remota en un servicio como AWS. Como esto es solo un ejemplo, Docker era lo más lógico.
Creación de nodos de Couchbase Server como contenedores Docker
Para ser minimalistas, vamos a trabajar para crear dos clusters de Couchbase Server con dos nodos en cada cluster. Esto significa que vamos a necesitar cuatro contenedores en total.
Desde la CLI de Docker, ejecute los siguientes comandos:
1 2 3 4 |
docker ejecute -d -p 7091:8091 --nombre couchbase1 couchbase/servidor docker ejecute -d -p 8091:8091 --nombre couchbase2 couchbase/servidor docker ejecute -d -p 10091:8091 --nombre couchbase3 couchbase/servidor docker ejecute -d -p 11091:8091 --nombre couchbase4 couchbase/servidor |
Los comandos anteriores utilizarán la imagen Docker oficial de Couchbase que se encuentra en el archivo Centro Docker.
Ten en cuenta que cada contenedor tendrá un nombre único y un puerto diferente. Sólo estamos mapeando el puerto admin para tener algo con lo que trabajar desde la máquina anfitriona. Los contenedores serán capaces de comunicarse a lo largo de los otros puertos, siempre y cuando estén dentro de la misma red de contenedores, que son.
Para obtener más información sobre el uso de Couchbase con Docker, echa un vistazo a un artículo anterior que escribí titulado, Uso de Couchbase con Docker e implementación de un clúster NoSQL en contenedores.
Ahora tenemos que crear dos nuevos clusters y añadirles nodos.
Agrupación de nodos para imitar varios centros de datos
Empecemos por crear dos nuevos clusters. Desde el navegador web, navega a http://localhost:7091 y elige crear un nuevo clúster. Sigue el asistente hasta que te lleve al panel de control administrativo.
Ahora navega a http://localhost:10091 desde el navegador web y elige configurar otro clúster nuevo. De nuevo, sigue el asistente hasta que llegues al panel de control administrativo.
En este momento, tienes dos clusters, ambos con un único nodo.
Desde el navegador web, vaya a http://localhost:8091, pero esta vez elija unirse a un clúster existente. Como estamos usando Docker, no puedes usar localhost cuando proporciones un host. En su lugar, debe utilizar el host de su contenedor.
Normalmente, tu IP sería algo como 172.17.0.X, pero puede variar según la plataforma. Asegúrate de unirte al clúster que hayas creado en http://localhost:7091.
Para añadir tu nodo final al último cluster restante, sigue los mismos pasos. Navega a http://localhost:11091 desde tu navegador web y únete al clúster que se encuentra en http://localhost:10091, recordando utilizar la IP del contenedor, no la IP del host.
Con dos clusters disponibles, podemos preocuparnos de replicar entre ellos con XDCR.
Configuración de XDCR con replicación de cubos
El objetivo ahora es replicar entre nuestros dos centros de datos. Recuerda, estamos replicando entre clusters, no nodos. La replicación de nodos dentro del clúster es un concepto similar, pero estamos interesados en replicar fuera del clúster.
Elija un clúster y vaya a la sección XCDR del panel de control administrativo.
Aquí podrás añadir clusters remotos y definir réplicas de Bucket. Seleccione Añadir Cluster Remoto e introduce los detalles del clúster que no estás explorando actualmente. Así que en mi caso, estoy trabajando con mi EE.UU.-SF cluster y quiero añadir mi EE.UU.-NYC cluster. Recuerda, usa la IP del contenedor, no localhost o la IP de tu host.
Después de añadir el clúster remoto, todavía tendrá que definir lo que desea replicar y hacia dónde. Se trata de una replicación unidireccional.
El Bucket que desea replicar debe existir en ambos clusters. Si el Bucket de inicio no existe en su clúster de destino, siga adelante y créelo.
Una vez añadida la replicación, cualquier cambio de documento que realice en el clúster de origen, digamos EE.UU.-SFaparecerá en el cluster remoto, digamos EE.UU.-NYC. Si desea que los cambios vayan en la otra dirección, siga los mismos pasos en el otro clúster o en cualquier otro clúster que desee añadir a la mezcla.
Conclusión
Acaba de ver cómo crear varios grupos de Couchbase utilizando Docker y habilitando la replicación entre centros de datos (XDCR) en ellos. Con XDCR en su lugar, ahora tiene una mejor oportunidad de recuperación ante desastres, además de la localización de datos basada en la región del usuario.
Para obtener más información sobre XDCR con Couchbase, consulte la página Portal para desarrolladores de Couchbase.