Configuratie van lokale ontwikkeling
Zie Orleans: Hallo wereld voor een werkende voorbeeldtoepassing die is gericht op Orleans 7.0. Het voorbeeld fungeert als host voor de client en de silo in .NET-consoletoepassingen die op verschillende platforms werken, terwijl de korrels en interfaces gericht zijn op .NET Standard 2.0.
Tip
Zie voorbeeldprojecten voor oudere versies van OrleansOrleans .
Siloconfiguratie
Het is raadzaam om het NuGet-pakket Microsoft.Extensions.Hosting te gebruiken om de silo te configureren en uit te voeren. Bij het ontwikkelen van een Orleans silo hebt u ook microsoft nodig.Orleans Server NuGet-pakket. Voor lokale Orleans siloontwikkeling configureert u localhost-clustering, die is geconfigureerd voor het gebruik van het loopback-adres. Als u localhost-clustering wilt gebruiken, roept u de UseLocalhostClustering extensiemethode aan. Bekijk dit voorbeeld Program.cs bestand van de silohost:
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();;
})
.RunConsoleAsync();
Met de voorgaande code wordt:
- Hiermee maakt u een standaardhostbouwer.
- Roept de
UseOrleans
extensiemethode aan om de silo te configureren. - Roept de
UseLocalhostClustering
extensiemethode aan op de opgegeven ISiloBuilder om de silo te configureren voor het gebruik van localhost-clustering. - Koppelt de
RunConsoleAsync
methode om de silo uit te voeren als consoletoepassing.
Raadpleeg voor lokale ontwikkeling het onderstaande voorbeeld van het configureren van een silo voor dat geval. Het configureert en start een silo die luistert op het loopback
adres, 11111
en 30000
als silo- en gatewaypoorten.
Voeg het Microsoft.Orleans.Server
NuGet-metapakket toe aan het project.
dotnet add package Microsoft.Orleans.Server
U moet via ISiloBuilder Configure
de methode configurerenClusterOptions, opgeven dat u wilt LocalhostClustering
als uw clusteringskeuze met deze silo als primair en vervolgens silo-eindpunten configureren.
De ConfigureApplicationParts aanroep voegt de assembly expliciet toe met graanklassen aan de installatie van de toepassing. Er wordt ook een assembly waarnaar wordt verwezen, toegevoegd vanwege de WithReferences extensie. Nadat deze stappen zijn voltooid, wordt de silohost gebouwd en wordt de silo gestart.
U kunt een leeg consoletoepassingsproject maken dat is gericht op .NET Framework 4.6.1 of hoger voor het hosten van een silo en een .NET-consoletoepassing.
Hier volgt een voorbeeld van hoe een lokale silo kan worden gestart:
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;
}
Clientconfiguratie
Het is raadzaam om het NuGet-pakket Microsoft.Extensions.Hosting te gebruiken om clients te configureren en uit te voeren (naast de silo). U hebt ook microsoft nodig.Orleans Client NuGet-pakket. Als u localhost-clustering wilt gebruiken op de verbruikende client, roept u de UseLocalhostClustering extensiemethode aan. Bekijk dit voorbeeld Program.cs bestand van de clienthost:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
Met de voorgaande code wordt:
- Hiermee maakt u een standaardhostbouwer.
- Roept de
UseOrleansClient
extensiemethode aan om de client te configureren. - Roept de
UseLocalhostClustering
extensiemethode aan op de opgegeven IClientBuilder om de client te configureren voor het gebruik van localhost-clustering. - Roept de
UseConsoleLifetime
extensiemethode aan om de client te configureren voor het gebruik van de levensduur van de console. - Roept de
StartAsync
methode op dehost
variabele aan om de client te starten.
Raadpleeg het onderstaande voorbeeld van het configureren van een client voor dat geval voor lokale ontwikkeling. Hiermee configureert u een client die verbinding maakt met een loopback
silo.
Voeg het Microsoft.Orleans.Client
NuGet-metapakket toe aan het project. Nadat u vertrouwd bent met de API, kunt u kiezen welke exacte pakketten u daadwerkelijk Microsoft.Orleans.Client
nodig hebt en ernaar verwijzen.
Install-Package Microsoft.Orleans.Client
U moet configureren ClientBuilder met een cluster-id die overeenkomt met de id die u hebt opgegeven voor de lokale silo en statische clustering opgeven als uw clustering-keuze die deze verwijst naar de gatewaypoort van de silo
ConfigureApplicationParts
roept expliciet de assembly met graaninterfaces toe aan de installatie van de toepassing.
Nadat deze stappen zijn voltooid, kunnen we de client en Connect()
methode bouwen 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.
Hier volgt een voorbeeld van hoe een client verbinding kan maken met een lokale 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();