Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Balanceamento entre cliente Web Services e servidor

...

Inclusão de trecho
Application Server
Application Server
nopaneltrue

O

Inclusão de trecho
Application Server
Application Server
nopaneltrue
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
nopaneltrue
.

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
nopaneltrue
. Quando este limite for atingido o servidor Protheus ERP
Inclusão de trecho
Application Server
Application Server
nopaneltrue
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
nopaneltrue
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
nopaneltrue
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
nopaneltrue
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
nopaneltrue
.

Exemplo de arquivo de configuração:

Bloco de código
languagetext
firstline1
titleappserver.ini
linenumberstrue
[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
nopaneltrue
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
nopaneltrue
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
nopaneltrue
para o ERP Protheus ou Logix:

Bloco de código
languagetext
firstline1
titleappserver.ini (ERP)
linenumberstrue
...
...
... 
; 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.

...