Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 silosy 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
Zalecamy użycie pakietu NuGet Microsoft.Extensions.Hosting w celu skonfigurowania i uruchomienia silosu. Ponadto podczas tworzenia silosu Orleans potrzebny jest pakiet NuGet Microsoft.Orleans.Server. W przypadku rozwoju lokalnych silosów Orleans skonfiguruj klastrowanie localhost, które używa adresu loopback. Aby użyć klastrowania localhost, wywołaj metodę rozszerzenia UseLocalhostClustering. Rozważmy ten przykład Program.cs pliku dla hosta silosu:
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
})
.RunConsoleAsync();
Powyższy kod wykonuje następujące czynności:
- Tworzy domyślnego konstruktora hostów.
- Wywołuje metodę rozszerzenia
UseOrleansw celu konfiguracji silosu. - Wywołuje metodę
UseLocalhostClusteringrozszerzenia na danej ISiloBuilder, aby skonfigurować silos do korzystania z klastrowania na localhost. - Powiązanie metody
RunConsoleAsyncdo uruchomienia silosu jako aplikacji konsolowej.
W przypadku programowania lokalnego zapoznaj się z poniższym przykładem pokazującym sposób konfigurowania silosu dla tego przypadku. Konfiguruje i uruchamia silos nasłuchujący na adresie loopback, używając portu silosu 11111 oraz portu bramy 30000.
Microsoft.Orleans.Server Dodaj meta-pakiet NuGet do projektu.
dotnet add package Microsoft.Orleans.Server
Należy skonfigurować ClusterOptions za pomocą metody ISiloBuilderConfigure, określić, że chcesz użyć LocalhostClustering jako preferowanego klastra, mając ten silos jako główny, a następnie skonfigurować punkty końcowe silosu.
Wywołanie ConfigureApplicationParts jawnie dodaje zestaw zawierający klasy ziarna do konfiguracji aplikacji. Dodaje również wszystkie przywołane zestawy z powodu rozszerzenia WithReferences. Po wykonaniu tych kroków zbuduj serwer silosu i uruchom silos.
Możesz utworzyć pusty projekt aplikacji konsolowej przeznaczony dla platformy .NET Framework 4.6.1 lub nowszej na potrzeby hostowania silosu.
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
Zalecamy używanie pakietu NuGet Microsoft.Extensions.Hosting do konfigurowania i uruchamiania klientów (oprócz silosu). Potrzebujesz również pakietu NuGet Microsoft.Orleans.Client. Aby użyć klastrowania localhost na kliencie odbierającym, wywołaj metodę rozszerzenia UseLocalhostClustering. Rozważmy ten przykład Program.cs pliku dla hosta klienta:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
Powyższy kod wykonuje następujące czynności:
- Tworzy domyślnego konstruktora hostów.
- Wywołuje metodę rozszerzenia
UseOrleansClientw celu skonfigurowania klienta. - Wywołuje metodę rozszerzenia
UseLocalhostClusteringdla podanego IClientBuilder, aby skonfigurować klienta do korzystania z klastrowania localhost. - Wywołuje metodę rozszerzenia
UseConsoleLifetime, aby skonfigurować klienta do korzystania z cyklu życia konsoli. - Wywołuje metodę
StartAsyncw zmiennejhost, aby uruchomić klienta.
W przypadku programowania lokalnego zapoznaj się z poniższym przykładem pokazującym sposób konfigurowania klienta dla tego przypadku. Konfiguruje klienta, który łączy się z silosem loopback .
Microsoft.Orleans.Client Dodaj meta-pakiet NuGet do projektu. Po zapoznaniu się z interfejsem API możesz wybierać konkretne pakiety zawarte w Microsoft.Orleans.Client, które są potrzebne, i odwoływać się do nich.
Install-Package Microsoft.Orleans.Client
Skonfiguruj ClientBuilder przy użyciu identyfikatora klastra zgodnego z określonym dla silosu lokalnego. Określ klaster statyczny jako wybór klastra, wskazując go na port bramy silosu.
Wywołanie ConfigureApplicationParts jawnie dodaje zestaw zawierający interfejsy dla ziaren do ustawień aplikacji.
Po wykonaniu tych kroków skompiluj klienta i wywołaj jego 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 użyć ponownie 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();