Balanceamento entre Clientes HTTP e servidor Application Server

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.

appserver.ini
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 log
ConsoleLog=1
ConsoleLogDate = 0
 
[BALANCE_HTTP]
 
; porta que atende o Client HTTP
LOCAL_SERVER_PORT = 4000
 
; hostname ou endereço ip, e porta TCP onde os servidores Application Server ERP aceitam conexões HTTP
REMOTE_SERVER_01 = 172.16.106.31 5001
REMOTE_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 Windows
SERVICE_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.


Atualizado em 05/11/2024
Este artigo foi útil?  
Agradecemos sua avaliação.