Configuração de desenvolvimento local
Para obter um aplicativo de exemplo de trabalho destinado a Orleans 7.0, consulte Orleans: Hello World. O exemplo hospeda o cliente e o silo em aplicativos de console .NET que funcionam em plataformas diferentes, enquanto os grãos e interfaces visam o .NET Standard 2.0.
Gorjeta
Para versões mais antigas do , consulte Orleans projetos de Orleansexemplo.
Configuração do silo
É recomendável usar o pacote NuGet Microsoft.Extensions.Hosting para configurar e executar o silo. Além disso, ao desenvolver um Orleans silo, você precisa da Microsoft.Orleans. Pacote NuGet do servidor . Para o desenvolvimento de silo local Orleans , configure o clustering localhost, que é configurado para usar o endereço de loopback. Para usar o clustering localhost, chame o UseLocalhostClustering método extension. Considere este exemplo Program.cs arquivo do host do silo:
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
})
.RunConsoleAsync();
O código anterior:
- Cria um construtor de host padrão.
- Chama o
UseOrleans
método de extensão para configurar o silo. - Chama o
UseLocalhostClustering
método de extensão no dado ISiloBuilder para configurar o silo para usar clustering localhost. - Encadeia o
RunConsoleAsync
método para executar o silo como um aplicativo de console.
Para o desenvolvimento local, consulte o exemplo abaixo de como configurar um silo para esse caso. Ele configura e inicia um silo escutando no loopback
endereço e 30000
como portas de silo e gateway, 11111
respectivamente.
Adicione o Microsoft.Orleans.Server
metapacote NuGet ao projeto.
dotnet add package Microsoft.Orleans.Server
Você precisa configurar ClusterOptions via ISiloBuilder Configure
método, especificar que deseja LocalhostClustering
como sua opção de clustering com esse silo sendo o principal e, em seguida, configurar pontos de extremidade de silo.
A ConfigureApplicationParts chamada adiciona explicitamente o assembly com classes grain à configuração do aplicativo. Ele também adiciona qualquer assembly referenciado devido à WithReferences extensão. Depois que essas etapas forem concluídas, o host do silo será construído e o silo será iniciado.
Você pode criar um projeto de aplicativo de console vazio destinado ao .NET Framework 4.6.1 ou superior para hospedar um silo e um aplicativo de console .NET.
Aqui está um exemplo de como um silo local pode ser iniciado:
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;
}
Configuração do cliente
É recomendável usar o pacote NuGet Microsoft.Extensions.Hosting para configurar e executar clientes (além do silo). Você também precisa do Microsoft.Orleans. Pacote NuGet do cliente . Para usar o clustering localhost no cliente consumidor, chame o UseLocalhostClustering método de extensão. Considere este exemplo Program.cs arquivo do host do cliente:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
O código anterior:
- Cria um construtor de host padrão.
- Chama o método de
UseOrleansClient
extensão para configurar o cliente. - Chama o
UseLocalhostClustering
método de extensão fornecido IClientBuilder para configurar o cliente para usar clustering localhost. - Chama o
UseConsoleLifetime
método de extensão para configurar o cliente para usar o tempo de vida do console. - Chama o
StartAsync
método nahost
variável para iniciar o cliente.
Para desenvolvimento local, consulte o exemplo abaixo de como configurar um cliente para esse caso. Ele configura um cliente que se conectaria a um loopback
silo.
Adicione o Microsoft.Orleans.Client
metapacote NuGet ao projeto. Depois de se sentir confortável com a API, você pode escolher quais pacotes exatos incluídos em Microsoft.Orleans.Client
você realmente precisa e consultá-los.
Install-Package Microsoft.Orleans.Client
Você precisa configurar ClientBuilder com um ID de cluster que corresponda ao especificado para o silo local e especificar clustering estático como sua opção de clustering apontando-o para a porta de gateway do silo
ConfigureApplicationParts
A chamada adiciona explicitamente o assembly com interfaces Grain à configuração do aplicativo.
Depois que essas etapas forem concluídas, podemos criar o cliente e Connect()
o método nele para se conectar ao cluster.
Você pode criar um projeto de aplicativo de console vazio destinado ao .NET Framework 4.6.1 ou superior para executar um cliente ou reutilizar o projeto de aplicativo de console criado para hospedar um silo.
Aqui está um exemplo de como um cliente pode se conectar a um silo local:
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();