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).