segunda-feira, 23 de julho de 2012

Balanceamento de Carga Protheus

Para criar um balanceamento de carga no Protheus é simples, no exemplo abaixo eu utilizei 3 serviços, sendo 1 master que irá distribuir as conexões e 2 serviços slaves, que irão receber as conexões de usuário.

É possível tambem distribuir os serviços por servidores diferentes. Nesse caso mantive no mesmo servidor por um problema de estouro de memoria do appserver, quando o serviço chegava a 1,5 Gb de memoria o serviço simplesmente caia ou começava a não aceitar mais conexões

Descobri que isso ocorre mais frequentemente em servidores 32 bits e por isso resolvi adotar o balanceamento de carga...

Criei a seguinte estrutura de pastas
bin\appserver
bin\appserver_slave1
bin\appserver_slave2

No arquivo appserver.ini da pasta bin\appserver adicione as seguintes tags

[ServerNetWork]
Servers=SLAVE1,SLAVE2 (identificação dos servidores)
MasterConnection=0 (numero de conexões que o servidor master irá receber)

[SLAVE1]
TYPE=TCPIP
Server=localhost (ip ou nome do servidor onde o serviço slave 1 está levantado)
Port=2020
Connections=5 (numero de conexões que o servidor slave irá receber)

[SLAVE2]
TYPE=TCPIP
Server=localhost  (ip ou nome do servidor onde o serviço slave 1 está levantado)
Port=3030
Connections=5 (numero de conexões que o servidor slave irá receber)

Arquivo appserver.ini  da pasta bin\appserver_slave1
(Dica: nos serviços slaves é interessante desabilitar a tag [http] ou se achar melhor mantenha somente as tags [Ambiente], [DBAccess], [Drivers], [TCP], [General], [SERVICE])

[TCP]
TYPE=TCPIP
Port=2020

[SERVICE]
NAME=TotvsProtheus11_slave1
DISPLAYNAME=Totvs Protheus 11 Slave1
Arquivo appserver.ini  da pasta bin\appserver_slave2

[TCP]
TYPE=TCPIP
Port=3030

[SERVICE]
NAME=TotvsProtheus11_slave2
DISPLAYNAME=Totvs Protheus 11 Slave2

Nenhum comentário:

Postar um comentário