Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour obtenir un exemple d’application de travail ciblant Orleans la version 7.0, consultez Orleans: Hello World. L'exemple héberge le client et le silo dans des applications console .NET qui fonctionnent sur différentes plateformes, tandis que les grains et les interfaces sont conçus pour .NET Standard 2.0.
Conseil
Pour les versions antérieures d’Orleans, consultez Exemples de projets Orleans.
Configuration du silo
Nous vous recommandons d’utiliser le package NuGet Microsoft.Extensions.Hosting pour configurer et exécuter le silo. De plus, lors du développement d’un Orleans silo, vous avez besoin du package NuGet Microsoft.Orleans.Server. Pour le développement local de silo Orleans, configurez le clustering localhost, qui utilise l'adresse de retour. Pour utiliser le clustering localhost, appelez la méthode d’extension UseLocalhostClustering. Considérez cet exemple Program.cs fichier pour l’hôte de silo :
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
})
.RunConsoleAsync();
Le code précédent effectue les opérations suivantes :
- Crée un générateur d’hôte par défaut.
- Appelle la méthode d’extension
UseOrleanspour configurer le silo. - Appelle la méthode d’extension
UseLocalhostClusteringsur le ISiloBuilder donné pour configurer le silo afin qu’il utilise le clustering localhost. - Chaîne la méthode
RunConsoleAsyncpour exécuter le silo en tant qu’application console.
Pour le développement local, reportez-vous à l’exemple ci-dessous montrant comment configurer un silo pour ce cas. Il configure et démarre un silo à l’écoute sur l’adresse loopback , en utilisant 11111 et 30000 en tant que ports de silo et de passerelle, respectivement.
Ajoutez le Microsoft.Orleans.Server méta-package NuGet à votre projet.
dotnet add package Microsoft.Orleans.Server
Vous devez configurer ClusterOptions via la méthode ISiloBuilderConfigure, spécifier que vous souhaitez LocalhostClustering pour le clustering (avec ce silo comme principal), avant de configurer les points de terminaison du silo.
L’appel ConfigureApplicationParts ajoute explicitement l’assembly contenant des classes de grain au programme d’installation de l’application. Il ajoute également tout assembly référencé en raison de l’extension WithReferences. Une fois ces étapes terminées, générez l’hôte de silo et démarrez le silo.
Vous pouvez créer un projet d’application console vide ciblant .NET Framework 4.6.1 ou version ultérieure pour l’hébergement d’un silo.
Voici un exemple de démarrage d’un silo local :
try
{
var host = await BuildAndStartSiloAsync();
Console.WriteLine("Press Enter to terminate...");
Console.ReadLine();
await host.StopAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
static async Task<ISiloHost> BuildAndStartSiloAsync()
{
var host = new HostBuilder()
.UseOrleans(builder =>
{
builder.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.Configure<EndpointOptions>(
options => options.AdvertisedIPAddress = IPAddress.Loopback)
.ConfigureLogging(logging => logging.AddConsole());
})
.Build();
await host.StartAsync();
return host;
}
Configuration de client
Nous vous recommandons d’utiliser le package NuGet Microsoft.Extensions.Hosting pour configurer et exécuter des clients (en plus du silo). Vous avez également besoin du package NuGet Microsoft.Orleans.Client. Pour utiliser le clustering localhost sur le client consommateur, appelez la méthode d’extension UseLocalhostClustering. Prenons cet exemple Program.cs fichier pour l’hôte client :
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
Le code précédent effectue les opérations suivantes :
- Crée un générateur d’hôte par défaut.
- Appelle la méthode d’extension
UseOrleansClientpour configurer le client. - Appelle la méthode d’extension
UseLocalhostClusteringsur le IClientBuilder donné pour configurer le client afin qu’il utilise le clustering localhost. - Appelle la méthode d’extension
UseConsoleLifetimepour configurer le client afin qu’il utilise la durée de vie de la console. - Appelle la méthode
StartAsyncsur la variablehostpour démarrer le client.
Pour le développement local, reportez-vous à l’exemple ci-dessous montrant comment configurer un client pour ce cas. Il configure un client qui se connecte à un loopback silo.
Ajoutez le Microsoft.Orleans.Client méta-package NuGet à votre projet. Une fois que vous êtes familiarisé avec l’API, vous pouvez sélectionner les packages exacts inclus dans Microsoft.Orleans.Client dont vous avez besoin et les utiliser à la place.
Install-Package Microsoft.Orleans.Client
Configurez ClientBuilder avec un ID de cluster correspondant à celui spécifié pour le silo local. Spécifiez le clustering statique comme option de clustering, en l'orientant vers le port de passerelle du silo.
L’appel ConfigureApplicationParts ajoute explicitement l’assembly contenant des interfaces de grain à la configuration de l’application.
Une fois ces étapes effectuées, générez le client et appelez sa Connect() méthode pour vous connecter au cluster.
Vous pouvez créer un projet d’application console vide ciblant .NET Framework 4.6.1 ou version ultérieure pour l’exécution d’un client, ou réutiliser le projet d’application console créé pour héberger le silo.
Voici un exemple de la manière dont un client peut se connecter à un silo local :
var client = new ClientBuilder()
.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.ConfigureLogging(logging => logging.AddConsole())
var client = builder.Build();
await client.Connect();