Consideraciones iniciales
- El servicio de indexación (Solr) precisa ser único y compartido por todas las instancias, por lo tanto se debe aislar en otro ambiente;
- Todas las instancias deberán tener acceso a una misma carpeta compartida, donde será el repositorio de archivos del sistema;
- El banco de datos debe ser único para todas las instancias;
- Es preciso mantener afinidad de sesión, es decir, una vez que el usuario inició sesión accediendo en una instancia, siempre será direccionado a la misma instancia.
Preparar Entorno...
Antes de comenzar la instalación, es preciso estar con el ambiente preparado. Haga lo siguiente:
- Instale el banco de datos y cree una instancia;
- Instale el memcached estándar de la distribución y si es necesario haga las configuraciones;
- Elija una carpeta y un servidor y hágala accesible a todas las máquinas que harán parte del Load Balancer.
Instalando el primer nudo
Para efectos de simplificación, este tutorial considerará que: Los servidor Solr y Realtime que se usarán serán los instalados en ese nudo; la instalación se realizará en la carpeta estándar (“c:\fluig”).
- Instale
la aplicación por el procedimiento normal, solamente tomando el
cuidado de:
- Informe la URL correcta del banco de datos;
- Informe
la URL correcta para el servidor memcached.
- Haga una copia de la carpeta “apps” (localizada en
\fluig\jboss) a otra llamada “appslb”;
xcopy apps appslb /s/e
- Haga una copia de la carpeta “standalone” a otra llamada
“standalone-node1”.
cp -Rp standalone standalone-node1
- Edite el archivo
standalone-node1\configuration\standalone.xml:
En el subsystem “com.totvs.technology.wcm” agregue el atributo “dir” apuntando a la carpeta “nodelb”. Se verá así:
<subsystem xmlns="urn:com.totvs.technology.wcm:1.0" refresh="15" dir="/fluig/jboss/appslb"/>
Modifique el valor de la propiedad de binding “wcm/globalDataDir” para apuntar a la carpeta compartida entre las instancias:
<simple name="java:global/wcm/globalDataDir" value="{carpeta global}"/>
La propiedad “wcm/applicationUploadDir” debe apuntar a la misma carpeta “nodelb”:
<simple name="java:global/wcm/applicationUploadDir" value="/fluig/jboss/appslb"/>
En el sysbsystem “jboss:domain:web” agregar el atributo instance-id="${jboss.node.name:node0}"
En la carpeta “c:\fluig\jboss\bin”, cree el script “node1.bat”. En “ip-do-servidor” coloque la dirección IP del servidor donde el Fluig se está ejecutando;
call standalone.bat -c standalone.xml -b {ip-do-servidor} -Djboss.server.base.dir=..\standalone-node1 -Djboss.node.name=node1 -Djboss.socket.binding.port-offset=100
Inicie el primer nudo por el script “node1.bat”:
node1.bat
Después de iniciado y conseguir iniciar sesión con el usuario “wcmadmin”, derribe el Fluig;
Conecte en el banco de datos y establezca el valor del campo server_url, de la tabla wcm_configuration. La URL guardada contiene el puerto 8080, modifique el valor para no contener el puerto (o modifique para el puerto del apache, en el caso que no esté en el puerto 80);
Inicie el Fluig nuevamente por el script “node1.bat”;
Creando un segundo nudo en la misma instalación
Haga una copia de la carpeta “standalone-node1” para otra llamada “standalone-node2”.
xcopy standalone-node1 standalone-node2 /s/e
Excluya de la carpeta “apps” el archivo “foundation-addon-indexer-web.war”, que es el servidor Solr.
En la pasta “c:\fluig\jboss\bin”, cree el script “node2.bat”. En “ip-do-servidor” coloque la dirección IP del servidor donde el Fluig se está ejecutando.
call standalone.sh -c standalone.xml -b {ip-do-servidor} -Djboss.server.base.dir=..\standalone-node2 -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=200
Creando un tercer nudo en otra máquina
- Instale la aplicación por el procedimiento normal, solamente
tomando el cuidado de:
- Informe la URL correcta del banco de datos;
- Informe
la URL correcta para el servidor memcached.
- Edite el archivo standalone\configuration\standalone.xml:
Aun en “<system-properties>”, modifique la propiedad “totvs/solrURL” informando la URL del Solr de la primera instancia. Simplemente cambie el IP por el IP del servidor de la primera instancia.
Modifique el valor de la propiedad de binding “wcm/globalDataDir” para apuntar a la carpeta compartida entre las instancias:
<simple name="java:global/wcm/globalDataDir" value="{carpeta global}"/>
Modifique el valor de la propiedad de binding “wcm/cacheServerAddress” para apuntar al memcached:
<simple name="java:global/wcm/cacheServerAddress" value="{ip servidor 1}:11211"/>
Modificar las propiedades de binding “node.chat.url” y “node.realtime.url” para apuntar al IP de la primera instancia.
En el sysbsystem “jboss:domain:web” agregar el atributo instance-id="${jboss.node. name:node0}"
En la carpeta “c:\fluig\jboss\bin”, cree el script “node3.bat”. En “ip-do-servidor” coloque la dirección IP del servidor donde el Fluig se está ejecutando.
call standalone.bat -c standalone.xml -b {ip-do-servidor} -Djboss.server.base.dir=..\standalone-node3 -Djboss.node.name=node3
Excluya de la carpeta “apps” el archivo “foundation-addon-indexer-web.war”, que es el servidor Solr.
Inicie el primer nudo por el script “node3.bat”:
node3.bat
Configurando el Microsoft NLB
Existen 3 puertos para configurar:
7777 y 8888 para el Fluig Realtime:
- Ambos deberán estar en el Modo "Single"
- Para más informaciones acceda Configurando el Fluig Realtime para ejecución en cluster.
Puerto HTTP para el Fluig Server
- Este puerto suele ser el 8080 o solo 80.
- Este puerto debe estar en el modo "Múltiple" y afinidad "Single".