Com balanceamento via Broker é possível dividir a carga com 2 ou mais appservers, resolvendo assim problemas de lentidão causados por muitos acessos em um curto intervalo de tempo. O MeuRH depende dos serviços de http e rest, e é possível balancear ambos.
Nós vamos construir uma aplicação MeuRH exemplo com 5 appservers: broker http, broker rest, worker 1, worker 2, worker 3. Como na imagem abaixo.
Nossa aplicação funcionará com https na porta 443 e rest na porta 9090. Logo, o Broker http é quem subirá a porta 443 e o Broker rest é quem subirá a porta 9090. Então repassam às portas http e rest dos workers.
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 os workers, como base vamos utilizar o appserver.ini do worker 1 mostrado abaixo.
#------------------------------------# # 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\protheus.cloudtotvs-withBundle.pem KEYSERVER=D:\totvs\ambientes-protheus\12-1-27-meurh\protheus\protheus_data\certs\protheus.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.protheus.cloudtotvs.com.br:443/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=0 #------------------------------------# # 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, copie o appserver.ini do worker 1 e altere os trechos em negrito:
[TCP]
PORT=1901
[SSL]
PORT=19010
[HTTP]
PORT=8081
[HTTPS]
PORT=4431
[HTTPREST]
PORT=9091
[RESTCONFIG]
RESTPORT=9091