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.
| Aspecto | Una sola máquina | Varias máquinas |
|---|---|---|
| Nodos | Varios nodos en una máquina (PartitionsPerNode > 1) | Un nodo por máquina (PartitionsPerNode = 1) |
| Managers | Uno (localhost) | Uno por máquina, todos listados |
| Caso de uso | Desarrollo y pruebas en una sola máquina | Producció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.