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.
Migraçã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.
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