Considerações iniciais

Preparando ambiente

Antes de começar a instalação, é preciso estar com o ambiente preparado. Faça o seguinte:

  1. Instale o banco de dados e crie uma instância;
  2. Instale o Apache (versão 2.4.x);
  3. É mandatório a utilização de um servidor de Cache externo. A recomendação é utilizar o Redis (Instalar conforme as recomendações [TODO: Por link]);
  4. Escolha uma pasta em um servidor e torne-a acessível para todas as máquinas que farão parte do Load Balancer. Essa pasta conterá os arquivos que precisam ser compartilhados entre todas as instâncias. Conterá no mínimo duas pastas: apps e wcmdir.

Instalando a primeira instância

Para efeitos de simplificação, esse tutorial irá considerar que: 1) o servidor Realtime a ser usado será o instalado nesse nó; 2) a instalação será feita na pasta padrão (“/opt/fluig”).

O Fluig possui uma configuração especial para ser executado em cluster com Load Balancing. Essa configuração é habilitada durante a instalação.

  1. Instale a aplicação, usando o procedimento normal, porém utilize a seguinte linha de comando:

    sudo ./jdk-64/bin/java -jar -Dprofile=full-ha fluig-installer.jar
  2. Abra em um editor de texto o arquivo FLUIG_HOME/appserver/domain/configuration/domain.xml e altere algumas configurações:
    1. Encontre a propriedade de binding "java:global/wcm/globalDataDir" e altere para apontar para a pasta compartilhada entre as instâncias;

      <simple name="java:global/wcm/globalDataDir" value="{pasta global}/wcmdir"/>
    2. Encontre o subsystem "urn:com.totvs.technology.wcm:1.0" e altere para apontar para a pasta compartilhada entre as instâncias;

      <subsystem xmlns="urn:com.totvs.technology.wcm:1.0" dir="{pasta global}/apps" refresh="15"/>
  3. Mova o conteúdo da pasta FLUIG_HOME/repository/wcmdir para a pasta {pasta global}/wcmdir
  4. Mova o conteúdo da pasta FLUIG_HOME/appserver/apps para a pasta {pasta global}/apps.
  5. Configure o fluig Indexer (Solr) para ser executado em servidor separado, confome instruções aqui.
  6. Abra em um editor de texto o arquivo FLUIG_HOME/repository/wcmdir/config/configuration.properties e altere algumas configurações:
    1. Encontre a chave "wcm/cacheServerAddress" e altere o valor para apontar para o servidor de cache configurado conforme recomendação [TODO: por Link].
  7. Inicie os serviços do cache, fluig_Indexer e fluig_RealTime e em seguida inicie o fluig.
  8. Acesse o fluig com o usuário "wcmadmin", crie o tenant e faça as configurações necessárias.
  9. Derrube o fluig e os serviços do fluig_RealTime, fluig_Indexer e do cache.

 

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

O fluig já vem preparado para executar uma segunda instância na mesma instalação. Basta habilitar e configurar parâmetros como memória, port offset e nome da instância.

Abra em um editor de texto o arquivo FLUIG_HOME/appserver/domain/configuration/host.xml. Procure pela tag <servers>, dentro há duas tags <server>. A segunda é a que precisa ser alterada.

  1. Altere o valor do atributo "auto-start" para "true". Com isso a segunda instância será iniciada automaticamente junto com a primeira.
  2. Caso desejar ou for necessário, altere o atributo "port-offset" da tag "socket-bindings".
  3. 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

  1. Instale a aplicação pelo procedimento normal e siga as instruções até o procedimento antes de iniciar o servidor.
  2. Abra em um editor de texto o arquivo FLUIG_HOME/appserver/domain/configuration/host.xml. Procure pela tag <servers>, dentro há as tags <server>. Altere o atributo "name" dessas tags. O valor desse atributo precisa ser diferente em cada instância.

Configurando o apache mod_cluster

O fluig utiliza o módulo mod_cluster (juntamente com o mod_proxy) para fazer um correto balanceamento de carga e tolerância a falha. Recomenda-se a utilização da versão disponibilizada aqui.

  1. Faça o download do arquivo http://downloads.jboss.org/mod_cluster/1.3.1.Final/linux-x86_64/mod_cluster-1.3.1.Final-linux2-x64-so.tar.gz.
  2. Descompacte na pasta modules do Apache (comumente /usr/lib/apache2/modules).
  3. Habilite o mod_cluster (comumente feito criando o arquivo /etc/apache2/sites-enabled/mod_cluster.conf). O exemplo a seguir cria um cluster chamado "fluig" e sobe o cluster manager na porta 10001, contexto /mcm. Acesse a URL <SERVIDOR>:10001/mcm para consultar o status do cluster.

    <IfModule manager_module>
      Listen 10001
      ManagerBalancerName fluig
      <VirtualHost *:10001>
        <Location />
          Require all granted
        </Location>
    
        KeepAliveTimeout 300
        MaxKeepAliveRequests 0
        AdvertiseFrequency 5
        AdvertiseGroup 224.0.1.105:23364
        ServerAdvertise On
        EnableMCPMReceive
        AllowDisplay On
    
        <Location /mcm>
           SetHandler mod_cluster-manager
           Require all granted
        </Location>
      </VirtualHost>
    </IfModule>
  4. Configure o Apache para carregar os módulos necessários (comumente feito através do arquivo /etc/apache2/mods-enabled/mod_cluster.load), conforme abaixo (Obs.: a ordem é extremamente importante):

    LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
    LoadModule cluster_slotmem_module /usr/lib/apache2/modules/mod_cluster_slotmem.so
    LoadModule proxy_cluster_module /usr/lib/apache2/modules/mod_proxy_cluster.so
    LoadModule advertise_module /usr/lib/apache2/modules/mod_advertise.so
    LoadModule manager_module /usr/lib/apache2/modules/mod_manager.so
    LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
    LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
  5. sadasd


Configurando o apache mod_proxy

Abra o arquivo httpd.conf e adicione o seguinte código:

 



O que é importante entender aqui: