Udostępnij za pośrednictwem


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 zmiennej host , 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();