Configuration de client
Un client permettant de se connecter à un cluster de silos et d’envoyer des demandes aux grains est configuré par programmation via un objet IHostBuilder et plusieurs classes d’option supplémentaires. Comme les options de silo, les classes d’option de client suivent le modèle d’options de .NET.
Un client permettant de se connecter à un cluster de silos et d’envoyer des demandes aux grains est configuré par programmation via un objet ClientBuilder et plusieurs classes d’option supplémentaires. Comme les options de silo, les classes d’option de client suivent le modèle d’options de .NET.
Conseil
Si vous souhaitez simplement démarrer un silo local et un client local à des fins de développement, consultez Configuration du développement local.
Ajoutez le package NuGet Microsoft.Orleans.Clustering.AzureStorage au projet client.
La configuration de client présente plusieurs aspects de première importance :
- Informations de clustering Orleans
- Fournisseur de clustering
- Composants d’application
Exemple de configuration de client :
var client = new HostBuilder()
.UseOrleansClient((context, clientBuilder) =>
{
clientBuilder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "my-first-cluster";
options.ServiceId = "MyOrleansService";
})
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(
context.Configuration["ORLEANS_AZURE_STORAGE_CONNECTION_STRING"]));
})
.Build();
using Orleans.Hosting;
var client = new ClientBuilder()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "my-first-cluster";
options.ServiceId = "MyOrleansService";
})
.UseAzureStorageClustering(
options => options.ConnectionString = connectionString)
.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly))
.Build();
Nous allons décomposer les étapes utilisées dans cet exemple :
Informations de clustering Orleans
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "orleans-docker";
options.ServiceId = "AspNetSampleApp";
})
Ici, nous avons défini deux choses :
- ClusterOptions.ClusterId sur
"my-first-cluster"
: il s’agit d’un ID unique pour le cluster Orleans. Tous les clients et le silo qui utilisent cet ID peuvent communiquer directement entre eux. Certains pourront choisir d’utiliser un autreClusterId
pour chaque déploiement, par exemple. - ClusterOptions.ServiceId sur
"AspNetSampleApp"
: il s’agit d’un ID unique pour votre application, qui sera utilisé par certains fournisseurs (par exemple, les fournisseurs de persistance). Cet ID doit être stable (ne pas changer) entre les déploiements.
Fournisseur de clustering
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(connectionString);
.UseAzureStorageClustering(
options => options.ConnectionString = connectionString)
Le client découvre toutes les passerelles disponibles dans le cluster en utilisant ce fournisseur. Plusieurs fournisseurs sont disponibles. Dans cet exemple, nous utilisons le fournisseur Table Azure.
Pour plus d'informations, consultez Configuration du serveur.
Composants d’application
.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly))
.WithReferences())
Pour plus d'informations, consultez Configuration du serveur.