Navegação: Manual do Usuário > Configuração da Biblioteca > Usando variáveis de ambiente > Balanceamento de carga

Balanceamento de carga

Balanceamento de carga

Top  Previous  Next

Variável de ambiente a ser definida: DFENCE_LOAD_BALANCE_LIST

Variável não definida significa operar sem balanceamento de carga.

Contem o caminho e nome do arquivo com a lista de endereços IPs e portas dos HSMs. Em cada linha do arquivo deve ser indicado o endereço e a porta (usar 4433) de um HSM. Até dezesseis endereços podem ser informadas. O arquivo deverá ser em formato texto ASCII com o seguinte formato no conteúdo:

<endereco_ip_1>        <porta>

<endereco_ip_2>        <porta>

...

<endereco_ip_16>        <porta>

Exemplo:

10.0.20.1        4433

10.0.20.2        4433

 

É possível ter um esquema de balanceamento do tipo ativo-passivo, onde várias listas (até 16) são definidas, e a biblioteca vai passar de uma lista para outra, em esquema circular tipo round robin. Quando nenhum dos HSMs da lista atual responder ao pedido de abertura de sessão, a próxima lista passa a ser utilizada, e permanece sendo utilizada até que novamente nenhum dos HSMs responda e então a próxima lista é carregada e assim por diante. Esta funcionalidade está disponível a partir da versão 1.3.0.14 da biblioteca.

Para utilizar este esquema ativo-passivo crie cada lista de HSMs em um arquivo com o formato indicado acima, e no valor da variável de ambiente indique todos os arquivos, com o caminho completo, separando conforme o padrão do sistema operacional onde estiver executando a aplicação, ';' para Windows e ':' para Unix/Linux.

O Pocket dispõe de um mecanismo de balanceamento de carga, permitindo maior disponibilidade do ambiente e desempenho para as aplicações. É possível ter até 16 (dezesseis) unidades do Pocket em sistema de balanceamento de carga, com a mesma quantidade de sessões em cada um dos equipamentos. O balanceamento de carga é transparente para a aplicação, ou seja, uma vez habilitado o balanceamento no ambiente, a aplicação se beneficia sem precisar de qualquer alteração.

O balanceamento funciona num esquema tipo round-robin, distribuindo conexões  circularmente entre os HSM configurados para balanceamento. A unidade de balanceamento é a sessão com o HSM, independente da carga ou das APIs utilizadas em cada sessão e também da taxa de utilização de recursos em cada HSM. O HSM que vai estabelecer a sessão com a aplicação é definido pela estrutura de balanceamento e não pela aplicação. O esquema do balanceamento funciona por processo, ou seja, dentro de cada processo são suas sessões que serão balanceadas; caso dois processos rodem ao mesmo tempo, cada um terá uma estrutura de balanceamento separada e independente.

Caso a aplicação esteja utilizando objetos armazenados no HSM, é preciso que o objeto exista em todos os HSMs. O recomendado é que um HSM seja preparado inicialmente com todos os objetos usados pela aplicação e a partir dele seja gerado um backup, que será restaurado em todos os demais HSMs que fazem parte do conjunto de balanceamento.

Importante: o balanceamento não pode ser usado por aplicações que criam objetos dentro da sessão, precisam persistir estes objetos entre sessões mas não utilizam o mecanismo de replicação do HSM, pois neste caso a criação do objeto não é replicada entre os HSMs e não há garantia que a próxima sessão será dirigida ao HSM onde o objeto foi criado. Para aplicações que criam objetos que devem persistir entre sessões, e o mecanismo de replicação do HSM não seja utilizado, é função da aplicação manter um mecanismo de sincronização entre as bases dos HSMs participantes do balanceamento. Tal mecanismo pode ser baseado por exemplo na exportação e importação de objetos.

O balanceamento de carga e o cache de sessões são habilitados por intermédio de variáveis de ambiente. Se a definição das variável de ambiente tiver escopo de sistema (system wide), todas as aplicações são beneficiadas pela estrutura de balanceamento e/ou cache (pois os processos herdam as definições de variáveis de ambiente do sistema). Também é possível fazer uma configuração definindo a variável de ambiente apenas para o processo particular de uma aplicação. Consulte a documentação do sistema operacional para detalhes sobre criação e escopo de variáveis de ambiente.

O balanceamento de carga m as seguintes características:

1.Intra-processo: o balanceamento de carga é feito por processo. Isso significa que 2 aplicações em uma mesma máquina terão conjuntos de balanceamento distintos;
2.Centralizado: implementado na biblioteca do HSM. Desta forma o balanceamento é habilitado em um ponto central e todas as outras bibliotecas dependentes dela herdarão a funcionalidade
3.Transparente: para habilitar o balanceamento é necessário apenas habilitar uma variável de ambiente. Não é necessário nenhuma alteração de código fonte da aplicação

 

Um diagrama estrutural do mecanismos de balanceamento de carga é mostrado na figura abaixo:

loadlbalance

Fig. Diagrama esquemático de balanceamento de carga

 


URL deste tópico:
http://www.dinamonetworks.com/manualpocket/index.html?balanceamento_de_carga_config_lib.htm