Balanceamento entre Clientes HTTP e servidor TOTVS | Application Server
Este broker é utilizado para balanceamento de aplicações web que necessitam de controle de sessão. Como por exemplo o portal Protheus e o SmartClient HTML/WebApp.
Este broker não é voltado para aplicações web stateless, como por exemplo web services. Especificamente, este broker não funciona para balancear consumo de web services fornecidos pelo TOTVS | Application Server em uso com o ERP Protheus. Para este caso de uso utilizar o Broker para Web Services.
Apenas um arquivo de configuração é necessário para o funcionamento deste broker, conforme exemplo abaixo.
Exemplo de configuração.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [GENERAL]; configuracao recomendada para gravacao de logConsoleLog=1ConsoleLogDate = 0[BALANCE_HTTP]; porta que atende o Client HTTPLOCAL_SERVER_PORT = 4000; hostname ou endereço ip, e porta TCP onde os servidores Application Server ERP aceitam conexões HTTPREMOTE_SERVER_01 = 172.16.106.31 5001REMOTE_SERVER_02 = 172.16.106.31 5002; etc; esta chave aceita letras e números para identificar servidores,; por exemplo REMOTE_SERVER_0A, REMOTE_SERVER_XY, etc, e as chaves; podem estar em qualquer ordem ; nome do serviço Windows, caso seja utilizado; (não pode conter espaços)SERVICE_NAME = TOTVS_BROKER_SH_XYZ; opcional: "display name" do serviço WindowsSERVICE_DISPLAY_NAME = "BROKER SERVICE" |
Importante: a aplicação client deve tratar explicitamente o cookie de afinidade TOTVS_BROKER_SH_001 enviado pelo broker.
Quando o broker recebe um request HTTP sem este cookie, o broker envia a seguinte resposta para o client, para criação do cookie:
para POST: "window.location.reload"
outros (GET, etc) : "window.location.href = window.location.href"
Portanto, é essencial que para uma aplicação web client utilizar o Broker HTTP este cenário seja considerado.
Normalmente esta consideração se refere a cenários não browser-based, por exemplo, aplicações client escritas em client em Java, Python, C#, etc.
Eventualmente mesmo aplicações JavaScript browser-based podem precisar de algum tratamento específico quando utilizadas com este broker.
Tudo depende de como a aplicação client é escrita.