1. JBoss en Cluster con
Balanceo de Carga.
Juan Carlos Marín Rincón
Computación de Alto Desempeño
Maestría en Ingeniería de Sistemas
Politécnico Grancolombiano
2. Configuración balanceo de
carga
Descargar e instalar un servidor HTTP
Apache.
Descargar e instalar un servidor
JBoss.
mod_jk: se encarga de enviar
peticiones configuradas desde un
servidor Web a un servidor de
aplicaciones.
3. mod - jk
Se descarga el modulo y se coloca en la
ruta <APACHE_HOME>/modules
renombrandolo por mod_jk.so
Se adiciona el siguiente fragmento de
código en el archivo httpd.conf:
◦ Se crea el archivo mod-jk.conf en la ruta
<APACHE_HOME>/conf/
# Include mod_jk’s specific configuration file
Include conf/mod-jk.conf
4. mod - jk
Se añade el siguiente código dentro
del archivo:
# Load mod-jk module
# Specify the filename of the mod-jk lib
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
#Set the jk log level
JkLogLevel info
5. mod - jk
# Select the log format
JkLogStampFormat “[%a %b %d %H:%M:%S %Y]”
# JkOptions indicates to send SSK KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -
ForwardDirectories
# JkRequestLogFormat
JkRequestLogFormat "%w %V %T"
# Mount your applications
JkMount /application/* loadbalancer
# You can use external file for mount points.
# It will be checked for updates each 60 seconds.
# The format of the file is: /url=worker
# /examples/*=loadbalancer
JkMountFile conf/uriworkermap.properties
6. mod - jk
# Add shared memory.
# This directive is present with 1.2.10 and
# later versions of mod_jk, and is needed for
# for load balancing to work properly
JkShmFile logs/jk.shm
# Add jkstatus for managing runtime data
<Location /jkstatus/>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
7. Configuración balanceo de
carga
Se crea en la misma ruta un archivo
uriworkermap.properties
Este archivo hace que el mod-jk
redireccione las peticiones a las web-
console y jmx-console al jboss
necesario.
# Simple worker configuration file
# Mount the Servlet context to the ajp3 worker
/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-cosole/*=loadbalancer
8. Configuración balanceo de
carga
Crear el archivo workers.properties
que son los archivos de configuración
de los nodos
# Define list of workers that will be used
# for mapping requests
# The configuration directives are valid
# for the mod_jk version 1.2.18 and later
worker.list=loadbalancer,status
# Definimos el nodo Nodo1
# Puerto del conector ajp de nuestro tomcat (JBoss)
worker.nodo1.port=8009
# Ip del nodo 1.
worker.nodo1.host=172.24.48.73
worker.nodo1.type=ajp13
9. Configuración balanceo de
carga
# Peso de nuestro nodo. A mas peso, mas peticiones
recibe. worker.nodo1.lbfactor=1
worker.node2.ping_mode=A
# Definimos el nodo Nodo2
worker.nodo2.port=8109
worker.nodo2.host=172.24.48.73
worker.nodo2.type=ajp13
worker.nodo2.lbfactor=1
worker.node2.ping_mode=A
# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=nodo1,nodo2
worker.loadbalancer.sticky_session=0
# Status worker for managing load balancer
worker.status.type=status
10. Configuración JBoss
Asignar la variable de entorno
JAVA_HOME y ponerla en el PATH.
En la ruta
<JBOSS_HOME>/server/all/conf editar
el archivo jboss-service.xml
descomentando el siguiente fragmento<mbean
code="org.jboss.services.binding.ServiceBindingManager"
name="jboss.system:service=ServiceBindingManager">
<attribute name="ServerName">ports-01</attribute>
<attribute
name="StoreURL">${jboss.home.url}/docs/examples/binding-
manager/sample-bindings.xml</attribute>
<attribute name="StoreFactoryClassName">
org.jboss.services.binding.XMLServicesStoreFactory
</attribute>
</mbean>
11. Configuración JBoss
En la ruta
<JBOSS_HOME>/server/all/deploy
editar el archivo cluster-service.xml y
modificar el puerto en la línea:
Arrancar el servidor con el siguiente
comando desde la ruta
<JBOSS_HOME>/bin:
<attribute name="ServerBindPort">4446</attribute>
./run.sh -c server1 -Djboss.partition.name=part1
12. Configuración JBoss
Con –Djboss.partition.name=part1 se
asigna el nombre de partición en la
cual se alojará la instancia del AS
Para desplegar una aplicación se
debe colocar el WAR o EAR en la ruta
<JBOSS_HOME>/server/all/farm
Para apagar una instancia del JBoss
./run.sh -c server2 -Djboss.particion.name=part1
13. Configuración JBoss
Para apagar una instancia del cluster
del JBoss se debe ejecutar el
siguiente comando:
. /shutdown.sh -s jnp://localhost:1099 -S