Partilhar via


Candidatura de Orleans

Uma aplicação típica de Orleans consiste num conjunto de processos de servidor (silos) onde vivem os grãos, e um conjunto de processos de clientes, geralmente servidores web, que recebem pedidos externos, transformam-nos em chamadas de método de grão e resultados de devolução. Por isso, a primeira coisa que se tem de fazer para executar uma aplicação de Orleães é iniciar um conjunto de silos. Para efeitos de teste, um cluster pode consistir de um único silo. Para uma implantação de produção fiável, queremos mais do que um silo num aglomerado de tolerância e escala de falhas.

Uma vez que o cluster esteja em funcionamento, podemos iniciar um ou mais processos de cliente que se conectam ao cluster e podem enviar pedidos para os grãos. Os clientes conectam-se a um ponto final TCP especial em silos - gateway. Por padrão, cada silo de um cluster tem uma porta de entrada de cliente ativada. Assim, os clientes podem ligar-se a todos os silos em paralelo para um melhor desempenho e resiliência.

Configure e inicie um silo

Um silo é configurado programáticamente através de um ClusterConfiguration objeto. Pode ser instantaneamente e povoado diretamente, configurações de carga a partir de um ficheiro, ou criada com vários métodos de ajuda disponíveis para diferentes ambientes de implementação. Para testes locais, o caminho mais fácil de seguir é usar LocalhostPrimarySilo o método do ajudante. O objeto de configuração é então passado para um novo exemplo de SiloHost classe, que pode ser inicializado e iniciado depois disso.

Pode criar um projeto de aplicação de consola vazio direcionado .NET Framework 4.6.1 ou superior para hospedar um silo. Adicione o Microsoft.Orleans.Server meta-pacote NuGet ao projeto.

Install-Package Microsoft.Orleans.Server

Aqui está um exemplo de como um silo local pode ser iniciado:

var siloConfig = ClusterConfiguration.LocalhostPrimarySilo();
var silo = new SiloHost("Test Silo", siloConfig);
silo.InitializeOrleansSilo();
silo.StartOrleansSilo();

Console.WriteLine("Press Enter to close.");
// wait here
Console.ReadLine();

// shut the silo down after we are done.
silo.ShutdownOrleansSilo();

Configure e ligue-se a um cliente

O cliente para ligar a um conjunto de silos e enviar pedidos para grãos é configurado programáticamente através de um ClientConfiguration objeto e a ClientBuilder. ClientConfiguration objeto pode ser instantâneo e povoado diretamente, definirs de carga a partir de um arquivo, ou criado com vários métodos de ajuda disponíveis para diferentes ambientes de implementação. Para testes locais, o caminho mais fácil de seguir é usar LocalhostSilo o método do ajudante. O objeto de configuração é então passado para um novo exemplo de ClientBuilder classe.

ClientBuilder expõe mais métodos para configurar funcionalidades adicionais do cliente. Depois deste ClientBuilder.Build() método do ClientBuilder objeto é chamado para obter uma implementação da IClusterClient interface. Finalmente, chamamos IClusterClient.Connect() o método do objeto devolvido para ligar ao cluster.

Pode criar um projeto de aplicação de consola vazio direcionado .NET Framework 4.6.1 ou superior para executar um cliente ou reutilizar o projeto de aplicação de consola que criou para hospedar um silo. Adicione o Microsoft.Orleans.Client meta-pacote NuGet ao projeto.

Install-Package Microsoft.Orleans.Client

Aqui está um exemplo de como um cliente pode ligar-se a um silo local:

var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();

Configurações de produção

Os exemplos de configuração que usamos aqui são para testar silos e clientes que executam na mesma máquina que localhost. Na produção, os silos e os clientes normalmente funcionam em diferentes servidores e são configurados com uma das opções de configuração de cluster confiáveis. Pode encontrar mais sobre isso no guia de Configuração e na descrição da gestão do Cluster.

Passos seguintes