Aller au contenu principal

Exécuter en processus

Le mode en processus exécute le store Zaris à l'intérieur du processus de votre application, sans serveur à installer ni cluster à configurer. C'est la manière la plus rapide d'obtenir un store fonctionnel, et il utilise exactement la même API client qu'un cluster.

Le mode en processus n'est ni une API différente ni un chemin de code différent — c'est simplement une chaîne de connexion. La chaîne zaris://inproc/<store> crée un store embarqué qui conserve ses données en mémoire aussi longtemps que votre application s'exécute. Lorsque vous aurez plus tard besoin de monter en charge ou de coordonner entre instances, vous échangez cette chaîne contre une chaîne qui pointe vers un cluster (zaris://host:port/<store>). Rien d'autre dans votre code ne change.

Prérequis​

Vous avez besoin d'un projet .NET et du SDK .NET. Aucune installation de Zaris n'est requise pour le mode en processus.

1. Créer un projet​

Créez un projet console pour contenir l'exemple. Sautez cette étape si vous avez déjà un projet.

dotnet new console -o zaris-demo
cd zaris-demo

2. Installer le package​

Ajoutez le SDK Zaris à votre projet avec la CLI dotnet :

dotnet add package Clustron.Zaris.SDK

3. Ajouter la chaîne de connexion​

Placez la chaîne de connexion dans appsettings.json sous la section standard ConnectionStrings, indexée par un nom que vous choisissez. La valeur zaris://inproc/demo sélectionne un store en processus nommé demo (inproc est un token d'hôte réservé, comme localhost) :

appsettings.json
{
"ConnectionStrings": {
"demo": "zaris://inproc/demo"
}
}

4. Enregistrer le store​

Enregistrez le store depuis la configuration. AddClustronZaris(configuration, "demo") recherche ConnectionStrings:demo et câble le provider qui distribue les clients.

using Clustron.Zaris.Client.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;

var services = new ServiceCollection()
.AddClustronZaris(configuration, "demo")
.BuildServiceProvider();

5. Obtenir un client​

Résolvez un client pour le store demo depuis le service provider. Vous utilisez ce client pour chaque opération sur le store.

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

6. Stocker et lire une valeur​

Stockez une valeur avec PutAsync, puis relisez-la avec GetAsync. L'argument de type sur GetAsync<string> indique à Zaris comment désérialiser la valeur.

await client.PutAsync("hello", "world");

var value = await client.GetAsync<string>("hello");

Console.WriteLine(value.Value);

Sans injection de dépendances​

Si vous n'avez pas de conteneur DI, connectez-vous de manière impérative avec la même chaîne de connexion. ZarisClient.ConnectAsync est le point d'entrée unique ; il analyse la chaîne et renvoie un client connecté.

using Clustron.Zaris.Client;

var client = await ZarisClient.ConnectAsync("zaris://inproc/demo");

await client.PutAsync("hello", "world");

var value = await client.GetAsync<string>("hello");

Console.WriteLine(value.Value);

Une chaîne littérale comme celle-ci convient pour un échantillon rapide ; dans une vraie application, préférez ZarisClient.ConnectAsync(configuration.GetConnectionString("demo")!) afin que la valeur provienne de la configuration.

Exemple complet​

Les étapes ci-dessus se combinent en un unique programme top-level. Copiez ceci dans Program.cs et exécutez-le avec dotnet run. Il affiche world.

using Clustron.Zaris.Client;

var client = await ZarisClient.ConnectAsync("zaris://inproc/demo");

await client.PutAsync("hello", "world");

var value = await client.GetAsync<string>("hello");

Console.WriteLine(value.Value);

Ce que vous venez de faire​

Vous avez créé un store clé-valeur fonctionnel qui s'exécute entièrement à l'intérieur de votre processus. Aucun appel réseau ni service externe n'a été impliqué, et vous avez utilisé la même API client qu'utilise un cluster. Comme il n'y a pas de saut réseau, le mode en processus est la manière la plus rapide d'exécuter le store.

Passer à un cluster​

Lorsque votre application a besoin de monter en charge ou de coordonner entre plusieurs instances, pointez le store vers un cluster en cours d'exécution. Le seul changement est la chaîne de connexion : remplacez zaris://inproc/demo par une adresse d'amorçage, zaris://host:port/demo (ou zariss:// pour le TLS) :

appsettings.json
{
"ConnectionStrings": {
"demo": "zaris://localhost:7861/demo"
}
}

Votre code des étapes 4 à 6 est inchangé — le même enregistrement, le même GetAsync, les mêmes opérations. Pour exécuter le nœud auquel cette chaîne se connecte, installez Zaris et créez un store.

Étapes suivantes​