Konfiguration av lokal utveckling
Ett arbetsexempelprogram som är avsett Orleans för 7.0 finns i Orleans: Hello World. Exemplet är värd för klienten och silon i .NET-konsolprogram som fungerar på olika plattformar, medan korn- och gränssnitten är inriktade på .NET Standard 2.0.
Dricks
Äldre versioner av Orleansfinns i Orleans exempelprojekt.
Silokonfiguration
Vi rekommenderar att du använder NuGet-paketet Microsoft.Extensions.Hosting för att konfigurera och köra silon. När du utvecklar en Orleans silo behöver du även Microsoft.Orleans. Server NuGet-paket. För lokal Orleans siloutveckling konfigurerar du localhost-klustring, som är konfigurerad för att använda loopback-adressen. Om du vill använda localhost-kluster anropar du UseLocalhostClustering tilläggsmetoden. Tänk på det här exemplet Program.cs fil för silovärden:
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
})
.RunConsoleAsync();
Koden ovan:
- Skapar en standardvärdbyggare.
UseOrleans
Anropar tilläggsmetoden för att konfigurera silon.UseLocalhostClustering
Anropar tilläggsmetoden på angiven ISiloBuilder för att konfigurera silon att använda localhost-kluster.RunConsoleAsync
Kedjar metoden för att köra silon som ett konsolprogram.
För lokal utveckling, se nedanstående exempel på hur du konfigurerar en silo för det fallet. Den konfigurerar och startar en silo som lyssnar på loopback
adressen och 11111
30000
som silo- respektive gatewayportar.
Microsoft.Orleans.Server
Lägg till NuGet-metapaketet i projektet.
dotnet add package Microsoft.Orleans.Server
Du måste konfigurera ClusterOptions via ISiloBuilder Configure
-metoden, ange att du vill LocalhostClustering
använda klustringsalternativet med den här silon som primär och sedan konfigurera siloslutpunkter.
Anropet ConfigureApplicationParts lägger uttryckligen till sammansättningen med kornklasser i programkonfigurationen. Den lägger också till alla refererade sammansättningar på grund av WithReferences tillägget. När de här stegen har slutförts byggs silovärden och silon kommer igång.
Du kan skapa ett tomt konsolprogramprojekt som riktar sig till .NET Framework 4.6.1 eller senare för att vara värd för en silo och ett .NET-konsolprogram.
Här är ett exempel på hur en lokal silo kan startas:
try
{
var host = await BuildAndStartSiloAsync();
Console.WriteLine("Press Enter to terminate...");
Console.ReadLine();
await host.StopAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
static async Task<ISiloHost> BuildAndStartSiloAsync()
{
var host = new HostBuilder()
.UseOrleans(builder =>
{
builder.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.Configure<EndpointOptions>(
options => options.AdvertisedIPAddress = IPAddress.Loopback)
.ConfigureLogging(logging => logging.AddConsole());
})
.Build();
await host.StartAsync();
return host;
}
Klientkonfiguration
Vi rekommenderar att du använder NuGet-paketet Microsoft.Extensions.Hosting för att konfigurera och köra klienter (förutom silo). Du behöver även Microsoft.Orleans. NuGet-klientpaket . Om du vill använda localhost-klustring på den förbrukande klienten anropar UseLocalhostClustering du tilläggsmetoden. Tänk på det här exemplet Program.cs fil för klientvärden:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
Koden ovan:
- Skapar en standardvärdbyggare.
UseOrleansClient
Anropar tilläggsmetoden för att konfigurera klienten.UseLocalhostClustering
Anropar tilläggsmetoden på angiven IClientBuilder för att konfigurera klienten att använda localhost-kluster.UseConsoleLifetime
Anropar tilläggsmetoden för att konfigurera klienten att använda konsolens livslängd.StartAsync
Anropar metoden på variabelnhost
för att starta klienten.
För lokal utveckling, se nedanstående exempel på hur du konfigurerar en klient för det fallet. Den konfigurerar en klient som ansluter till en loopback
silo.
Microsoft.Orleans.Client
Lägg till NuGet-metapaketet i projektet. När du har bekantat dig med API:et kan du välja och välja vilka exakta paket som ingår i Microsoft.Orleans.Client
du faktiskt behöver och referera till dem i stället.
Install-Package Microsoft.Orleans.Client
Du måste konfigurera ClientBuilder med ett kluster-ID som matchar det du angav för den lokala silon och ange statisk klustring som klustringsval som pekar på gatewayporten för silon
ConfigureApplicationParts
anrop lägger uttryckligen till sammansättningen med korngränssnitt i programkonfigurationen.
När de här stegen har slutförts kan vi skapa klienten och Connect()
metoden på den för att ansluta till klustret.
Du kan skapa ett tomt konsolprogramprojekt för .NET Framework 4.6.1 eller senare för att köra en klient eller återanvända konsolprogramprojektet som du skapade för att vara värd för en silo.
Här är ett exempel på hur en klient kan ansluta till en lokal silo:
var client = new ClientBuilder()
.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.ConfigureLogging(logging => logging.AddConsole())
var client = builder.Build();
await client.Connect();