Balanceamento entre cliente Web Services e servidor
...
Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
O Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
O servidor Protheus pode ser utilizado como um proxy transparente de balanceamento para acesso de clientes de web services a um servidor Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
.
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 servidor Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
. Quando este limite for atingido o servidor Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
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 Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
já estiverem no limite então um novo pedido de web services que chegar será colocado em uma fila, esperando que um dos servidores Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
se torne novamente disponível (isto é, que o número de pedidos de web services sendo atendidos simultaneamente 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 servidor Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
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 servidor Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
.
Exemplo de arquivo de configuração:
Bloco de código |
---|
language | text |
---|
firstline | 1 |
---|
title | appserver.ini |
---|
linenumbers | true |
---|
|
[GENERAL]
; configuracao recomendada para gravacao de log
ConsoleLog=1
AsyncConsoleLog = 0
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 Protheus 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 (Protheus Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
rodando como proxy de balanceamento de web services) é necessário especificar no arquivo de configurações do Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
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 Protheus ERP Inclusão de trecho |
---|
| Application Server |
---|
| Application Server |
---|
nopanel | true |
---|
|
para o ERP Protheus ou Logix:
Bloco de código |
---|
language | text |
---|
firstline | 1 |
---|
title | appserver.ini (ERP) |
---|
linenumbers | true |
---|
|
...
...
...
; 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
...
...
...
|
...
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 slavessecundários. Isto porque o balanceamento padrão escolhe um slave secundário que tenha o menor número de conexões. Com tempos pequenos de execução de web services, é possível que os slaves secundários 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 secundários 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 secundários para atendimento de web servides é garantida, não depende do tempo de execução dos web services.
...