Dela via


Orleans silokonfiguration

För att få en snabb översikt visar vi alla relevanta konfigurationsparametrar (inklusive valfria) i XML-syntaxen nedan:

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

Som vanligt kan alla konfigurationsinställningar också läsas och skrivas programmatiskt via respektive medlemmar i GlobalConfiguration klassen.

GlobalConfiguration.ServiceId är ett godtyckligt ID för att identifiera den här tjänsten. Den måste vara densamma för alla kluster och alla silor.

Avsnittet Orleans.Runtime.MultiClusterNetwork är valfritt – om det inte finns är allt stöd för flera kluster inaktiverat för den här silon.

De obligatoriska parametrarna ClusterId och GossipChannels beskrivs i avsnittet om kommunikation med flera kluster.

De valfria parametrarna MaxMultiClusterGateways och BackgroundGossipInterval beskrivs i avsnittet om kommunikation med flera kluster.

Den valfria parametern DefaultMultiCluster beskrivs i avsnittet om konfiguration av flera kluster.

De valfria parametrarna UseGlobalSingleInstanceByDefault, GlobalSingleInstanceRetryIntervaloch GlobalSingleInstanceNumberRetries förklaras i avsnittet Global-Single-Instance Grains.

Orleans klientkonfiguration

Ingen extra konfiguration krävs för Orleans klienten. Samma klient kanske inte ansluter till silor i olika kluster (silo nekar anslutningen i den situationen).