Hoje vou mostrar como configurar um balanceamento no Protheus e qual é a vantagem dele.
Balanceamento de carga, basicamente você terá um serviço mestre (Master) e os serviços auxiliares (Slaves), onde quando um usuário conectar no seu Protheus através do mestre, ele vai redirecionar para os auxiliares conforme a utilização.
Exemplificando (grosso modo), se o auxiliar 1 tiver com 50 mb, o auxiliar 2 tiver com 100 mb, e o auxiliar 3 tiver com 200 mb, quando o usuário abrir uma nova thread, o mestre vai ver que o auxiliar 1 tem disponibilidade e vai colocar a conexão dele.
Esse cenário é interessante para empresas que trabalham com muitos funcionários, e assim o equilíbrio de serviços fica mais automático.
Para funcionar corretamente, você deve ter um AppServer para cada serviço (1 para o mestre e a quantidade que quiser para os auxiliares).
No nosso exemplo, teremos 1 AppServer mestre (porta 1234) e 3 auxiliares (portas 1241, 1242 e 1243). Os auxiliares você pode configurar normalmente. Já o mestre, você precisa adicionar as seguintes chaves no appserver.ini (substitua localhost pelo seu IP):
[SERVERNETWORK] SERVERS=SERVER1,SERVER2,SERVER3 MASTERCONNECTION=0 [SERVER1] SERVER=localhost PORT=1241 CONNECTIONS=20 [SERVER2] SERVER=localhost PORT=1242 CONNECTIONS=40 [SERVER3] SERVER=localhost PORT=1243 CONNECTIONS=40
Note acima, que no SERVERNETWORK, nós identificamos que teremos 3 auxiliares, e logo abaixo definimos a configuração de cada auxiliar, e o número de conexões.
Agora no seu smartclient.ini, basta você apontar para o seu mestre, que automaticamente será balanceado a carga do seu Protheus.
[config] lastmainprog=SIGAMDI envserver=AMBIENTE Language=1 [drivers] active=tcp [tcp] server=localhost port=1234
UPDATE 13/07/2021:
Conversando com meu amigo Fabricio no Discord, ele me disse algo que eu não sabia, e achei interessante, e vou atualizar aqui no artigo.
A chave Connections, na verdade é um percentual de distribuição de conexões, por exemplo, no cenário acima, o slave 1 recebe até 20% de conexões, enquanto os outros dois recebem 40% ambos (totalizando 80%).
A documentação está nesse link no TDN.
Bom pessoal, por hoje é só.
Abraços e até a próxima.