Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Próxima »

Balanceamento de carga entre serviços (LoadBalance)

Quando existe uma grande quantidade de usuários que utilizam o sistema, e o servidor (hardware) não possui uma configuração ideal para comportar todas as conexões simultaneamente, mas há mais de um servidor disponível, pode-se configurar balanceamento de carga de conexões, para permitir a escalabilidade da aplicação. 

Abrangência
ERP 10 e 11



Para que isto seja possível, "nomeamos" um servidor intitulado de "servidor Master" que será o responsável por administrar o balanceamento.

 

 

Configurando o servidor Master

O único arquivo de configuração (xxxsrv.ini) que será alterado com as configurações abaixo é o do servidor Master, pois é ele quem administrará o balanceamento de carga de conexões. Todos os usuários se conectarão inicialmente ao servidor Master, e é este quem efetuará o balanceamento de carga das conexões para os outros servidores. Nos arquivos de configuração (*.ini) dos outros servidores será alterado apenas a chave "RootPath", para que eles peguem a mesma base de dados do servidor Master.

[ServerNetwork]Servers=SERVER2, SERVER3  --> NÃO INFORME O NOME DO SERVIDOR MASTER MasterConnection=0        --> O SERVIDOR MASTER NÃO RECEBE CONEXÃO [SERVER2]Type=TCPIPServer=172.16.77.42Port=1234Connections=1[SERVER3]Type=TCPIPServer=172.16.75.62Port=1235Connections=1

 

Configuração dos outros servidores

Conforme citado acima, nos demais servidores a única coisa que será alterada é a chave " RootPath" do arquivo de configuração do TOTVS | Application Server. Para isso, o diretório raiz (P11), do servidor Master, deve ser compartilhado com direitos apenas para um usuário que será usado por todos os serviços. Assim, os outros usuários não conseguirão acesso a este diretório. Isto é necessário para que todos os servidores exerguem a mesma base de dados. Supondo que a base de dados esteja no servidor Master, os arquivos de configuração (*.ini) ficariam assim:

[Environment]SourcePath=C:\XXX\APORootPath=\\SIGAMASTER\XXX\AP_DATA\  --> Veja que a raiz está sendo apontada para o servidor Master.StartPath=\SIGAADV\ ou \SYSTEM\(as demais configurações continuam iguais)

 

Observações

Cada servidor deverá ter o seu build e repositório, sendo que a base de dados fica centralizada no servidor Master ou no servidor de banco de dados.

  • O balanceamento de carga das conexões é monoplataforma para o TOTVS | Application Server. Isso significa que o MASTER e todos os SLAVES devem rodar no mesmo sistema operacional.
  • Quando for realizada qualquer atualização de build e o repositório no servidor Master, a mesma alteração deverá ser feita nos outros servidores.
  • Um mesmo usuário Windows deve ter direitos na pasta compartilhada (RootPath) e deverá ser um usuário Administrador, para que possa ser associado ao serviço de cada servidor.
  • Para verificar onde os usuários estão conectados, basta utilizar a aplicativo TOTVS | Monitor em cada servidor.

Crie seções [TCP] no arquivo de configuração, do TOTVS | SmartClient, para receber conexão dos slaves (TCP1, TCP2, TCP3 e TCPN).

[TCP1]Server=Slave1Port=1237[TCP2]Server=Slave2Port=1239[TCP3]Server=Slave3Port=1241

Ao abrir o TOTVS | Monitor, informe qual comunicação [TCP] que deseja verificar as conexões.

 

  • O nome do ambiente e portas de comunicação deve ser idêntico para todos os servidores.
  • Separe em um servidor dedicado, um TOTVS | Application Server para o ambiente de compilação: compilação é uma operação crítica, exclusiva, que não deve ser executada no mesmo serviço do TOTVS | Application Server que está atendendo conexões de usuários do TOTVS | SmartClient e ambiente de produção.
  • No caso de balanceamento de carga das conexões em schedule, deve-se escolher um slave para receber a conexão. Lembre-se que o servidor Master NÃO recebe conexões.
  • O valor da chave Connections determina a distribuição entre os slaves usando RAZÃO MATEMÁTICA (Exemplo: 1:2:1).
  • O valor de RootPath=\\SIGAMASTER\XXX\AP_DATA\ deve ser a mesma para todas as instâncias para os ambientes [Environment] de mesmo nome. Para mais informações, consulte a documentação da seção[ServerNetwork].
  • Reserve 2 GB para cada TOTVS | Application Server criado que pode ser na mesma máquina (desde que tenha capacidade para isso).
  • No ambiente de balance cada ambiente deve ter seu RPO (todos iguais). NÃO compartilhe RPO em rede, pelos seguintes motivos:
    • Em casos conhecidos os logs mostram que o sistema operacional está causando os erros de comunicação nos servidores de aplicação e não nas estações.

    • As mensagens que as estações enviam no momento de uma nova conexão mostram que foi a parte servidora da operação que cortou a conexão de rede.

    • Os servidores de aplicação fazem leitura intensiva dos RPOs quando executam o ERP, pois neles estão compiladas todas as regras de negócio, se o RPO é compartilhado em rede, tem como resultado:

      1. Degradação na performance de execução dos servidores de aplicação que utilizam o RPO compartilhado (tráfego de RPO em rede).
      2. O aumento do consumo de recursos de rede nos servidores que compartilham RPO, tipicamente, saturam o uso das interfaces de rede, criando uma concorrência de transmissão de dados com as estações que utilizam o TOTVS | SmartClient. 

 

  • Sem rótulos