Saltar al contenido principal

Configuración

Un cliente de Clustron Zaris se configura con una cadena de conexión. Mantienes esa cadena en la configuración estándar de .NET — la sección ConnectionStrings de appsettings.json — y la eliges por nombre, exactamente como harías con una cadena de conexión de SQL Server o de cualquier otra base de datos. No hay un ajuste de modo separado ni una lista de seeds que mantener; la cadena lo lleva todo.

Usa la configuración para poder gestionar los ajustes del almacén externamente en lugar de codificarlos de forma fija. Por ejemplo, puedes ejecutar un almacén en proceso durante el desarrollo y un clúster remoto en producción enviando un archivo appsettings diferente con la misma clave.

Configuración básica​

Define tus almacenes bajo la sección estándar ConnectionStrings. Cada almacén es una entrada cuya clave es un nombre que eliges y cuyo valor es una cadena de conexión de Zaris. El ejemplo de abajo define un almacén llamado default que se conecta a un clúster remoto:

{
"ConnectionStrings": {
"default": "zaris://localhost:7861/default"
}
}

Anatomía de la cadena de conexión​

Cada almacén se describe mediante una cadena de conexión que lleva el transporte, los hosts, el nombre del almacén y cualquier opción de seguridad o de tiempos de espera.

Esquema y hosts​

El esquema selecciona el transporte: zaris:// para una conexión en texto plano o zariss:// para TLS. Después vienen uno o más seeds host:port separados por comas:

zaris://10.0.0.11:7861,10.0.0.12:7861/default

Solo necesitas un seed válido. El cliente lo usa para descubrir el resto de los nodos del clúster. Lista más de un seed para resiliencia y failover, por si el primero no está disponible. Cada host es un endpoint con la forma <Machine/IP>:<ClientPort>, donde el puerto es el puerto de cliente establecido con -BaseClientPort cuando se creó el almacén.

Para un almacén en proceso (incrustado), usa el host reservado inproc y sin puerto — zaris://inproc/default. Un almacén en proceso se ejecuta en memoria dentro de tu proceso y no puede usar TLS.

Nombre del almacén y opciones​

La ruta después de los hosts es el nombre del almacén (obligatorio); debe ser igual al id del clúster. Los parámetros de consulta opcionales llevan la seguridad y los tiempos de espera: ?token=env:VAR (o file:/path, o un literal), ?ca=/path/ca.pem, ?tlsInsecure=true (solo desarrollo), ?connectTimeoutMs=5000 y ?requestTimeoutMs=5000.

Registra la configuración​

Registra cada almacén desde la configuración con AddClustronZarisFromConnectionStrings. Esto lee la sección estándar ConnectionStrings y registra cada entrada de Zaris que definiste arriba. Las entradas que no son de Zaris, como una cadena de SQL Server, se ignoran.

using Clustron.Zaris.Client.DependencyInjection;

services.AddClustronZarisFromConnectionStrings(configuration);

Para registrar solo una entrada con nombre en su lugar, pasa la configuración y la clave:

services.AddClustronZaris(configuration, "default");

Obtén un cliente​

Resuelve un cliente por el nombre que definiste en la configuración. Esto devuelve un cliente para el almacén default:

var client = await services
.GetRequiredService<IZarisClientProvider>()
.GetAsync("default");

Define múltiples almacenes​

Puedes definir cualquier número de almacenes bajo ConnectionStrings, una entrada por clave — algunos remotos, algunos en proceso. Este ejemplo define un almacén remoto orders y un almacén en proceso local. Resuelve cada uno por nombre con GetAsync.

{
"ConnectionStrings": {
"orders": "zaris://orders-node:7861/orders",
"local": "zaris://inproc/local"
}
}
services.AddClustronZarisFromConnectionStrings(configuration); // registers "orders" and "local"

var ordersClient = await provider.GetAsync("orders");
var localClient = await provider.GetAsync("local");

La configuración mantiene los ajustes del almacén en un solo lugar, te permite cambiar entre en proceso y remoto editando una cadena, admite múltiples almacenes y funciona con la inyección de dependencias estándar de .NET.

Próximos pasos​