Capítulo 6. Agrupamiento
- Repositorio GIT: el repositorio VFS (virtual-file-system) que guarda los bienes empresariales para que todos los nodos de clúster usen el mismo repositorio.
- Servidor de ejecución y aplicaciones Web: el servidor de tiempo de ejecución que reside en el contenedor (como por ejemplo, Red Hat JBoss EAP) junto con las aplicaciones web BRMS y BPM Suite para que los nodos compartan los mismos datos de tiempo de ejecución.Para obtener instrucciones sobre cómo agrupar la aplicación, consulte la documentación de agrupamiento de contenedores.
- Base de datos en segundo plano: la base de datos con los datos de estado, tales como, instancias de procesos, sesiones KIE, registro de historial, etc., para propósitos de conmutación.
Figura 6.1. Esquema del sistema Red Hat JBoss BPM Suite con componentes de sistemas individuales.
Mecanismo de agrupamiento del repositorio Git
- Apache Zookeeper reúne todas las partes.
- Apache Helix es el componente de administración de clústeres que registra toda la información de clústeres (el clúster, los nodos y los recursos).
- uberfire framework proporciona la estructura de las aplicaciones web
Figura 6.2. Esquema de agrupamiento con Helix y Zookeeper
- Configurar el clúster mediante Zookeeper y Helix
- Instalación de la base de datos de segundo plano con configuración y tablas Quartz
- Configuración de agrupamiento en su contenedor (esta documentación proporciona únicamente las instrucciones de agrupamiento para Red Hat JBoss EAP 6)
Repositorios de agrupamiento Maven
rsync
.
6.1. Configuración de un clúster Copiar enlaceEnlace copiado en el portapapeles!
- Descargue
jboss-bpmsuite-brms-VERSIÓN-supplementary-tools.zip
, la cual contiene scripts de Apache Zookeeper, Apache Helix y quartz DDL. Después de descargar, descomprima el archivo: se crearán el directorioZookeeper
($ZOOKEEPER_HOME
) y el directorioHelix
($HELIX_HOME
). - Ahora configure Zookeeper:
- En el directorio Zookeeper, vaya al directorio
conf
y haga lo siguiente:cp zoo_sample.cfg zoo.cfg
cp zoo_sample.cfg zoo.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Abra
zoo.cfg
para modificar y ajustar los parámetros incluidos los siguientes:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Asegúrese de que el sitio dataDir exista y sea accesible. - Asigne un ID de nodo a cada miembro que ejecutará ZooKeeper. Por ejemplo, use "1", "2" y "3" respectivamente para nodo 1, nodo 2 y nodo 3, respectivamente. ZooKeeper debería tener un número de instancias impar, y por lo menos 3 para recuperarse del fallo.El ID de nodo es especificado en el campo
myid
en el directorio de datos de ZooKeeper en cada nodo. Por ejemplo, en nodo 1, ejecute:$ echo "1" > /zookeeper/data/myid
- Configure Zookeeper, para que pueda usarlo durante la creación del clúster con Helix:
- Vaya al directorio
$ZOOKEEPER_HOME/bin/
e inicie ZooKeeper:./zkServer.sh start
./zkServer.sh start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Puede revisar el registro de Zookeeper en el archivo$ZOOKEEPER_HOME/bin/zookeeper.out
. Revise este registro para verificar si el 'ensemble' (clúster) se ha formado correctamente. Uno de los nodos debe ser elegido como líder con los otros dos nodos que los siguen.
- Después de iniciar el clúster de Zookeeper, configure e inicie Helix. Helix solamente necesita ser configurado una vez y desde un solo nodo. Luego Zookeeper almacenará y compartirá la configuración como corresponde.Establezca el clúster con el servidor Zookeeper como el maestro de la configuración:
- Cree el clúster al proporcionar el host y el puerto de Zookeper como una lista separada por comas:
$HELIX_HOME/bin/helix-admin.sh --zkSvr ZOOKEEPER_HOST:ZOOKEEPER_PORT --addCluster CLUSTER_NAME
$HELIX_HOME/bin/helix-admin.sh --zkSvr ZOOKEEPER_HOST:ZOOKEEPER_PORT --addCluster CLUSTER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Agregue sus nodos al clúster:
$HELIX_HOME/bin/helix-admin.sh --zkSvr ZOOKEEPER_HOST:ZOOKEEPER_PORT --addNode CLUSTER_NAME NODE_NAMEUNIQUE_ID
$HELIX_HOME/bin/helix-admin.sh --zkSvr ZOOKEEPER_HOST:ZOOKEEPER_PORT --addNode CLUSTER_NAME NODE_NAMEUNIQUE_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ejemplo 6.1. Adición de los tres nodos de clúster
./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addNode bpms-cluster nodeOne:12345 ./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addNode bpms-cluster nodeTwo:12346 ./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addNode bpms-cluster nodeThree:12347
./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addNode bpms-cluster nodeOne:12345 ./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addNode bpms-cluster nodeTwo:12346 ./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addNode bpms-cluster nodeThree:12347
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Agregar recursos al clúster.
Ejemplo 6.2. Agregar vfs-repo como recurso
./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addResource bpms-cluster vfs-repo 1 LeaderStandby AUTO_REBALANCE
./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --addResource bpms-cluster vfs-repo 1 LeaderStandby AUTO_REBALANCE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Reequilibrar el clúster con tres nodos.
Ejemplo 6.3. Reequilibrar bpms-cluster
./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --rebalance bpms-cluster vfs-repo 3
./helix-admin.sh --zkSvr server1:2181,server2:2181,server3:2181 --rebalance bpms-cluster vfs-repo 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow En el comando anterior,3
significa para tres nodos zookeeper - Inicie el controlador Helix en todos los nodos en el clúster.
Ejemplo 6.4. Inicie el controlador Helix
./run-helix-controller.sh --zkSvr server1:2181,server2:2181,server3:2181 --cluster bpms-cluster 2>&1 > /tmp/controller.log &
./run-helix-controller.sh --zkSvr server1:2181,server2:2181,server3:2181 --cluster bpms-cluster 2>&1 > /tmp/controller.log &
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Nota
Detención de Helix y Zookeeper
Procedimiento 6.1. Detención de Helix y Zookeeper
- Detenga los procesos de servidor JBoss EAP
- Detenga el proceso Helix que ha sido creado por
run-helix-controller.sh
, por ejemplo,kill -15 <pid of HelixControllerMain>
. - Detenga el servidor ZooKeeper mediante el comando
zkServer.sh stop
.