Exemplo de Implantação (Server Farm)

Na seção anterior implantamos e executamos uma instância do HyperServer no Linux. Nesta seção estendemos o exemplo para suportar a capacidade de server farm do HyperServer. Antes de prosseguir, talvez você queira ler o tópico principal sobre as capacidades de server farm do HyperServer: https://unigui.com/doc/online_help/hyperserver-server-farm.htm

Em um cenário do mundo real, um server farm consiste em vários servidores físicos vinculados para criar um cluster. Neste exemplo vamos criar múltiplas instâncias do HyperServer na mesma máquina física em portas diferentes para emular um server farm. Na terminologia uniGUI, cada instância escrava do HyperServer é chamada de ServerNode. Criaremos três ServerNodes que serão conectados a uma instância master do HyperServer.

Iniciaremos os testes em modo de cluster-0 e depois estenderemos para o modo-2. Veja Modos de Operação de Cluster para mais detalhes: https://unigui.com/doc/online_help/cluster-operation-modes.htm

Configuração do Master HyperServer (Modo-0)

A instância master do HyperServer atuará apenas como balanceador de carga e não servirá aplicações web, então remova todas as referências a aplicações no arquivo CFG. (Se você estiver configurando uma nova instância do zero, esta etapa não é necessária.)

Antes de modificar o arquivo CFG, faça um backup do arquivo CFG existente para que você possa restaurar as configurações feitas para o exemplo standalone anterior, se necessário: https://unigui.com/doc/online_help/deployment-example-(standalone.htm

O primeiro passo é definir a aplicação padrão como nula:

[hyper_server]

binary_name=

Desabilite todas as aplicações previamente configuradas definindo enabled como 0:

[application-0]

enabled=0

Em seguida, configure os ServerNodes escravos:

[server-0]

enabled=1

url=http://localhost:8077

name=ServerNode-A

cluster_mode=0

token=

[server-1]

enabled=1

url=http://localhost:8078

name=ServerNode-B

cluster_mode=0

token=

[server-2]

enabled=1

url=http://localhost:8079

name=ServerNode-C

cluster_mode=0

token=

Nossos ServerNodes escravos irão rodar nas portas 8077, 8078 e 8079. O servidor master roda na porta 88.

Por enquanto deixe o token parâmetro em branco. Você definirá seu valor na próxima etapa. O token é necessário para que o painel de controle do master HyperServer possa exibir os painéis de controle das escravas diretamente sem login.

Configuração dos ServerNodes Escravos

Cada ServerNode será configurado para executar uma aplicação específica. Neste exemplo os ServerNodes irão rodar dentro de subpastas dentro da pasta principal /hyper_server. Nomeie as três pastas:

  • server_node_a

  • server_node_b

  • server_node_c

Copie o executável binário chamado hyper_server para todas essas pastas. Após copiar, você pode executar temporariamente cada binário para criar automaticamente o arquivo CFG. O arquivo CFG criado automaticamente conterá um token parâmetro gerado aleatoriamente que você deve copiar para o arquivo CFG do hyper_server master no correspondente token parâmetro. Por exemplo:

Repita o procedimento acima para cada ServerNode para garantir que todos os token parâmetros estejam corretamente configurados.

1

ServerNode-A

ServerNode-A executará a aplicação FishFacts como aplicação padrão. Sua porta de transporte começará na porta 16484.

Copie o arquivo binário chamado FishFacts para a subpasta server_node_a.

2

ServerNode-B

ServerNode-B executará a aplicação chamada paint.

3

ServerNode-C

ServerNode-C executará a aplicação chamada action.

Executando o Server Farm

Comece executando os ServerNodes. Abra uma janela de terminal separada para cada ServerNode, mude para a subpasta correspondente e execute:

/hyper_server/server_node_a$ sudo ./hyper_server

(Você pode preferir uma forma diferente de executar os ServerNodes — por exemplo, um arquivo em lote. Em produção, os ServerNodes serão executados como serviços do Linux. Veja Executando o HyperServer como um Serviço do Linux: https://unigui.com/doc/online_help/running-hyperserver-as-a-linux.htm)

Depois de executar os ServerNodes, execute a instância principal do HyperServer:

/hyper_server$ sudo ./hyper_server

Teste a configuração abrindo o painel de controle do servidor do master HyperServer. Imagens de exemplo da documentação original estão linkadas abaixo:

  • Painel de controle master mostrando todos os ServerNodes ativos: https://unigui.com/doc/online_help/clip0346.png

  • Acesso ao painel de controle via ícone de lupa (coluna Ações): https://unigui.com/doc/online_help/clip0347.png

  • Painel de controle de um ServerNode selecionado (exemplos): https://unigui.com/doc/online_help/clip0348.png e https://unigui.com/doc/online_help/clip0349.png

Teste as aplicações individuais através do servidor master (substitua conforme apropriado):

  • http://:88 — página principal: https://unigui.com/doc/online_help/clip0350.png

  • http://:88/action — aplicação action: https://unigui.com/doc/online_help/clip0351.png

  • http://:88/paint — aplicação paint: https://unigui.com/doc/online_help/clip0352.png

Todas as aplicações devem rodar conforme esperado.

Você pode continuar para a próxima etapa: testar esta configuração no Modo-2 de implantação do HyperServer: https://unigui.com/doc/online_help/hyperserver-server-farm-mode-2.htm