Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleAtenção

Esta página foi revisada para considerar as configurações de server do fluig para a atualização 1.6.3 ou superiores.

Para atualizações entre 1.6.0 e 1.6.2 do fluig, acesse: Como configurar o fluig em load balance com Apache mod_proxy em Linux das releases 1.6.0 à 1.6.2?

Caso possua uma atualização anterior do fluig acesse: Como configurar o fluig em Load Balance com Apache mod_proxy em Linux na release 1.5.6 à 1.5.13?

Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone


Pré-requisitos


Para atualizar os parâmetros de configuração, deve-se obedecer aos seguintes pré-requisitos:

  • O usuário deve ser administrador da plataforma;
  • O usuário deve ter acesso aos arquivos de configuração da plataforma.
Aviso
titleImportante

Antes de prosseguir com as instruções descritas nessa página, siga com atenção as instruções contidas na documentação Balanceamento de carga, alta disponibilidade e tolerância falha - cluster


Considerações iniciais


A configuração de balanceamento de carga (load balance) é a forma mais simples de se obter distribuição de carga e algum nível de alta disponibilidade.

Nota

Em ambientes com load balance, é muito importante manter todos os servidores com o horário sincronizado.

A grande desvantagem é a necessidade de afinidade de sessão, ou seja, uma vez que o usuário foi autenticado em uma instância, sempre será direcionado para a mesma instância. Nesse caso, se essa instância ficar indisponível, o usuário terá que logar novamente na aplicação.


Instalando a primeira instância


Siga os procedimentos abaixo para realizar a instalação da primeira instância do fluig em um ambiente load balance.

Deck of Cards
idFirstNode
Card
defaulttrue
id1
labelPasso 1



Card
id2
labelPasso 2


  • Abra em um editor de texto o arquivo [Instalação fluig]/appserver/domain/configuration/domain.xml e altere as seguintes configurações:
  • Localize a propriedade de binding "java:global/wcm/globalDataDir" e altere-a informando o caminho da pasta compartilhada entre as instâncias;
Bloco de código
languagehtml/xml
<simple name="java:global/wcm/globalDataDir" value="GLOBAL_DATA_DIR/wcmdir"/>
  • Localize o subsystem "urn:com.totvs.technology.wcm:1.0" e altere-o informando o caminho da pasta compartilhada entre as instâncias;

Bloco de código
languagehtml/xml
<subsystem xmlns="urn:com.totvs.technology.wcm:1.0" dir="GLOBAL_DATA_DIR/apps" refresh="15"/>
Card
id3
labelPasso 3

  • Mova o conteúdo da pasta [Instalação fluig]/repository/wcmdir para a pasta GLOBAL_DATA_DIR/wcmdir
  • Mova o conteúdo da pasta [Instalação fluig]/appserver/apps para a pasta GLOBAL_DATA_DIR/apps


Card
id4
labelPasso 4


  • Configure o servidor de indexação (fluig Indexer) para ser executado em servidor separado, conforme instruções aqui.


Card
id5
labelPasso 5

  • Inicie os serviços fluig_Indexer, fluig_RealTime e em seguida, inicie o fluig.
  • Acesse o fluig com o usuário "wcmadmin", crie uma nova empresa (tenant) e realize as configurações necessárias.
  • Pare o fluig e os serviços do fluig_RealTime fluig_Indexer.



Criando uma segunda instância na mesma instalação


O fluig permite executar uma segunda instância na mesma instalação, ou seja, sem a necessidade de instalar tudo novamente.

Deck of Cards
idSecondInstance
Card
defaulttrue
id1
labelPasso 1

  • Abra em um editor de texto o arquivo [Instalação do fluig]/appserver/domain/configuration/host.xml
  • Localize a tag <servers>
  • Dentro dela haverão tags chamadas <server>
  • Adicione uma nova tag <server>, conforme exemplo:
Bloco de código
languagexml
themeEclipse
titlehost.xml
<server auto-start="true" group="fluig" name="fluig2">
    <socket-bindings port-offset="150" socket-binding-group="full-sockets"/>
    <jvm name="default">
        <heap max-size="4g" size="2g"/>
        <jvm-options>
            <option value="-Dfile.encoding=utf8"/>
            <option value="-Djsse.enableSNIExtension=false"/>
            <option value="-XX:MaxMetaspaceSize=512m"/>
            <option value="-Djavamelody.disabled=true"/>
        </jvm-options>
    </jvm>
