Á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 do fluig da atualização 1.6.0 à 1.6.2.

Para atualizações 1.6.3 ou superiores, acesse: Fluig Plataforma em load balance com Apache mod_proxy em Linux.

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


Plataforma

Produto: fluigTOTVS Fluig Plataforma

Versão: da 1.6.0 à 1.6.2


Ocorrência

Como configurar o fluig a plataforma com balanceamento de carga (load balance) utilizando Apache mod_proxy em Linux das releases 1.6.0 à 1.6.2? 


Solução

Aviso
titleImportante

Antes de prosseguir com as instruções descritas nessa página, siga com atenção as instruções contidas na documentação ARQ - Como configurar load balance, alta disponibilidade e tolerância a falha do fluig na release 1.6 à .0 a 1.6.2?

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

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 da plataforma em um ambiente Load Balance.

Deck of Cards
historyfalse
idFirstNode
Card
defaulttrue
id1
labelPasso 1


  • Faça uma instalação normal, conforme o Guia de instalação fluig, mas não inicie os serviços do fluigda plataforma.


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

  • Abra em um editor de texto o arquivo [Instalação do fluig]/repository/wcmdir/config/configuration.properties e altere a seguinte configuração:
  • Localize a chave "wcm/cacheServerAddress" e altere o valor com o endereço do servidor de cache configurado conforme recomendação.


Card
id4
labelPasso 4

  • 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
id5
labelPasso 5


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


Card
id6
labelPasso 6

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



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

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

Deck of Cards
historyfalse
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
<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 a plataforma for iniciadoiniciada. 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
historyfalse
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 A plataforma homologa o Apache com o módulo mod_proxy para fazer o balanceamento de carga.

Deck of Cards
historyfalse
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
  • 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
<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

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