Share via


Configuración de los silos de Orleans

Como introducción rápida, se muestran todos los parámetros de configuración pertinentes (incluidos los opcionales) en esta sintaxis de 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=...")
        });
    });

Como de costumbre, todas las opciones de configuración también se pueden leer y escribir mediante programación, a través de los miembros respectivos de la clase GlobalConfiguration.

GlobalConfiguration.ServiceId es un Id. arbitrario para identificar este servicio. Debe ser el mismo para todos los clústeres y todos los silos.

La sección Orleans.Runtime.MultiClusterNetwork es opcional; si no está presente, toda la compatibilidad con varios clústeres se deshabilita en este silo.

Los parámetros necesariosClusterId y GossipChannels se explican en la sección de Comunicación entre varios clústeres.

Los parámetros opcionales MaxMultiClusterGateways y BackgroundGossipInterval se explican en la sección de Comunicación entre varios clústeres.

El parámetro opcional DefaultMultiCluster se explica en la sección de Configuración de varios clústeres.

Los parámetros opcionales UseGlobalSingleInstanceByDefault, GlobalSingleInstanceRetryInterval y GlobalSingleInstanceNumberRetries se explican en la sección de Granos de instancia única global.

Configuración del cliente de Orleans

No se requiere ninguna configuración adicional para el cliente de Orleans. Es posible que el mismo cliente no se conecte a silos de clústeres diferentes (el silo rechaza la conexión en esa situación).