Histórico da Página
Descrição
O TOTVS | Broker Agent (agente) é uma ferramenta utilizada em conjunto com o
Inclusão de trecho | ||||||
---|---|---|---|---|---|---|
|
Inclusão de trecho | ||||||
---|---|---|---|---|---|---|
|
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.Inclusão de trecho tec:Smartclient tec:Smartclient nopanel true - 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:
Bloco de código | ||||
---|---|---|---|---|
| ||||
; ------------------------------------------------------------------------------ [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 ; ------------------------------------------------------------------------------ |
Configuração do Server
A configuração do server não necessita de nada especial, a não os dois pontos abaixo:
- deve haver a seção BROKER_AGENT (como descrito acima), porque o agente e o server compartilham o mesmo arquivo de configuração (appserver.ini)
- deve apenas a especificação da porta multi protocolo: não pode haver configuração de nenhuma outra seção que implique a utilização de portas TCP em modo server: WEBAPP, HTTP, TELNET, etc
Configuração do Broker
Para o broker funcionar no esquema de escalabilidade horizontal deve ser utilizado um arquivo de configuração parecido com o exemplo abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
; ------------------------------------------------------------------------------ [BALANCE_SMART_CLIENT_DESKTOP] ; porta TCP por onde o broker aceita conexões LOCAL_SERVER = 12340 ; NÃO definir as chaves REMOTE_SERVER_00 etc ; broker vai tratar conexões do agente WITH_BROKER_AGENT = 1 ; planos de escalabilidade que o broker cai tratar ; os nomes abaixo são ilustrativos, podem ser usados quaisquer nomes SCALING_PLANS = COMERCIAL, NOITE, MADRUGADA, MANHA, FDS ; ------------------------------------------------------------------------------ ; especificação dos planos de escalabilidade [COMERCIAL] FROM = 09:00 TO = 17:59 WEEKDAYS = 2 3 4 5 6 MIN_SERVERS = 2 MAX_SERVERS = 4 CONNECTION_LIMIT = 10 [NOITE] FROM = 18:00 TO = 23:59 WEEKDAYS = 2 3 4 5 6 MIN_SERVERS = 1 MAX_SERVERS = 2 CONNECTION_LIMIT = 5 [MADRUGADA] FROM = 00:00 TO = 05:59 WEEKDAYS = 2 3 4 5 6 MIN_SERVERS = 1 MAX_SERVERS = 2 CONNECTION_LIMIT = 3 [MANHA] FROM = 06:00 TO = 08:50 WEEKDAYS = 2 3 4 5 6 MIN_SERVERS = 1 MAX_SERVERS = 3 CONNECTION_LIMIT = 5 [FDS] FROM = 00:00 TO = 23:59 WEEKDAYS = 17 MIN_SERVERS = 1 MAX_SERVERS = 3 CONNECTION_LIMIT = 5 ; ------------------------------------------------------------------------------ |