Dela via


Konfiguration av lokal utveckling

Ett arbetsexempelprogram för Orleans 7.0 finns i Orleans: Hello World. Exemplet innehåller klienten och silon i .NET-konsolapplikationer som kan köras på olika plattformar, medan enheter och gränssnitt är avsedda för .NET Standard 2.0.

Tips

Ä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-kluster, som använder loopback-adressen. Om du vill använda localhost-kluster anropar du UseLocalhostClustering tilläggsmetoden. Tänk på det här exemplet på filen Program.cs för silovärden:

using Microsoft.Extensions.Hosting;

await Host.CreateDefaultBuilder(args)
    .UseOrleans(siloBuilder =>
    {
        siloBuilder.UseLocalhostClustering();
    })
    .RunConsoleAsync();

Föregående kod gör följande:

  • Skapar en standardvärdskapare.
  • Anropar tilläggsmetoden UseOrleans för att konfigurera silon.
  • Anropar tilläggsmetoden UseLocalhostClustering på den angivna ISiloBuilder för att konfigurera silon för att använda localhost-klustring.
  • Kopplar samman RunConsoleAsync -metoden för att köra silon som en konsolapplikation.

För lokal utveckling, se exemplet nedan som visar hur du konfigurerar en silo för det här fallet. Den konfigurerar och startar en silo som lyssnar på loopback-adressen, och använder 11111 respektive 30000 som silo- och gatewayportar.

Microsoft.Orleans.Server Lägg till NuGet-metapaketet i projektet.

dotnet add package Microsoft.Orleans.Server

Du måste konfigurera ClusterOptions via ISiloBuilderConfigure -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 som innehåller kornklasser i programkonfigurationen. Den lägger också till alla refererade sammansättningar på grund av WithReferences tillägget. När du har slutfört de här stegen skapar du silovärden och startar silon.

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.

Här är ett exempel på hur du kan starta en lokal silo:

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 . För att använda localhost-klustring på den konsumerande klienten, anropar du tilläggsmetoden UseLocalhostClustering. 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();

Föregående kod gör följande:

  • Skapar en standardvärdskapare.
  • UseOrleansClient Anropar tilläggsmetoden för att konfigurera klienten.
  • Anropar UseLocalhostClustering-tilläggsmetoden på den angivna IClientBuilder för att konfigurera klienten att använda klustring på localhost.
  • Anropar tilläggsmetoden UseConsoleLifetime för att konfigurera klienten att använda konsollivslängden.
  • StartAsync Anropar metoden på variabeln host för att starta klienten.

För lokal utveckling, se exemplet nedan som visar hur du konfigurerar en klient för det här 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 blivit bekväm med API:et kan du välja de exakta paket som ingår i Microsoft.Orleans.Client och som du behöver, och istället referera till dem.

Install-Package Microsoft.Orleans.Client

Konfigurera ClientBuilder med ett kluster-ID som matchar det som angetts för den lokala silon. Ange statisk klustring som ditt klusterval och peka det på silons gatewayport.

Anropet ConfigureApplicationParts lägger uttryckligen till sammansättningen som innehåller korngränssnitt i programkonfigurationen.

När du har slutfört de här stegen skapar du klienten och anropar dess Connect() metod för att ansluta till klustret.

Du kan skapa ett tomt konsolprogramprojekt som riktar sig till .NET Framework 4.6.1 eller senare för att köra en klient, eller återanvända konsolprogramprojektet som skapats för att vara värd för silon.

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();