Compartir a través de


Configuración de cliente

El cliente para conectarse a un clúster de silos y enviar solicitudes a granos se configura mediante programación con un objeto IHostBuilder y varias clases de opciones complementarias. Al igual que las opciones de silo, las clases de opción de cliente siguen el patrón de opciones de .NET.

El cliente para conectarse a un clúster de silos y enviar solicitudes a granos se configura mediante programación con un objeto ClientBuilder y varias clases de opciones complementarias. Al igual que las opciones de silo, las clases de opción de cliente siguen el patrón de opciones de .NET.

Sugerencia

Si solo quiere iniciar un silo local y un cliente local con fines de desarrollo, consulte Configuración de desarrollo local.

Agregue el paquete NuGet Microsoft.Orleans.Clustering.AzureStorage al proyecto de cliente.

Hay varios aspectos clave de la configuración del cliente:

  • Información de la agrupación en clústeres de Orleans
  • Proveedor de la agrupación en clústeres
  • Elementos de la aplicación

Ejemplo de una configuración de cliente:

var client = new HostBuilder()
    .UseOrleansClient((context, clientBuilder) =>
    {
        clientBuilder.Configure<ClusterOptions>(options =>
        {
            options.ClusterId = "my-first-cluster";
            options.ServiceId = "MyOrleansService";
        })
        .UseAzureStorageClustering(
            options => options.ConfigureTableServiceClient(
                context.Configuration["ORLEANS_AZURE_STORAGE_CONNECTION_STRING"]));
    })
    .Build();
using Orleans.Hosting;

var client = new ClientBuilder()
    .Configure<ClusterOptions>(options =>
    {
        options.ClusterId = "my-first-cluster";
        options.ServiceId = "MyOrleansService";
    })
    .UseAzureStorageClustering(
        options => options.ConnectionString = connectionString)
    .ConfigureApplicationParts(
        parts => parts.AddApplicationPart(
            typeof(IValueGrain).Assembly))
    .Build();

Vamos a desglosar los pasos que se usan en este ejemplo:

Información de la agrupación en clústeres de Orleans

    .Configure<ClusterOptions>(options =>
    {
        options.ClusterId = "orleans-docker";
        options.ServiceId = "AspNetSampleApp";
    })

Aquí se establecen dos cosas:

  • ClusterOptions.ClusterId en "my-first-cluster": se trata de un identificador único del clúster de Orleans. Todos los clientes y silos que usen este identificador podrán comunicarse directamente entre sí. Algunos optarán por usar un ClusterId diferente para cada implementación, por ejemplo.
  • ClusterOptions.ServiceId en "AspNetSampleApp": se trata de un identificador único para la aplicación que usarán algunos proveedores (por ejemplo, los proveedores de persistencia). Este identificador debe ser estable entre implementaciones (es decir, no cambiar).

Proveedor de la agrupación en clústeres

.UseAzureStorageClustering(
    options => options.ConfigureTableServiceClient(connectionString);
.UseAzureStorageClustering(
    options => options.ConnectionString = connectionString)

El cliente detectará todas las puertas de enlace disponibles en el clúster mediante este proveedor. Hay disponibles varios proveedores; en este ejemplo se usa el proveedor de tablas de Azure.

Para obtener más información, consulte Configuración del servidor.

Elementos de la aplicación

.ConfigureApplicationParts(
    parts => parts.AddApplicationPart(
        typeof(IValueGrain).Assembly))
        .WithReferences())

Para obtener más información, consulte Configuración del servidor.