Descrição
O TOTVS | Broker Agent (agente) é uma ferramenta utilizada em conjunto com o TOTVS | Application Server (server) e com o TOTVS | Broker (broker) para prover escalabilidade horizontal (horizontal scaling) a um ambiente formado por um agente, um broker, e vários servers.
Em palavras mais simples, a funcionalidade de escalabilidade horizontal funciona da seguinte maneira:
o broker monitora o consumo de vários recursos utilizados pelos servers balanceados: conexões, memória, usuários, threads e cpu
à medida que o consumo total desses vários recursos alcançam um certo limite, o broker requisita ao agente a criação de uma nova instância de server
o agente cria uma nova instância de server (cria um novo processo server no sistema) e informa ao broker em qual porta TCP o novo server está aceitando conexões
o broker então incorpora o novo server às suas tabelas de balanceamento, de maneira que novas conexões que chegam no broker são distribuídas também para o server recém iniciad
O uso da escalabilidade horizontal para a alocação dinâmica de novos servers possibilita o funcionamento mais estável do sistema, pois evita que haja sobrecarga sobre os servers em operação.
A escalabilidade horizontal também funciona de maneira inversa: à medida que os servers se tornem ociosos por algum tempo (isto é, não estejam atendendo nenhuma conexão), o broker requisita que o agente desative estes servers que estão ociosos, desta maneira economizando recursos computacionais e diminuindo os custos de operação do sistema.
Premissas
Para que o esquema de escalabilidade horizontal utilizando o agente funcione, várias premissas devem ser atendidas.
- o binário do agente esteja na mesma pasta onde se encontra o binário do server
- o server esteja configurado para utilizar a porta multi protocolo (este é o modo padrão de funcionamento do server)
- o server esteja atendendo apenas , isto é, não estejam configurados outros serviços no server, tais como Smartclient HTML (webapp), HTTP Server, etc.
- o server esteja sendo atendido via broker
- o broker esteja utilizando monitoramento ativo (que é o modo padrão de funcionamento do broker)
Configuração do Agente
O agente utiliza o mesmo mesmo arquivo de configuração "appserver.ini" utilizado pelo server.
Neste arquivo de configuração deverá haver uma seção específica para o agente, como no exemplo abaixo:
; ------------------------------------------------------------------------------ [BROKER_AGENT] ; habilita ou desabilita a funcionalidade do agente broker ; sem precisar remover os dados de configuração enable = 1 ; ip numérico ou hostname da máquina onde o broker está em execução ; o agente vai se conectar a este broker BrokerServer = 10.172.16.31 ; porta TCP por onde o broker recebe conexões BrokerPort = 12340 ; item de segurança: número máximo de servers que o agente poderá instanciar MaxServers = 10 ; ------------------------------------------------------------------------------