</server>
Card
id2
labelPasso 2


  • Certifique-se que o atributo name contenha um valor que jamais será repetido em outra instância.
  • A primeira instância sempre deverá se chamar "fluig1", enquanto as demais instâncias podem ter qualquer nome definido.


Card
id3
labelPasso 3

  • O atributo auto-start indica se a instância deve ser iniciada imediatamente quando o fluig for iniciado. Se informado false, será preciso iniciá-la manualmente posteriormente usando o painel de controle do servidor de aplicação.


Card
id4
labelPasso 4

  • Caso desejar ou for necessário, altere o atributo port-offset da tag socket-bindings. Cada nova instância precisa de um valor diferente (múltiplos de 150 são uma boa indicação).


Card
id5
labelPasso 5

  • Ajuste as configurações de memória na tag heap.


É possível adicionar mais instâncias na mesma instalação. Basta replicar toda a seção <server> e tomar o cuidado de alterar, pelo menos, os atributos port-offset e name.

Criando uma instância em outra máquina


Deck of Cards
idThirdInstance
Card
id1
labelPasso 1


  • Instale a aplicação pelo procedimento normal e siga as instruções até o procedimento antes de iniciar o servidor.


Card
id2
labelPasso 2

  • Abra em um editor de texto o arquivo [Instalação do fluig]/appserver/domain/configuration/host.xml.
  • Localize a tag <servers>.
  • Dentro dela haverão tags chamadas <server>. Altere o atributo name dessas tags. O valor desse atributo precisa ser diferente em cada instância.



Configurando o balanceador (mod_proxy)


O fluig homologa o Apache com o módulo mod_proxy para fazer o balanceamento de carga.

Deck of Cards
idModProxy
Card
defaulttrue
id1
labelPasso 1



Card
id2
labelPasso 2


  • Configure o Apache para carregar os módulos necessários (comumente feito através do arquivo /etc/apache2/mods-enabled/mod_proxy.load), conforme abaixo.
Nota

A ordem de carregamento dos módulos é extremamente importante.

Bloco de código
languagetext
LoadModule lbmethod_bybusyness_module /usr/lib/apache2/modules/mod_lbmethod_bybusyness.so
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule slotmem_shm_module /usr/lib/apache2/modules/mod_slotmem_shm.so
LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule headers /usr/lib/apache2/modules/mod_headers.so
LoadModule lbmethod_byrequests /usr/lib/apache2/modules/mod_lbmethod_byrequests.so
  • A primeira linha indica o tipo de balanceamento que será feito. No exemplo acima, ele é feito por carga do servidor. Para conhecer outras formas, consulte o manual do Apache.


Card
id3
labelPasso 3


  • Habilite o mod_proxy (em geral isso é feito criando o arquivo /etc/apache2/sites-enabled/mod_proxy.conf).
Bloco de código
languagexml
Header add Set-Cookie "FLUIGCOOKIE=%{UNIQUE_ID}e.%{BALANCER_WORKER_ROUTE}e; path=/" env=!VARCOOKIE
<VirtualHost *:80>
                ProxyRequests Off
                ProxyPreserveHost On

                <Proxy balancer://mycluster>
                        BalancerMember http://{ip servidor 1}:8080 route=fluig1
                        BalancerMember http://{ip servidor 1}:8230 route=fluig2
                        BalancerMember http://{ip servidor 2}:8230 route=fluig3
						ProxySet stickysession=FLUIGCOOKIE
                </Proxy>

                <Location /balancer-manager>
                        SetHandler balancer-manager
                        Order Deny,Allow
                        Allow from all
                </Location>
                <Location />
                        Order allow,deny
                        Allow from all
                </Location>

                ProxyPass / balancer://mycluster/ stickysession=FLUIGCOOKIE nofailover=Off
                ProxyPassReverse / balancer://mycluster/
</VirtualHost>
Aviso
titleAtenção
  • Cada “BalancerMember” indica um servidor e deve apontar para o IP e porta corretos.
  • Um cookie chamado “FLUIGCOOKIE” é criado para manter a afinidade da sessão. Sem o cookie, o procedimento não irá funcionar.