Dela via


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å variabeln host 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();