Udostępnij za pośrednictwem


Orleans Konfiguracja silosu

Aby uzyskać szybki przegląd, pokażemy wszystkie odpowiednie parametry konfiguracji (w tym opcjonalne) w poniższej składni XML:

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

Jak zwykle wszystkie ustawienia konfiguracji można również odczytywać i zapisywać programowo za pośrednictwem odpowiednich składowych GlobalConfiguration klasy.

Jest GlobalConfiguration.ServiceId to dowolny identyfikator identyfikujący tę usługę. Musi być taka sama dla wszystkich klastrów i wszystkich silosów.

Sekcja jest opcjonalna Orleans.Runtime.MultiClusterNetwork — jeśli nie istnieje, dla tego silosu zostanie wyłączona obsługa wszystkich wielu klastrów.

Wymagane parametry ClusterId i GossipChannels zostały wyjaśnione w sekcji dotyczącej komunikacji z wieloma klastrami.

Parametry opcjonalne MaxMultiClusterGateways i BackgroundGossipInterval zostały wyjaśnione w sekcji Komunikacja z wieloma klastrami.

Opcjonalny parametr DefaultMultiCluster wyjaśniono w sekcji Konfiguracja wielu klastrów.

Opcjonalne parametry UseGlobalSingleInstanceByDefault, GlobalSingleInstanceRetryIntervali GlobalSingleInstanceNumberRetries zostały wyjaśnione w sekcji Global-Single-Instance Grains.

Orleans konfiguracja klienta

Dla klienta nie jest wymagana Orleans żadna dodatkowa konfiguracja. Ten sam klient może nie łączyć się z silosami w różnych klastrach (silos odrzuca połączenie w tej sytuacji).