Árvore de páginas

Balanceamento entre cliente Web Services e servidor TOTVS | Application Server

O TOTVS | Application Server pode ser utilizado como um proxy transparente de balanceamento para acesso de clientes de web services a um TOTVS | Application Server.

Além do balanceamento das conexões pode ser feito um controle do número máximo de pedidos simultâneos de web services que serão repassados a um TOTVS | Application Server. Quando este limite for atingido o servidor TOTVS | Application Server em questão não mais participará do balanceamento de conexões (não serão mais repassadas conexões para esse servidor). Se todos os servidores TOTVS | Application Server já estiverem no limite então um novo pedido de web services que chegar será colocado em uma fila, esperando que um dos TOTVS | Application Server se torne novamente disponível (isto é, que o número de pedidos de web services sendo atendidos simultâneamente fique novamente abaixo do máximo configurado). Essa espera tem um tempo configurável, com valor inicial de 15 segundos. Após esse tempo, se o pedido de web services não for atendido então sua conexão será fechada pelo proxy de balanceamento (isto é, vai ocorrer uma falha no cliente de web services). Caso o número máximo de pedido de web services para um TOTVS | Application Server não seja configurado então não haverá limitação no número de pedido simultâneos de web services que serão repassados pelo proxy de balanceamento a esse TOTVS | Application Server.

Exemplo de arquivo de configuração:

appserver.ini
[GENERAL]
; configuracao recomendada para gravacao de log
ConsoleLog=1
ConsoleLogDate = 0  

[BALANCE_WEB_SERVICES]

; porta de atendimento aos clientes de web services
LOCAL_SERVER_PORT = 4001

; hostnames e endereços ip, porta TCP e número máximo de conexões
; dos servidores atendendo web services

; atende no máximo 5 pedidos simultâneos de web services
REMOTE_SERVER_01 = 172.16.50.171 8098   5

; atende no máximo 10 pedidos simultâneos de web services
REMOTE_SERVER_02 = 172.16.50.172 8098  10

; nao tem limite de pedidos simultâneos de web services
REMOTE_SERVER_03 = 172.16.50.173 8098

; etc
; a chave REMOTE_SERVER_xx 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=XXX_TOTVS_BALANCE_WS_001

; (opcional, disponível a partir de 01/dez/2017)
; "display name" do serviço Windows
SERVICE_DISPLAY_NAME = "BROKER SERVICE" 

; IMPORTANTE
; as linhas que contem um nome de chave não devem conter um ";" de comentário
; dependendo do caso, as linhas com chave e ";" podem não reconhecidas como válidas


Importante: Além da configuração acima referente ao broker server (TOTVS | Application Server rodando como proxy de balanceamento de web services) é necessário especificar no arquivo de configurações do TOTVS | Application Server as instâncias de web services que serão recebidas através do broker server. As definições de web services devem ser repetidas, substituindo o hostname (ou endereço ip) e porta originais pelo hostname (ou endereço ip) e porta do broker server.

Exemplo de arquivo de configuração de WebService do TOTVS | Application Server para o ERP Protheus ou Logix:

appserver.ini (ERP)
...
...
... 
; definição original do web service
[172.16.50.171:8098/WS]
ENABLE = 1
PATH = c:\protheus\protheus12\protheus_data\webservices\web
ENVIRONMENT = ENV_WEB_SERVICES
INSTANCENAME = WS_TESTE
RESPONSEJOB = JOB_WS
DEFAULTPAGE = wsindex.apw        

; definição do mesmo web service para uso com broker server
; assume que broker server está rodando na mesma máquina mas em outra porta
[172.16.50.171:4001/WS]
ENABLE = 1
PATH = c:\protheus\protheus12\protheus_data\webservices\web
ENVIRONMENT = ENV_WEB_SERVICES
INSTANCENAME = WS_TESTE
RESPONSEJOB = JOB_WS
DEFAULTPAGE = wsindex.apw
...
...
... 
 

Com o arquivo de configuração acima o web service que normalmente é acessado através da url http://172.16.50.171:8098/WS também estará disponível através do broker server através da url http://172.16.50.171:4001/WS (assumindo neste exemplo que o Proxy ERP e o broker server estão instalados na mesma máquina).

Método de balanceamento ROUND ROBIN: se o tempo de execução dos web services for pequeno, a tendência do balanceamento padrão é escolher sempre os mesmos slaves. Isto porque o balanceamento padrão escolhe um slave que tenha o menor número de conexões. Com tempos pequenos de execução de web services, é possível que os slaves estejam sempre com 0 conexões quando o broker receber uma nova conexão para balancear! Uma maneira de garantir que exista rotação de slaves no atendimento de web services é utilizar a chave SORT_METHOD=ROUND_ROBIN no arquivo de configuração do broker (appserver.ini do broker). Desta maneira a rotação de slaves para atendimento de web servides é garantida, não depende do tempo de execução dos web services.


Veja também:

Broker - Base de Conhecimento

  • Sem rótulos