Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 31 Próxima »

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:

  1. o broker monitora o consumo de vários recursos utilizados pelos servers balanceados: conexões, memória, usuários, threads e cpu

  2. à 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

  3. 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

  4. 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.

  1. o binário do agente esteja na mesma pasta onde se encontra o binário do server
  2. o server esteja configurado para utilizar a porta multi protocolo (este é o modo padrão de funcionamento do server)
  3. o server esteja atendendo apenas , isto é, não estejam configurados outros serviços no server, tais como Smartclient HTML (webapp), HTTP Server, etc.
  4. o server esteja sendo atendido via broker
  5. 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

; ------------------------------------------------------------------------------

Configuração do Server

A configuração do server não necessita de nada especial, a não os dois pontos abaixo:

  1. 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)
  2. 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:


; ------------------------------------------------------------------------------

[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
; ------------------------------------------------------------------------------

Chaves do Plano de Escalabilidade

{{[NOME]}: nome do plano, não tem significado especial, server apenas como identificação do plano

FROM: hora do início de validade do plano, especificado em horas e minutos (HH:SS)

TO: hora do final de validade do plano, especificado em horas e minutos (HH:SS)

  • Sem rótulos