Share via


Configuration silo Orleans

Pour obtenir une vue d’ensemble rapide, nous affichons tous les paramètres de configuration pertinents (notamment les paramètres facultatifs) dans la syntaxe XML ci-dessous :

<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
  <Globals>
    <MultiClusterNetwork
      ClusterId="clusterid"
      DefaultMultiCluster="uswest,europewest,useast"
      BackgroundGossipInterval="30s"
      UseGlobalSingleInstanceByDefault="false"
      GlobalSingleInstanceRetryInterval="30s"
      GlobalSingleInstanceNumberRetries="3"
      MaxMultiClusterGateways="10">
         <GossipChannel Type="..." ConnectionString="..."/>
         <GossipChannel Type="..." ConnectionString="..."/>
    </MultiClusterNetwork>
    <SystemStore ServiceId="some-guid" />
  </Globals>
</OrleansConfiguration>
var silo = new HostBuilder()
    .UseOrleans(builder =>
    {
        builder.Configure<ClusterInfo>(options =>
        {
            options.ClusterId = "us3";
            options.ServiceId = "myawesomeservice";
        })
        .Configure<MultiClusterOptions>(options =>
        {
            options.HasMultiClusterNetwork = true;
            options.DefaultMultiCluster = new[] { "us1", "eu1", "us2" };
            options.BackgroundGossipInterval = TimeSpan.FromSeconds(30);
            options.UseGlobalSingleInstanceByDefault = false;
            options.GlobalSingleInstanceRetryInterval = TimeSpan.FromSeconds(30);
            options.GlobalSingleInstanceNumberRetries = 3;
            options.MaxMultiClusterGateways = 10;
            options.GossipChannels.Add(
                "AzureTable",
                "DefaultEndpointsProtocol=https;AccountName=usa;AccountKey=...");
            options.GossipChannels.Add(
                "AzureTable",
                "DefaultEndpointsProtocol=https;AccountName=europe;AccountKey=...")
        });
    });

Comme d’habitude, tous les paramètres de configuration peuvent également être lus et écrits par programmation, via les membres respectifs de la classe GlobalConfiguration.

GlobalConfiguration.ServiceId est un ID arbitraire permettant d’identifier ce service. Il doit être identique pour tous les clusters et tous les silos.

La section Orleans.Runtime.MultiClusterNetwork est facultative. Si elle n’est pas présente, la prise en charge multicluster est désactivée pour ce silo.

Les paramètres obligatoiresClusterId et GossipChannels sont expliqués dans la section relative à la communication multicluster.

Les paramètres facultatifs MaxMultiClusterGateways et BackgroundGossipInterval sont expliqués dans la section relative à la communication multicluster.

Le paramètre facultatif DefaultMultiCluster est expliqué dans la section relative à la configuration multicluster.

Les paramètres facultatifs UseGlobalSingleInstanceByDefault, GlobalSingleInstanceRetryInterval et GlobalSingleInstanceNumberRetries sont expliqués dans la section relative aux grains GSI (Global Single Instance).

Configuration client Orleans

Aucune configuration supplémentaire n’est nécessaire pour le client Orleans. Le même client ne peut pas se connecter aux silos de différents clusters (le silo refuse la connexion dans ce cas).