Partilhar via


Suporte a vários clusters

O suporte a vários clusters foi removido na v2. A documentação abaixo refere-se à Orleans v1. Orleansv.1.3.0 adicionou suporte para federar vários Orleans clusters em um multi-cluster vagamente conectado que atua como um único serviço. Os multiclusters facilitam a geodistribuição como um serviço, ou seja, facilitam a execução de uma Orleans aplicação em vários centros de dados em todo o mundo. Além disso, um multi-cluster pode ser executado dentro de um único datacenter para obter melhor isolamento de falhas e desempenho.

Todos os mecanismos são concebidos com especial atenção para:

  1. Minimize a comunicação entre clusters.
  2. Permita que cada cluster seja executado de forma autônoma, mesmo se outros clusters falharem ou se tornarem inacessíveis.

Configuração e operação

Abaixo, documentamos como configurar e operar um multi-cluster.

Comunicação. Os clusters se comunicam por meio das mesmas conexões de silo a silo usadas em um cluster. Para trocar informações de status e configuração, os Clusters usam um mecanismo de fofoca e implementações de canais de fofoca.

Configuração do silo. Os silos precisam ser configurados para que saibam a qual cluster pertencem (cada cluster é identificado por uma cadeia de caracteres exclusiva). Além disso, cada silo precisa ser configurado com cadeias de conexão que permitam que eles se conectem a um ou mais canais de fofoca na inicialização.

Injeção de configuração multi-cluster. No tempo de execução, o operador de serviço pode especificar e/ou alterar a configuração de vários clusters, que contém uma lista de ids de cluster, para especificar quais clusters fazem parte do multicluster atual. Isso é feito chamando o grão de gerenciamento em qualquer um dos clusters.

Grãos multi-cluster

Abaixo, documentamos como usar a funcionalidade de vários clusters no nível do aplicativo.

Grãos globais de instância única. Os desenvolvedores podem indicar quando e como os clusters devem coordenar seus diretórios de grãos em relação a uma classe de grãos específica. Os GlobalSingleInstanceAttribute meios que queremos o mesmo comportamento que quando executamos Orleans em um único cluster global: ou seja, rotear todas as chamadas para uma única ativação do grão. Por outro lado, o OneInstancePerClusterAttribute indica que cada cluster pode ter sua ativação independente. Isso é apropriado se a comunicação entre clusters for indesejada.

Grãos de visualização logarítmica (não na v.1.3.0). Um tipo especial de grão que usa uma nova API, semelhante ao fornecimento de eventos, para sincronizar ou persistir o estado do grão. Ele pode ser usado para sincronizar de forma automática e eficiente o estado de um grão entre clusters e com o armazenamento. Como seus algoritmos de sincronização são seguros para uso com grãos reentrantes e são otimizados para usar lotes e replicação, ele pode ter um desempenho melhor do que grãos padrão quando um grão é acessado com frequência em vários clusters e/ou quando é gravado para armazenamento com frequência. O suporte para grãos de visualização de log ainda não faz parte do ramo principal. Temos um pré-lançamento incluindo amostras e um pouco de documentação no geo-orleans ramo. Está atualmente a ser avaliado em produção por um early adopter.