Orleans siloconfiguratie
Om een kort overzicht te krijgen, tonen we alle relevante configuratieparameters (inclusief optionele parameters) in de onderstaande XML-syntaxis:
<?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=...")
});
});
Zoals gebruikelijk kunnen alle configuratie-instellingen ook programmatisch worden gelezen en geschreven via de respectieve leden van de GlobalConfiguration klasse.
Het GlobalConfiguration.ServiceId is een willekeurige id voor het identificeren van deze service. Het moet hetzelfde zijn voor alle clusters en alle silo's.
De Orleans.Runtime.MultiClusterNetwork sectie is optioneel, indien niet aanwezig, alle ondersteuning voor meerdere clusters is uitgeschakeld voor deze silo.
De vereiste parameters ClusterId en GossipChannels worden uitgelegd in de sectie over communicatie met meerdere clusters.
De optionele parameters MaxMultiClusterGateways en BackgroundGossipInterval worden uitgelegd in de sectie over communicatie met meerdere clusters.
De optionele parameter DefaultMultiCluster wordt uitgelegd in de sectie over multiclusterconfiguratie.
De optionele parameters UseGlobalSingleInstanceByDefault, GlobalSingleInstanceRetryIntervalen GlobalSingleInstanceNumberRetries worden uitgelegd in de sectie over korrels van globale exemplaren.
Orleans clientconfiguratie
Er is geen extra configuratie vereist voor Orleans de client. Dezelfde client kan geen verbinding maken met silo's in verschillende clusters (de silo weigert de verbinding in die situatie).