Condividi tramite


Configurazione del silo Orleans

Per ottenere una rapida panoramica, vengono mostrati tutti i parametri di configurazione pertinenti (inclusi quelli facoltativi) nella sintassi XML seguente:

<?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=...")
        });
    });

Come di consueto, tutte le impostazioni di configurazione possono anche essere lette e scritte in modo programmatico tramite i rispettivi membri della classe GlobalConfiguration.

GlobalConfiguration.ServiceId è un ID arbitrario per identificare il servizio. Deve essere identico per tutti i cluster e tutti i silo.

La sezione Orleans.Runtime.MultiClusterNetwork è facoltativa. Se non è presente, tutto il supporto multi-cluster è disabilitato per questo silo.

I parametri obbligatori ClusterId e GossipChannels sono descritti nella sezione comunicazione multi-cluster.

I parametri facoltativi MaxMultiClusterGateways e BackgroundGossipInterval sono descritti nella sezione comunicazione multi-cluster.

Il parametro DefaultMultiCluster facoltativo è descritto nella sezione configurazione multi-cluster.

I parametri facoltativi UseGlobalSingleInstanceByDefault,GlobalSingleInstanceRetryInterval e GlobalSingleInstanceNumberRetries sono descritti nella sezione relativa a Grani globali a istanza singola.

Configurazione del client Orleans

Per il client Orleans non sono necessarie ulteriori configurazioni. Lo stesso client potrebbe non connettersi ai silo in cluster diversi (in tale situazione il silo rifiuta la connessione).