Saltar al contenido principal

Ejecutar distribuido

Este artículo ejecuta Clustron Zaris como un clúster distribuido. Un clúster reparte el almacén a través de múltiples nodos, donde un nodo es una única instancia en ejecución del almacén. Los nodos comparten datos y coordinan el trabajo a través de la red.

Puedes ejecutar un clúster en una máquina o a través de varias. En ambos casos el almacén forma un clúster; solo difieren dónde se ejecutan los nodos y cómo te conectas a los managers.

Requisitos previos​

Antes de empezar, necesitas Zaris instalado, PowerShell 7 o posterior, y los puertos del clúster abiertos: 7801 para el manager, 7811 para el tráfico entre nodos y 7861 para las conexiones de cliente. En Windows, el instalador abre el rango 7801–7899 por ti.

Elige una configuración​

Cada máquina ejecuta un manager, que coordina el clúster. La diferencia entre las dos configuraciones es cuántos nodos se ejecutan por máquina y a qué managers te conectas.

AspectoUna sola máquinaVarias máquinas
NodosVarios nodos en una máquina (PartitionsPerNode > 1)Un nodo por máquina (PartitionsPerNode = 1)
ManagersUno (localhost)Uno por máquina, todos listados
Caso de usoDesarrollo y pruebas en una sola máquinaProducción a través de servidores

Conéctate al manager​

Conecta el shell de administración al manager antes de crear el almacén. Un workspace es una conexión con nombre a uno o más managers a los que apuntan los cmdlets de administración; crea uno y actívalo con -Activate. Usa la conexión que coincida con tu configuración.

Para una sola máquina, conéctate al único manager local:

New-ZrWorkspace local -Managers localhost:7801 -Activate

Para varias máquinas, conéctate al manager de cada máquina, separados por comas:

New-ZrWorkspace prod -Managers 10.0.0.11:7801,10.0.0.12:7801 -Activate

Si ya existe un workspace con ese nombre, o un manager ya forma parte de otro workspace, actívalo o únete a él en su lugar con Use-ZrWorkspace <name> -Managers <managers>.

Cómo encajan las piezas​

Un clúster distribuido tiene tres roles. Entenderlos hace más claros los pasos de abajo:

  • Managers coordinan el clúster. Uno se ejecuta por máquina.
  • Nodos son las instancias de almacén que alojan los datos.
  • Clientes se conectan al clúster para leer y escribir datos.

1. Crea el almacén​

Define el almacén con New-ZrStore. PartitionsPerNode establece cuántos procesos de partición se ejecutan en cada máquina, y ReplicationFactor establece cuántas copias de cada partición mantener. En una sola máquina, establece PartitionsPerNode mayor que 1 para ejecutar varios nodos; a través de máquinas, déjalo en el valor predeterminado de 1 para que cada máquina conectada ejecute un nodo. Una sola llamada a New-ZrStore crea el almacén en cada manager conectado.

New-ZrStore `
-Name TestStore `
-PartitionsPerNode 2 `
-ReplicationFactor 1 `
-BaseClusterPort 7811 `
-BaseClientPort 7861

Cuando varios nodos se ejecutan en una máquina, Zaris asigna sus puertos automáticamente incrementando los valores iniciales. BaseClusterPort 7811 se convierte en 7811, 7812, y así sucesivamente, y BaseClientPort 7861 se convierte en 7861, 7862, y así sucesivamente.

2. Inicia el clúster​

Inicia el almacén para poner en línea cada nodo configurado y formar el clúster.

Start-ZrStore TestStore

3. Conecta un cliente​

Conecta un cliente con Connect-ZrStore, dándole un endpoint desde el que empezar.

Connect-ZrStore -ConnectionString "zaris://10.0.0.11:7861/TestStore"

Solo necesitas proporcionar un endpoint, llamado seed. El cliente usa el seed para descubrir el resto de los nodos, así que no tienes que listar cada servidor. Aun así puedes listar múltiples endpoints — separados por comas en la cadena de conexión, por ejemplo zaris://10.0.0.11:7861,10.0.0.12:7861/TestStore — para resiliencia si el seed no está disponible.

¿Qué es un endpoint?​

Un endpoint es una máquina o dirección IP unida a un puerto de cliente, con la forma <Machine/IP>:<ClientPort>. La máquina es el servidor que ejecuta el nodo, y el puerto de cliente es el que estableciste con -BaseClientPort cuando creaste el almacén. Por ejemplo, localhost:7861 se conecta a un nodo en la máquina local, y 10.0.0.11:7861 se conecta a un nodo en un servidor remoto.

4. Verifica el clúster​

Almacena un valor y vuelve a leerlo para confirmar que el clúster está funcionando.

Set-ZrItem -Key "hello" -Value "world"

Get-ZrItem -Key "hello"

Lo que acabas de hacer​

Formaste un clúster Zaris cuyos nodos comparten datos y coordinación. Como el estado se comparte entre nodos, el clúster también admite locks distribuidos, contadores y suscripciones de watch. Desde aquí puedes mover tu configuración a archivos de configuración y empezar a llamar al almacén desde tus aplicaciones.

Próximos pasos​