Dela via


Orleans-program

Ett typiskt Orleans-program består av ett kluster av serverprocesser (silor) där kornen finns och en uppsättning klientprocesser, vanligtvis webbservrar, som tar emot externa begäranden, förvandlar dem till kornmetodanrop och returnerar resultat. Därför är det första man behöver göra för att köra ett Orleans-program att starta ett kluster med silor. I testsyfte kan ett kluster bestå av en enda silo. För en tillförlitlig produktionsdistribution vill vi ha mer än en silo i ett kluster för feltolerans och skalning.

När klustret körs kan vi starta en eller flera klientprocesser som ansluter till klustret och kan skicka begäranden till kornen. Klienter ansluter till en särskild TCP-slutpunkt på silos – gateway. Som standard har varje silo i ett kluster en klientgateway aktiverad. Så klienter kan ansluta till alla silor parallellt för bättre prestanda och motståndskraft.

Konfigurera och starta en silo

En silo konfigureras programmatiskt via ett ClusterConfiguration objekt. Den kan instansieras och fyllas i direkt, läsa in inställningar från en fil eller skapas med flera tillgängliga hjälpmetoder för olika distributionsmiljöer. För lokal testning är det enklaste sättet att använda LocalhostPrimarySilo hjälpmetoden. Konfigurationsobjektet skickas sedan till en ny instans av SiloHost klassen, som kan initieras och startas efter det.

Du kan skapa ett tomt konsolprogramprojekt som är inriktat på .NET Framework 4.6.1 eller senare för att vara värd för en silo. Microsoft.Orleans.Server Lägg till NuGet-metapaketet i projektet.

Install-Package Microsoft.Orleans.Server

Här är ett exempel på hur en lokal silo kan startas:

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();

Konfigurera och ansluta till en klient

Klienten för att ansluta till ett kluster med silor och skicka begäranden till kornigheter konfigureras programmatiskt via ett ClientConfiguration objekt och en ClientBuilder. ClientConfiguration objektet kan instansieras och fyllas i direkt, läsa in inställningar från en fil eller skapas med flera tillgängliga hjälpmetoder för olika distributionsmiljöer. För lokal testning är det enklaste sättet att använda LocalhostSilo hjälpmetoden. Konfigurationsobjektet skickas sedan till en ny instans av ClientBuilder klassen.

ClientBuilder exponerar fler metoder för att konfigurera ytterligare klientfunktioner. Efter att ClientBuilder.Build() den metoden för ClientBuilder objektet anropas för att få en implementering av IClusterClient gränssnittet. Slutligen anropar IClusterClient.Connect() vi metoden för det returnerade objektet för att ansluta till klustret.

Du kan skapa ett tomt konsolprogramprojekt som är inriktat på .NET Framework 4.6.1 eller senare för att köra en klient eller återanvända konsolprogramprojektet som du skapade som värd för en silo. Microsoft.Orleans.Client Lägg till NuGet-metapaketet i projektet.

Install-Package Microsoft.Orleans.Client

Här är ett exempel på hur en klient kan ansluta till en lokal silo:

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

Produktionskonfigurationer

Konfigurationsexemplen som vi använde här är för att testa silor och klienter som körs på samma dator som localhost. I produktion körs silor och klienter vanligtvis på olika servrar och konfigureras med något av de tillförlitliga konfigurationsalternativen för klustret. Mer information finns i konfigurationsguiden och i beskrivningen av Klusterhantering.

Nästa steg