Partilhar via


Orleans Configuração do silo

Para obter uma visão geral rápida, mostramos todos os parâmetros de configuração relevantes (incluindo os opcionais) na sintaxe XML abaixo:

<?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 costume, todas as definições de configuração também podem ser lidas e escritas programaticamente, através dos respetivos membros da GlobalConfiguration classe.

O GlobalConfiguration.ServiceId é um ID arbitrário para identificar este serviço. Deve ser igual para todos os clusters e todos os silos.

A Orleans.Runtime.MultiClusterNetwork seção é opcional — se não estiver presente, todo o suporte a vários clusters será desabilitado para este silo.

Os parâmetros ClusterId necessários e GossipChannels são explicados na seção sobre Comunicação Multi-Cluster.

Os parâmetros MaxMultiClusterGateways opcionais e BackgroundGossipInterval são explicados na seção sobre Comunicação Multi-Cluster.

O parâmetro DefaultMultiCluster opcional é explicado na seção sobre Configuração de Multi-Cluster.

Os parâmetros UseGlobalSingleInstanceByDefaultopcionais , GlobalSingleInstanceRetryInterval, e GlobalSingleInstanceNumberRetries são explicados na seção sobre Grãos de instância única global.

Orleans Configuração do cliente

Nenhuma configuração extra é necessária para Orleans o cliente. O mesmo cliente não pode se conectar a silos em clusters diferentes (o silo recusa a conexão nessa situação).