Konfiguracja programowania lokalnego
Aby zapoznać się z działającą przykładową aplikacją przeznaczoną dla Orleans wersji 7.0, zobacz Orleans: Hello World. Przykład hostuje klienta i silos w aplikacjach konsolowych platformy .NET, które działają na różnych platformach, podczas gdy ziarna i interfejsy są przeznaczone dla platformy .NET Standard 2.0.
Napiwek
W przypadku starszych wersji programu Orleanszobacz Orleans przykładowe projekty.
Konfiguracja silosu
Zaleca się użycie pakietu NuGet Microsoft.Extensions.Hosting w celu skonfigurowania i uruchomienia silosu. Ponadto podczas tworzenia silosu Orleans potrzebujesz microsoft .Orleans. Pakiet NuGet serwera . W przypadku programowania silosów lokalnych Orleans należy skonfigurować klastrowanie localhost, które jest skonfigurowane do używania adresu sprzężenia zwrotnego. Aby użyć klastra localhost, wywołaj metodę UseLocalhostClustering rozszerzenia. Rozważmy ten przykład Program.cs pliku hosta silosu:
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
})
.RunConsoleAsync();
Powyższy kod ma następujące działanie:
- Tworzy domyślnego konstruktora hostów.
- Wywołuje metodę
UseOrleans
rozszerzenia w celu skonfigurowania silosu. - Wywołuje metodę
UseLocalhostClustering
rozszerzenia podanej ISiloBuilder w celu skonfigurowania silosu do korzystania z klastrowania localhost. - Łańcuchowa
RunConsoleAsync
metoda uruchamiania silosu jako aplikacji konsolowej.
W przypadku programowania lokalnego zapoznaj się z poniższym przykładem konfigurowania silosu dla tego przypadku. Konfiguruje i uruchamia silos nasłuchujący na adresie loopback
oraz 11111
30000
odpowiednio jako silos i porty bramy.
Microsoft.Orleans.Server
Dodaj meta-pakiet NuGet do projektu.
dotnet add package Microsoft.Orleans.Server
Należy skonfigurować ClusterOptions za pomocą ISiloBuilder Configure
metody, określić, czy chcesz LocalhostClustering
wybrać klaster z tym silosem jest podstawowym, a następnie skonfiguruj punkty końcowe silosu.
Wywołanie ConfigureApplicationParts jawnie dodaje zestaw z klasami ziarna do konfiguracji aplikacji. Dodaje również wszelkie przywoływały zestaw ze względu na WithReferences rozszerzenie. Po wykonaniu tych kroków host silosu zostanie skompilowany i rozpocznie się silos.
Możesz utworzyć pusty projekt aplikacji konsolowej przeznaczony dla platformy .NET Framework 4.6.1 lub nowszej na potrzeby hostowania silosu i aplikacji konsolowej platformy .NET.
Oto przykład uruchamiania lokalnego silosu:
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;
}
Konfiguracja klientów
Zaleca się użycie pakietu NuGet Microsoft.Extensions.Hosting do konfigurowania i uruchamiania klientów (oprócz silosu). Potrzebujesz również microsoft .Orleans. Pakiet NuGet klienta . Aby użyć klastrowania localhost na kliencie zużywającym, wywołaj metodę UseLocalhostClustering rozszerzenia. Rozważmy ten przykład Program.cs pliku hosta klienta:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
Powyższy kod ma następujące działanie:
- Tworzy domyślnego konstruktora hostów.
- Wywołuje metodę
UseOrleansClient
rozszerzenia w celu skonfigurowania klienta. - Wywołuje metodę
UseLocalhostClustering
rozszerzenia dla danej IClientBuilder metody, aby skonfigurować klienta do korzystania z klastrowania localhost. - Wywołuje metodę
UseConsoleLifetime
rozszerzenia, aby skonfigurować klienta do korzystania z okresu istnienia konsoli. - Wywołuje metodę
StartAsync
w zmiennejhost
, aby uruchomić klienta.
W przypadku programowania lokalnego zapoznaj się z poniższym przykładem konfigurowania klienta dla tego przypadku. Konfiguruje klienta, który będzie łączyć się z silosem loopback
.
Microsoft.Orleans.Client
Dodaj meta-pakiet NuGet do projektu. Po zapoznaniu się z interfejsem API możesz wybrać i wybrać, które dokładnie pakiety zawarte w Microsoft.Orleans.Client
nim są rzeczywiście potrzebne i odwoływać się do nich.
Install-Package Microsoft.Orleans.Client
Należy skonfigurować ClientBuilder przy użyciu identyfikatora klastra zgodnego z określonym dla lokalnego silosu i określić klaster statyczny jako wybór klastrowania wskazujący go na port bramy silosu
ConfigureApplicationParts
wywołanie jawnie dodaje zestaw z interfejsami ziarna do konfiguracji aplikacji.
Po wykonaniu tych kroków możemy skompilować klienta i Connect()
metodę w celu nawiązania połączenia z klastrem.
Możesz utworzyć pusty projekt aplikacji konsolowej przeznaczony dla programu .NET Framework 4.6.1 lub nowszego na potrzeby uruchamiania klienta lub ponownie użyć projektu aplikacji konsolowej utworzonego do hostowania silosu.
Oto przykład sposobu, w jaki klient może nawiązać połączenie z lokalnym silosem:
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();