Versões comparadas

Chave

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

Com balanceamento via Broker é possível dividir a carga com 2 ou mais appserversAppServers, resolvendo assim problemas de lentidão causados por muitos acessos em um curto intervalo de tempo.

O MeuRH depende dos serviços de http HTTP e rest REST, e é possível balancear ambos.

Nós vamos construir uma aplicação MeuRH exemplo com 5 appserversAppServers: broker http, broker rest, worker 1, worker 2, worker 3. Como na imagem abaixo. Broker HTTP, Broker RESTWorker 1Worker 2Worker 3.

Image Added


Nossa aplicação funcionará com https HTTPS na porta 4430 e rest REST na porta 9090.

Logo, o Broker http HTTP é quem subirá a porta 4430 e o Broker rest REST é quem subirá a porta 9090. Então , então repassam às portas http HTTP e rest REST dos workers Workers.

Informações
titleMigração de ambiente já existente

Caso seja uma migração de um ambiente já existente, as portas utilizadas pelos usuários seguirão as mesmas. Não há necessidade de qualquer alteração nos aplicativos dos usuários. 

Arquivos de configuração appserver.ini 

Para o broker http Broker HTTP vamos utilizar como base o appserver.ini mostrado abaixo.

Bloco de código
titleappserver.ini do broker http
linenumberstrue
[BALANCE_WEBSERVICESGENERAL]
ENABLEConsoleLog=1
ConsoleLogDate=0 

[BALANCE_HTTP]
LOCAL_SERVER_PORT=4430
REMOTE_SERVER_01=192.168.0.50 4431
REMOTE_SERVER_0102=192.168.0.50 4432
REMOTE_SERVER_0103=192.168.0.50 4433
PATH=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\web\PortalMeuRH01
DEFAULTPAGE=index.html

[BALANCE_WEBSERVICES]
SSL_METHOD=SSL/TLS
SSL_CERTIFICATE=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheus.cloudtotvs-withBundletotvs.pem
SSL_KEY=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheus.cloudtotvstotvs.com.key
SSL_PASSPHRASE=
SSL_ENCRYPT_UPSTREAM=1
SERVICE_NAME=AppServer-MeuRH-BrokerHTTP
SERVICE_DISPLAY_NAME="AppServer - MeuRH - Broker HTTP" 


Para o broker rest Broker REST vamos utilizar como base o appserver.ini mostrado abaixo.

Bloco de código
titleappserver.ini do broker rest
linenumberstrue
[BALANCE_WEBSERVICESGENERAL]
ENABLEConsoleLog=1
ConsoleLogDate=0 

[BALANCE_WEB_SERVICES]
LOCAL_SERVER_PORT=9090
REMOTE_SERVER_01=192.168.0.50 9091
REMOTE_SERVER_0102=192.168.0.50 9092
REMOTE_SERVER_0103=192.168.0.50 9093
PATH=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\web\PortalMeuRH01
DEFAULTPAGE=index.html

[BALANCE_WEBSERVICES]
SSL_METHOD=SSL/TLS
SSL_CERTIFICATE=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheus.cloudtotvs-withBundle.pem
SSL_KEY=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheus.cloudtotvs.com.key
SSL_PASSPHRASE=
SSL_ENCRYPT_UPSTREAM=1SERVICE_NAME=AppServer-MeuRH-BrokerREST
SERVICE_DISPLAY_NAME="AppServer - MeuRH - Broker REST" 


Para os Workers Para os workers vamos utilizar como base o appserver.ini do worker Worker 1 mostrado abaixo. 

Bloco de código
languagetext
titleappserver.ini do worker 1
linenumberstrue
#------------------------------------#
#             SERVICE                #
#------------------------------------#
[SERVICE]
NAME=AppServer-MeuRH-Worker1
DISPLAYNAME=AppServer - MeuRH - Worker 1 (HTTP e REST)

#------------------------------------#
#             LICENSE                #
#------------------------------------#
[LICENSECLIENT]
SERVER=192.168.0.76
PORT=5555

#------------------------------------#
#             NETWORK                #
#------------------------------------#
[DRIVERS]
ACTIVE=TCP
SECURE=SSL

[TCP]
TYPE=TCPIP
PORT=1901
SECURECONNECTION=1

