Modos de Operação do Cluster

Pode haver diferentes modos de operação em uma fazenda de servidores HyperServer. Cada modo tem seus próprios prós e contras. Existem três modos diferentes nos quais você pode configurar seus nós escravos.

1

Pass Through (hcmPassThrough)

Modo 0 ou modo Pass Through é o modo de operação padrão. Neste modo, todas as requisições passam pelos instâncias mestre do HyperServer. O HyperServer mestre será o único ponto de entrada para toda a sua fazenda de servidores. Todas as requisições serão aceitas pelo HyperServer mestre e distribuídas internamente para os respectivos Slave Nodes. Isso inclui todas as requisições de entrada, incluindo requisições HTTP, requisições Ajax e requisições de arquivos. O HyperServer mestre se comunica com seus próprios Nodes (se houverem) e com os ServerNodes. Cada ServerNode também se comunica com seus próprios Nodes.

As diretrizes em Setting up a HyperServer Server Farm criam uma fazenda de servidores HyperServer em modo Pass Through.

Prós:

  • Você só precisa ter uma URL pública que é o ponto de entrada para sua fazenda de servidores. Essa URL pública redireciona todas as requisições para o HyperServer mestre. Você não precisa expor os ServerNodes à internet pública.

  • Configurar uma fazenda de servidores em modo Pass Through é mais fácil e rápido.

  • Mais fácil de manter

  • Arquivos de runtime do uniGUI só podem ser instalados no HyperServer mestre.

Contras:

  • O desempenho pode degradar quando há muitas requisições concorrentes de entrada e existem muitos Nodes na fazenda de servidores.

2

Direct (hcmDirect)

Nesse modo, o HyperServer mestre se comunica diretamente com os Nodes pertencentes aos ServerNodes escravos. Assim, cada ServerNode criará seus próprios Nodes, mas é o HyperServer mestre que se comunicará diretamente com eles. Todo o tráfego de entrada é redirecionado para todos os Nodes na fazenda de servidores através do HyperServer mestre. Neste modo, a principal função dos ServerNodes escravos é criar e manter Nodes locais e repassá-los ao HyperServer mestre.

(Este modo ainda não está implementado)

3

Url Redirect (hcmUrlRedirect)

Neste modo, ServerNodes que estão configurados com cluster_mode=2 servirão todas as requisições respectivas diretamente — ou seja, as requisições não passarão pelo servidor mestre.

Quando uma nova requisição de sessão é recebida pelo HyperServer mestre, ele decidirá qual ServerNode deve atender essa requisição. Se o ServerNode estiver configurado como Mode 2, então a URL de entrada será redirecionada para esse ServerNode.

Exemplo:

Considere que seu cluster consiste em três servidores. Um HyperServer mestre localizado na URL http://myserver.com e dois ServerNodes com URLs públicas http://server1.myserver.com e http://server2.myserver.com.

Quando uma nova requisição de sessão é recebida pelo HyperServer mestre, com base no mecanismo de balanceamento de carga um dos ServerNodes é selecionado e uma solicitação de redirecionamento de URL é enviada de volta ao navegador. O navegador redirecionará a URL para o novo servidor, que é um dos ServerNodes no exemplo acima. Assim, a nova sessão começará em http://server1.myserver.com ou em http://server2.myserver.com.

Requisição inicial ---> http://myserver.com ---> Load Balancer

  • ---> http://server1.myserver.com

  • ---> http://server2.myserver.com

  • ---> http://serverx.myserver.com

Esse mecanismo de redirecionamento aliviará o servidor mestre do processamento das requisições subsequentes das sessões como ocorreria no Modo-0.

Como funciona o redirecionamento?

Quando um HyperServer mestre recebe uma nova requisição de um cliente, ele tentará encontrar um ServerNode com base em um algoritmo interno de balanceamento de carga. Se o ServerNode estiver configurado como Mode-2 então, em vez de enviar a requisição diretamente, uma nova URL é criada e o cliente é redirecionado para essa nova URL. Essa nova URL é a URL pública do ServerNode.

Considere que o ponto de entrada para seu mestre é: http://localhost/webapp/hyper.dll

e você tem um escravo configurado como Mode-2 com a URL pública: http://localhost/webapp/server-0/hyper.dll

clip0237

Após pressionar enter, a página é redirecionada para uma nova URL que é a URL pública do seu ServerNode. Você também pode observar que alguns parâmetros adicionais são adicionados à URL. Explicaremos o significado desses parâmetros mais adiante.

clip0238

Devo preferir Mode-2 em vez do Mode-0?

A resposta é sim se você tem um cluster grande com muitos ServerNodes e desempenho é sua preocupação principal. Você pode decidir melhor analisando os prós e contras deste modo abaixo:

Prós:

  • Melhor escalabilidade comparada ao Mode-0. O tráfego de entrada é redirecionado para os ServerNodes relacionados, então não haverá degradação de desempenho quando houver um pico intenso de requisições de entrada.

Contras:

  • Cada ServerNode deve estar acessível pela internet com uma URL pública.

  • Arquivos de runtime do uniGUI devem ser instalados e atualizados em cada ServerNode.

  • Etapas adicionais são necessárias para completar a configuração.

Nota: Mode-2 foi introduzido no uniGUI 1.90.0 build 1557.