Inicio rápido con un clúster local

Tres nodos en un solo proceso te dejan ver cómo se reparten los datos que escribes.

Vas a arrancar un clúster de tres nodos en tu máquina con una sola orden, escribir datos en él y ver sus nodos y sus rangos con las mismas órdenes que usarías con un clúster de tres máquinas. Sirve para desarrollar contra varios nodos sin preparar máquinas.

Qué vas a conseguir

Tres nodos que forman un clúster dentro de un solo proceso, con los datos en memoria. Tardas unos cinco minutos.

Antes de empezar

Necesitas el binario teseladb y mongosh. Si aún no tienes el binario, sigue Instalar en Linux.

Paso 1. Arranca los tres nodos

Shell
teseladb dev --nodes 3

El nodo k escucha en el puerto de clientes más k, así que los tres atienden en 27017, 27018 y 27019, siempre en 127.0.0.1. La orden escribe una línea ready por nodo. Apunta el puerto de administración que el log anota para cada uno, porque lo usas en el paso 3.

Paso 2. Conéctate y escribe datos

Shell
mongosh "mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/"
JavaScript
db.pedidos.insertMany([
  { cliente: "Ana", total: 30 },
  { cliente: "Luis", total: 12 },
]);

Abre otra terminal y conéctate con los tres nodos en la cadena; este clúster de desarrollo no usa TLS ni usuarios, así que la cadena no lleva ninguna opción. La respuesta a insertMany confirma la escritura y da el _id de cada documento:

{
  acknowledged: true,
  insertedIds: {
...
  }
}

Paso 3. Mira los nodos y los rangos

Shell
teseladb admin --node 127.0.0.1:<puerto> nodes
teseladb admin --node 127.0.0.1:<puerto> ranges --collection test.pedidos

Usa como <puerto> el puerto de administración de cualquiera de los tres nodos. Las dos órdenes preguntan al mismo nodo, que responde por todo el clúster.

Comprobar que funciona

nodes lista los tres nodos como activos. ranges muestra los rangos de la colección pedidos, con las réplicas de cada rango y el nodo que lo lidera; con dos documentos solo hay un rango, que tiene una réplica en cada nodo.

Limpiar

Para el proceso con Ctrl+C. Los datos estaban en memoria, así que desaparecen con el proceso y el siguiente teseladb dev empieza con un clúster vacío.

Siguientes pasos