[SSL]
TYPE=TCPIP
PORT=19010

#------------------------------------#
#                 SSL                #
#------------------------------------#
[SSLCONFIGURE]
SSL2=1
SSL3=1
TLS1_0=1
TLS1_1=1
TLS1_2=1
VERBOSE=1
BUGS=1
STATE=1
CACHESIZE=32
CERTIFICATESERVER=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheustotvs.cloudtotvs-withBundle.pem
KEYSERVER=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheus.cloudtotvs.comtotvs.key

#------------------------------------#
#             HTTP\HTTPS             #
#------------------------------------#
[HTTP]
ENABLE=0
PATH=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\web\PortalMeuRH01
PORT=8081
COMPRESSION=1

[HTTPS]
ENABLE=1
PORT=4431
SECURECOOKIE=1
COMPRESSION=1

[tech.protheustotvs.cloudtotvs.com.br:4430/01]
ENABLE=1
PATH=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\web\PortalMeuRH01
DEFAULTPAGE=index.html

#------------------------------------#
#             REST                   #
#------------------------------------#
[HTTPV11]
ENABLE=1
SOCKETS=HTTPREST
TIMEOUT=5000

[HTTPREST]
PORT=9091
URIS=HTTPENV
SECURITY=1
VERBOSE=1
SSL2=0
SSL3=1
TLS1=3
TLS1_0=1
TLS1_1=1
TLS1_2=1
BUGS=1
STATE=1

[HTTPENV]
URL=/rest01
PREPAREIN=All
INSTANCES=5,20,5,5
ENVIRONMENT=WS_MEURH 
CORSENABLE=1
ALLOWORIGIN=*                                                                                                                                                                                                      
PUBLIC=fwjwt/refresh_token,auth
STATELESS=1
ENABLEKEEPALIVE=0
INACTIVETIMEOUT=3600

[RESTCONFIG]
RESTPORT=9091
MEURHLOG=01

#------------------------------------#
#                JOBS                #
#------------------------------------#
[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=WS_MEURH

[ONSTART]
JOBS=HTTPJOB
REFRESHRATE=30
DEBUGMSG=1

#------------------------------------#
#             DATABASE               #
#------------------------------------#
[DBACCESS]
DATABASE=MSSQL
SERVER=192.168.0.50
ALIAS=protheus-12-1-27-exp-com-dic
PROTHEUSONLY=0

#------------------------------------#
#             ENVIRONMENTS           #
#------------------------------------#
[GENERAL]
INSTALLPATH=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\
MAXSTRINGSIZE=10
CONSOLELOG=1
ASYNCCONSOLELOG=1
CONSOLEMAXSIZE=104857600
ASYNCMAXFILES=3  

[WS_MEURH]
SOURCEPATH=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\apo
ROOTPATH=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data
STARTPATH=\system\
X2_PATH=
RPODB=TOP
RPOLANGUAGE=Portuguese
RPOVERSION=120
LOCALFILES=CTREE
LOCALDBEXTENSION=.dtc
TOPMEMOMEGA=1
FWTRACELOG=0
TRACE=0
REGIONALLANGUAGE=BRA


Para os demais workers Workers, copie o appserver.ini do worker Worker 1 e altere os trechos em negrito:
[SERVICE]
NAME=AppServer-MeuRH-Worker1
DISPLAYNAME=AppServer - MeuRH - Worker 1

[TCP]
PORT=19011901 → 1902, 1903, ..., 190N

[SSL]
PORT=1901019010 → 19020, 19030, ..., 190N0

[HTTP]
PORT=80818081 → 8082, 8083, ..., 808N

[HTTPS]
PORT=44314431 → 4432, 443, ..., 443N

[HTTPREST]
PORT=90919091 → 9092, 9093, ..., 909N

[RESTCONFIG]
RESTPORT=90919091 → 9092, 9093, ..., 909N

Inicialização

Os AppServers configurados como Broker necessitam subir com um argumento adicional, descritos abaixo. Clique aqui para mais informações sobre os parâmetros do Broker. 

Broker HTTP

  • Windows: appserver.exe -balance_http -d
  • Linux: appsrvlinux -balance_http -d

Broker REST

  • Windows: appserver.exe -balance_web_services -d
  • Linux: appsrvlinux -balance_web_services -d