Balanceamento de Carga usando o Totvs Broker

Hugo Guilherme Gomes
TOTVS Developers
Published in
3 min readFeb 14, 2023

O Load Balance se tornará obsoleto (“deprecated”) a partir da versão
12.1.2210 a ser liberada em outubro. O balanceamento
padrão será feito via Totvs Broker, embarcada no próprio binário do
Application Server, responsável por otimizar recursos disponíveis no
ambiente, além de melhorar a performance do balanceamento de carga e
segurança da aplicação.

O Totvs Broker tem várias vantagens em relação ao Load Balance
tradicional.

1. apenas 1 ip/hostname e porta precisam ser publicados
2. fornece resiliência a desconexões
3. pode fazer balanceamento por recursos (memória, usuários, cpu,
threads)
4. possui uma tela de consulta via browser
5. pode balancear conexões de web stateless (como web services REST
e SOAP), aplicações web stateful (especialmente o Totvs Smartclient
HTML), e conexões Telnet; (obs. a resiliência a desconexões e o
balanceamento por recursos são fornecidos apenas para o
Smartclient desktop tradicional)

Adicionalmente, no build 20.3.1.x do Application Server a ser utilizado no
12.1.2210, o Broker recebeu um novo recurso: escalonamento
automático de Application Servers para atendimento de Smartclients.
Este novo recurso do Broker trabalha em conjunto com um novo binário a
ser embarcado junto do Application Server: o Totvs Broker Agent
(“Agente”).

Através do monitoramento de recursos que o Broker faz dos Application
Servers que estão sendo balanceados e de acordo com uma configuração
simples (“planos de escalonamento”), o Broker se comunica com o
Agente.

Com o uso do Agente é possível utilizar vários planos de escalonamento
configurados no Broker. Por exemplo, durante o dia um certo número de
instâncias de Application Server vai estar disponível e à noite um número
menor de instâncias estarão ativas, já que a carga do sistema diminui. É
importante notar que inicialmente o Agente só vai poder controlar
instâncias de Application Server que atendam exclusivamente a
Smartclients. Isto é, cada Application Server não pode ter outros serviços
configurados (Webapp, REST server, etc).

Vamos à parte prática, configurações e utilização.

Iniciamos configurando o Totvs Broker.

Neste exemplo acima configuramos o Totvs Broker para funcionar de
segunda a sexta, em dois modelos de trabalho: o modelo “Comercial” das
8:00 AM até as 18:00 PM, limitando a cinquenta conexões com o uso de 8
gigas de memória. O segundo modelo é o exemplo “Noite”, das 18:05 PM
até as 23:59 PM, com apenas oito conexões e o uso de 1 giga.

Temos o Totvs Broker funcionando com algumas configurações definidas.

Vamos ao Agente broker, a nova ferramenta. Aqui editamos o
appserver.ini e adicionamos a chave [BROKER_AGENT], possibilitando a
comunicação com o Totvs Broker.

Criamos um atalho do broker_agent.exe e o inicializamos com o
parâmetro desktop.

Após alguns segundos será iniciado o Appserver configurado, no Totvs
Broker

Neste cenário temos um sistema de balanceamento funcionando sozinho,
com as métricas apontadas no início da configuração do Totvs Broker.
Agora podemos executar um smartclient direto na porta do Totvs Broker,
aqui neste exemplo na porta 13001, onde ele fará a distribuição de carga
pelo Agente e conectará ao Appserver.

Espero ter esclarecido o funcionamento do Totvs Broker.
Para maiores informações acesse https://tdn.totvs.com/display/tec/Broker
https://tdn.totvs.com/display/tec/Broker+Agent

Abraços Hugo Guilherme Gomes.

--

--

Hugo Guilherme Gomes
TOTVS Developers

Dev na TOTVS - Departamento de Tecnologia. "Não confie, verifique..."