Поделиться через


Orleans Конфигурация silo

Чтобы получить краткий обзор, мы показываем все соответствующие параметры конфигурации (включая необязательные) в синтаксисе 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=...")
        });
    });

Как правило, все параметры конфигурации также можно читать и записывать программным способом с помощью соответствующих членов GlobalConfiguration класса.

Это GlobalConfiguration.ServiceId произвольный идентификатор для идентификации этой службы. Он должен быть одинаковым для всех кластеров и всех силосов.

Этот Orleans.Runtime.MultiClusterNetwork раздел необязателен, если он отсутствует, для этого фрагмента отключена поддержка нескольких кластеров.

Необходимые параметры ClusterId и GossipChannels описаны в разделе о многокластивом взаимодействии.

Необязательные параметры MaxMultiClusterGateways и BackgroundGossipInterval описаны в разделе " Связь с несколькими кластерами".

Необязательный параметр DefaultMultiCluster описан в разделе о конфигурации с несколькими кластерами.

Необязательные параметры UseGlobalSingleInstanceByDefaultи GlobalSingleInstanceNumberRetries GlobalSingleInstanceRetryIntervalописаны в разделе о глобальных одно экземплярах.

Orleans конфигурация клиента

Дополнительная конфигурация для Orleans клиента не требуется. Тот же клиент может не подключаться к силосам в разных кластерах (silo отказывается от подключения в этой ситуации).