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 REST, Worker 1, Worker 2, Worker 3.
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 | ||
---|---|---|
| ||
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. |
Para o broker http, Broker HTTP vamos utilizar como base o appserver.ini mostrado abaixo.
Bloco de código | ||||
---|---|---|---|---|
| ||||
[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\protheustotvs.cloudtotvs-withBundle.pem SSL_KEY=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheustotvs.cloudtotvs.com.key SSL_PASSPHRASE= SSL_ENCRYPT_UPSTREAM=1 SERVICE_NAME=AppServer-MeuRH-BrokerHTTP SERVICE_DISPLAY_NAME="AppServer - MeuRH - Broker HTTP" |
Para o Broker REST vamos utilizar como base o appserver.ini mostrado abaixo.
Bloco de código | ||||
---|---|---|---|---|
| ||||
[GENERAL]
ConsoleLog=1
ConsoleLogDate=0
[BALANCE_WEB_SERVICES]
LOCAL_SERVER_PORT=9090
REMOTE_SERVER_01=192.168.0.50 9091
REMOTE_SERVER_02=192.168.0.50 9092
REMOTE_SERVER_03=192.168.0.50 9093
SERVICE_NAME=AppServer-MeuRH-BrokerREST
SERVICE_DISPLAY_NAME="AppServer - MeuRH - Broker REST" |
Para os Workers vamos utilizar como base Para os workers, como base vamos utilizar o appserver.ini do worker Worker 1 mostrado abaixo.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#------------------------------------# # 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\protheustotvs.cloudtotvs.com.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
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.