Sdílet prostřednictvím


Orleans Konfigurace sila

Abychom získali rychlý přehled, zobrazíme všechny relevantní parametry konfigurace (včetně volitelných) v syntaxi XML níže:

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

Jako obvykle lze všechna nastavení konfigurace číst a zapisovat programově prostřednictvím příslušných členů GlobalConfiguration třídy.

Jedná se GlobalConfiguration.ServiceId o libovolné ID pro identifikaci této služby. Musí být stejný pro všechny clustery a všechna sila.

Oddíl Orleans.Runtime.MultiClusterNetwork je nepovinný – pokud není k dispozici, je pro toto silo zakázána všechna podpora více clusterů.

Požadované parametryClusterId a GossipChannels jsou vysvětleny v části Komunikace s více clustery.

Volitelné parametry MaxMultiClusterGateways a BackgroundGossipInterval jsou vysvětleny v části Komunikace s více clustery.

Volitelný parametr DefaultMultiCluster je vysvětlený v části Konfigurace více clusterů.

Volitelné parametry UseGlobalSingleInstanceByDefault, GlobalSingleInstanceRetryIntervala GlobalSingleInstanceNumberRetries jsou vysvětleny v části globální-single-instance grain.

Orleans konfigurace klienta

Pro Orleans klienta není nutná žádná další konfigurace. Stejný klient se nemusí připojit k sila v různých clusterech (silo odmítne připojení v této situaci).