Construcción y uso del clúster MongoDB

Autor: doremi

Hay tres formas principales de construir clústeres mongodb, el modo maestro-esclavo, el modo de conjunto de réplicas y el modo de fragmentación. Los tres modos tienen sus propias ventajas y desventajas, y son adecuados para diferentes ocasiones. El conjunto de réplicas es el más utilizado y el modo maestro-esclavo se usa menos ahora El modo sharding es el más completo, pero la configuración y el mantenimiento son más complicados. En este artículo, echemos un vistazo a cómo construir el modo Conjunto de réplicas.

El conjunto de réplicas de Mongodb tiene dos propósitos principales. Uno es la redundancia de datos para la recuperación de fallas. Cuando las fallas de hardware u otras razones causan tiempo de inactividad, las réplicas se pueden usar para la recuperación. La otra es separar lecturas y escrituras. Las solicitudes de lectura se distribuyen a las réplicas para reducir la presión de lectura en el primario.

El conjunto de réplicas es una colección de instancias de mongod, que tienen el mismo contenido de datos. Contiene tres tipos de roles:
(1) El nodo principal (Principal)
recibe todas las solicitudes de escritura y luego sincroniza la modificación con todos los nodos secundarios. Un conjunto de réplicas solo puede tener un nodo principal. Cuando el principal falla, otros nodos secundarios o árbitros volverán a elegir un nodo principal. De forma predeterminada, la solicitud de lectura también se envía al nodo principal para su procesamiento. Si es necesario reenviarla al nodo secundario, el cliente debe modificar la configuración de la conexión.

(2) El nodo de réplica (secundario)
mantiene el mismo conjunto de datos que el nodo principal. Cuando el nodo maestro cuelga, participa en la elección del maestro.

(3) El árbitro (Árbitro)
no guarda datos, no participa en la elección del líder y solo vota por la elección del líder. El uso de Arbiter puede reducir los requisitos de hardware para el almacenamiento de datos Arbiter casi no tiene grandes requisitos de recursos de hardware para ejecutar, pero el punto importante es que no debe implementarse en la misma máquina que otros nodos de datos en el entorno de producción.
Tenga en cuenta que la cantidad de nodos en un conjunto de réplicas de conmutación por error automática debe ser un número impar. El propósito es que debe haber una mayoría al elegir el maestro para votar por la decisión de elección del maestro.

(4) El proceso de selección del maestro
. El Secundario está caído y no se verá afectado. Si el Primario está caído, el maestro será reelegido:
Escriba la descripción de la imagen aquí

####Utilice Arbiter para crear un conjunto de réplicas
con un número par de nodos de datos y agregue un conjunto de réplicas compuesto por Arbiter:
Escriba la descripción de la imagen aquí

Construir un clúster

el anfitrión usar
192.168.255.141 nodo maestro
192.168.255.142 Nodo en espera + punto de arbitraje (esclavo+árbitro)

#####Descomprimir mongodb en /opt

tar -zxvf mongodb-linux-x86_64-ubuntu1404-3.2.4

Crear directorio de datos

mkdir -p data/mongodb/{master,slave,arbiter}

##### 2. Cree un archivo de configuración
del nodo maestro:vi /etc/mongodb_master.conf

#master.conf
dbpath=/opt/data/mongodb/master
logpath=/opt/mongodb/master.log
pidfilepath=/opt/mongodb/master.pid
#keyFile=/opt/mongodb/mongodb.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=192.168.255.141
port=27017
#auth=true
oplogSize=100
fork=true
noprealloc=true
#maxConns=4000

Nodo de respaldo:vi /etc/mongodb_slave.conf

#slave.conf
dbpath=/opt/data/mongodb/slave
logpath=/opt/mongodb/slave.log
pidfilepath=/opt/mongodb/slave.pid
#keyFile=/opt/mongodb/mongodb.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=192.168.255.142
port=27017
#auth=true
oplogSize=100
fork=true
noprealloc=true
#maxConns=4000

Punto de arbitraje:vi /etc/mongodb_arbiter.conf

#arbiter.conf
dbpath=/opt/data/mongodb/arbiter
logpath=/opt/mongodb/arbiter.log
pidfilepath=/opt/mongodb/arbiter.pid
#keyFile=/opt/mongodb/mongodb.key
directoryperdb=true
logappend=true
replSet=testdb
bind_ip=192.168.255.142
port=27019
#auth=true
oplogSize=100
fork=true
noprealloc=true
#maxConns=4000

Observaciones:
Las opciones keyFile y auth deben habilitarse después de configurar el clúster y agregar el usuario autenticado
Descripción del parámetro:
dbpath: directorio de datos de almacenamiento
logpath: directorio de datos de registro
pidfilepath: archivo pid
keyFile: se utiliza para verificar archivos entre nodos, el contenido debe mantener la coherencia , permiso 600, solo
el modo de conjunto de réplicas es válido auth: si habilitar la verificación oplogSize: establecer el tamaño de oplog (MB) fork: demonio en ejecución, proceso de creación moprealloc: si deshabilitar la preasignación de archivos de datos (que a menudo afecta el rendimiento) maxConns: número máximo de conexiones, predeterminado 2000 ##### 3, inicia mongodb









/opt/mongodb/bin/mongod -f /etc/mongodb_master.conf
/opt/mongodb/bin/mongod -f /etc/mongodb_slave.conf
/opt/mongodb/bin/mongod -f /etc/mongodb_arbiter.conf

##### 4. Configure en el nodo maestro Conéctese a
mongoDB
Escriba la descripción de la imagen aquí
para configurar el clúster

cfg={ _id:"testdb", members:[ {_id:0,host:'192.168.255.141:27017',priority:2}, {_id:1,host:'192.168.255.142:27017',priority:1}, {_id:2,host:'192.168.255.142:27019',arbiterOnly:true}] };
rs.initiate(cfg)

Escriba la descripción de la imagen aquí
Nota:
El nombre de cfg es opcional, siempre que no entre en conflicto con el parámetro mongodb, _id es el nombre del conjunto de réplicas y el miembro con el valor de prioridad más alto en los miembros es el nodo principal, y arbiterOnly:true debe se agregará al punto de arbitraje; de ​​lo contrario, el modo activo/en espera no surtirá efecto.
La prioridad indica el nivel de prioridad; cuanto mayor sea el valor, significa que el nodo maestro.
arbiterOnly: verdadero significa que el nodo de arbitraje.
Hacer que la configuración de cfg del clúster tenga efecto rs.initiate(cfg)
. surte efecto rs.status()
Escriba la descripción de la imagen aquí
"stateStr": "PRIMARY" significa el nodo maestro, "stateStr": "SECUNDARIO" significa el nodo esclavo, " stateStr”: “ÁRBITRO”, que significa el nodo de arbitraje Comando Agregar nodo Agregar secundario: Agregar punto
de
arbitraje rs.add({host: "192.168.255.141:27019", priority: 1 })
: rs.addArb("192.168.255.142:27019")
Eliminar nodo: rs.remove({host: "192.168.255.141:27019"})
####Configure el uso del clúster de MongoDB en iServer Después de agregar
la ubicación de almacenamiento de MongoDB en la opción de corte de gráficos distribuidos . servicio de mosaicos y navegar por el mapa
Escriba la descripción de la imagen aquí

Escriba la descripción de la imagen aquí

Escriba la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/supermapsupport/article/details/78953080
Recomendado
Clasificación