Lezen in het Engels

Delen via


Orleans-toepassing

Een typische Orleans-toepassing bestaat uit een cluster van serverprocessen (silo's) waar korrels leven en een set clientprocessen, meestal webservers, die externe aanvragen ontvangen, deze omzetten in korrelmethode-aanroepen en resultaten retourneren. Het eerste wat u moet doen om een Orleans-toepassing uit te voeren, is daarom een cluster van silo's te starten. Voor testdoeleinden kan een cluster bestaan uit één silo. Voor een betrouwbare productie-implementatie willen we meer dan één silo in een cluster voor fouttolerantie en schaal.

Zodra het cluster wordt uitgevoerd, kunnen we een of meer clientprocessen starten die verbinding maken met het cluster en aanvragen naar de korrels kunnen verzenden. Clients maken verbinding met een speciaal TCP-eindpunt op silo's - gateway. Standaard is voor elke silo in een cluster een clientgateway ingeschakeld. Clients kunnen dus parallel verbinding maken met alle silo's voor betere prestaties en tolerantie.

Een silo configureren en starten

Een silo wordt programmatisch geconfigureerd via een ClusterConfiguration object. Het kan rechtstreeks worden geïnstantieerd en gevuld, instellingen uit een bestand laden of met verschillende beschikbare helpermethoden voor verschillende implementatieomgevingen worden gemaakt. Voor lokale tests is de eenvoudigste manier om de helpermethode te gebruiken LocalhostPrimarySilo . Het configuratieobject wordt vervolgens doorgegeven aan een nieuw exemplaar van SiloHost klasse, dat daarna kan worden geïnitialiseerd en gestart.

U kunt een leeg consoletoepassingsproject maken dat is gericht op .NET Framework 4.6.1 of hoger voor het hosten van een silo. Voeg het Microsoft.Orleans.Server NuGet-metapakket toe aan het project.

Install-Package Microsoft.Orleans.Server

Hier volgt een voorbeeld van hoe een lokale silo kan worden gestart:

var siloConfig = ClusterConfiguration.LocalhostPrimarySilo();
var silo = new SiloHost("Test Silo", siloConfig);
silo.InitializeOrleansSilo();
silo.StartOrleansSilo();

Console.WriteLine("Press Enter to close.");
// wait here
Console.ReadLine();

// shut the silo down after we are done.
silo.ShutdownOrleansSilo();

Een client configureren en er verbinding mee maken

Client voor het maken van verbinding met een cluster silo's en het verzenden van aanvragen naar korrels wordt programmatisch geconfigureerd via een ClientConfiguration object en een ClientBuilder. ClientConfiguration het object kan rechtstreeks worden geïnstantieerd en ingevuld, instellingen uit een bestand laden of met verschillende beschikbare helpermethoden voor verschillende implementatieomgevingen worden gemaakt. Voor lokale tests is de eenvoudigste manier om de helpermethode te gebruiken LocalhostSilo . Het configuratieobject wordt vervolgens doorgegeven aan een nieuw exemplaar van ClientBuilder klasse.

ClientBuilder biedt meer methoden voor het configureren van extra clientfuncties. Nadat deze ClientBuilder.Build() methode van het ClientBuilder object is aangeroepen om een implementatie van IClusterClient de interface op te halen. Ten slotte roepen IClusterClient.Connect() we de methode aan voor het geretourneerde object om verbinding te maken met het cluster.

U kunt een leeg consoletoepassingsproject maken dat is gericht op .NET Framework 4.6.1 of hoger voor het uitvoeren van een client of het consoletoepassingsproject dat u hebt gemaakt voor het hosten van een silo, opnieuw gebruiken. Voeg het Microsoft.Orleans.Client NuGet-metapakket toe aan het project.

Install-Package Microsoft.Orleans.Client

Hier volgt een voorbeeld van hoe een client verbinding kan maken met een lokale silo:

var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();

Productieconfiguraties

De hier gebruikte configuratievoorbeelden zijn voor het testen van silo's en clients die op dezelfde machine worden uitgevoerd als localhost. In productie worden silo's en clients meestal uitgevoerd op verschillende servers en worden geconfigureerd met een van de betrouwbare clusterconfiguratieopties. Meer informatie hierover vindt u in de configuratiehandleiding en in de beschrijving van clusterbeheer.

Volgende stappen