Capítulo 6. Agrupamiento


Al agrupar Red Hat JBoss BPM Suite, considere cuáles componentes deben ser agrupados. Puede agrupar los siguientes:
  • 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

Para agrupar el repositorio Git se utiliza lo siguiente:
  • 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).
El entorno de tiempo de ejecución, es decir el servidor de ejecución, utiliza lo siguiente para proporcionar las funcionalidades de agrupamiento:
  • uberfire framework proporciona la estructura de las aplicaciones web

Figura 6.2. Esquema de agrupamiento con Helix y Zookeeper

Una configuración típica implica lo siguiente:
  • 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

Varias operaciones dentro de Business Central publican los JAR al repositorio Maven interno de Business Central.
Este repositorio existe en el sistema de archivos del servidor de aplicaciones como archivos regulares y no tiene en cuenta al clúster. Esta carpeta no se sincroniza a través de varios nodos en el clúster, debe sincronizarse mediante herramientas externas tales como rsync.
Otra forma de usar una herramienta de sincronización externa es establecer la propiedad del sistema org.guvnor.m2repo.dir en cada nodo de clúster para señalar un SAN o NAS. En este caso, no se necesita el agrupamiento de la carpeta del repositorio Maven.

6.1. Agrupamiento en JBoss EAP

Para instalar JBoss BPM Suite en modo de clúster, le recomendamos utilizar el instalador JAR, el cual proporciona una configuración de muestra lista para ser utilizada. También puede configurar el agrupamiento con ZIP implementable para EAP.

6.1.1. Agrupamiento mediante el instalador JAR

Nota

El instalador JAR es tan solo una muestra de configuración, es necesario ajustar la configuración para que corresponda a las necesidades de su proyecto.
Al usar el instalador JAR descrito en Sección 2.1, “Instalación de Red Hat JBoss BPM Suite Installer”, puede establecer una configuración de agrupamiento básica de JBoss BPM Suite.
La configuración automática crea tres instancias ZooKeeper, un clúster Helix que utiliza estas instancias y dos almacenes de datos Quartz (uno administrado y otro no administrado). Esta configuración JBoss BPM Suite consta de dos nodos EAP que comparten un repositorio Maven, utilizan Quartz para coordinar tareas cronometradas y tienen business-central.war, dashbuilder.war y kie-server.warimplementados. Para personalizar la configuración para que se ajuste a su caso o para usar agrupamiento con el ZIP implementable, vea Sección 6.1.2, “Configuración personalizada (ZIP implementable)”. Para obtener más información, consulte la documentación JBoss EAP.
Siga el proceso de instalación descrito en Sección 2.1.1, “Instalación de Red de Red Hat JBoss BPM Suite, mediante el instalador.” y seleccione Instalar una configuración en clúster en Configuración avanzada de tiempo de ejecución. Después de hacer clic en Siguiente, será guiado a través de los siguientes pasos:

Nota

Los pasos a continuación describen la instalación de la interfaz de usuario gráfica o GUI. Los pasos para la instalación de la consola son análogos.
  1. Seleccionar el proveedor JDBC

    En esta pantalla, seleccione el proveedor JDBC de la lista. Deberá proporcionar el o los controladores JAR correspondientes en una de las siguientes formas:
    • Seleccione uno o más archivos en el sistema de archivos
    • Proporcione una o más URL. El instalador descarga los archivos de forma automática.
    Luego, el instalador copia los JAR en el sitio apropiado del directorio $EAP_HOME/modules, donde también será creado automáticamente el archivo module.xml correspondiente.

    Figura 6.3. Configuración del controlador JDBC

  2. Configurar la conexión Quartz

    En la siguiente pantalla, proporcione los datos a la base de datos para Quartz. El instalador creará automáticamente el archivo de definición Quartz ($EAP_HOME/domain/configuration/quartz-definition.properties) y dos fuentes de datos Quartz en el archivo de configuración de dominio $EAP_HOME/domain/domain.xml. Puede modificar los archivos después de haber terminado la instalación.

    Nota

    Durante la instalación, los scripts DDL Quartz se ejecutarán en la base de datos seleccionada en este paso. Estos scripts hacen los cambios necesarios para que Quartz funcione (por ejemplo: agregando tablas), y se pueden encontrar en $EAP_HOME/jboss-brms-bpmsuite-6.2-supplementary-tools/ddl-scripts como referencia (No necesita modificarlos de ninguna forma).

    Figura 6.4. Instalación de la base de datos Quartz

  3. Hacer clic en Siguiente para iniciar la instalación.

    Importante

    Cuando utilice el instalador JAR, los archivadores war se crean de forma automática desde las aplicaciones que residen en $EAP_HOME/standalone/deployments/. Es decir, que se requiere menos espacio adicional, ya que las aplicaciones existen en estado comprimido y descomprimido en el almacenamiento durante la instalación.
    Tres instancias ZooKeeper se crean automáticamente en $EAP_HOME/jboss-brms-bpmsuite-6.2-supplementary-tools/ (nombres de directorio: zookeeper-one, zookeeper-two y zookeeper-three).
    En el directorio $EAP_HOME/jboss-brms-bpmsuite-6.2-supplementary-tools/helix-core, encontrará la configuración predeterminada de Helix y los scripts para lanzar el clúster—startCluster.sh para UNIX y startCluster.bat Windows.
    Cuando la instalación termine, NO elija ejecutar inmediatamente. Primero necesita iniciar el clúster desplazándose al directorio $EAP_HOME/jboss-brms-bpmsuite-6.2-supplementary-tools/helix-core y ejecutando el script mencionado anteriormente:
    En sistemas UNIX:
    ./startCluster.sh
    Copy to Clipboard Toggle word wrap
    En Windows:
    ./startCluster.bat
    Copy to Clipboard Toggle word wrap
    El script lanza el clúster Helix y las instancias de Zookeeper. Únicamente después de ello, inicie el servidor EAP en modo de dominio desplazándose al directorio $EAP_HOME/bin y ejecutando:
    En sistemas UNIX:
    ./domain.sh
    Copy to Clipboard Toggle word wrap
    En Windows:
    ./domain.bat
    Copy to Clipboard Toggle word wrap
Ahora ya cuenta con un clúster JBoss BPM Suite.

6.1.2. Configuración personalizada (ZIP implementable)

Al utilizar agrupamiento de JBoss EAP , un controlador de dominio JBoss EAP existe con otros esclavos JBoss EAP se conectan como usuarios administrativos. La implementación de Business Central y dashbuilder puede hacerse como un usuario administrativo en controlador de dominio, y las implementaciones WAR se distribuirán a otros miembros del clúster JBoss EAP.
Para configurar agrupamiento en Red Hat JBoss EAP 6, siga el siguiente procedimiento:
  1. Configure ZooKeeper y Helix según Sección 6.2.1, “Configuración de un clúster”.
  2. Configurar Quartz de acuerdo con Sección 6.2.2, “Configuración de Quartz”.
  3. Instale su controlador JDBC como un módulo de núcleo: copie el JAR de controlador a $EAP_HOME/modules/system/layers/base/ y cree un archivo module.xml en el directorio.
  4. Modifique el archivo module.xml como el módulo XSD respectivo.

    Ejemplo 6.1. El contenido del archivo module.xml para fuente de datos PostgreSQL

    <module xmlns="urn:jboss:module:1.0" name="org.postgresql">
    	  <resources>
    		<resource-root path="postgresql-jdbc.jar"/>
    	  </resources>
    
    	  <dependencies>
    		<module name="javax.api"/>
    		<module name="javax.transaction.api"/>
    	  </dependencies>
    	</module>
    
    Copy to Clipboard Toggle word wrap
  5. Configure la fuente de datos para el servidor: abra el archivo host.xml o el archivo standalone.xml, según el PERFIL ubicado en $EAP_HOME/PERFIL/, ubique el perfil full y siga el siguiente procedimiento:
    1. Agregue la definición de la fuente de datos principal utilizada por JBoss BPM Suite.

      Ejemplo 6.2. La fuente de datos PostgreSQL definida como la fuente de datos principal de JBoss BPM Suite

      <datasource jndi-name="java:jboss/datasources/psbpmsDS" 
      					pool-name="postgresDS" enabled="true" use-java-context="true">
      	  <connection-url>jdbc:postgresql://localhost:5432/jbpm</connection-url>
      	  <driver>postgres</driver>
      	  <security>
      		<user-name>bpms</user-name>
      		<password>bpms</password>
      		</security>
      	</datasource>
      Copy to Clipboard Toggle word wrap
    2. Agregue la definición de la fuente de datos para el servicio Quartz.

      Ejemplo 6.3. La fuente de datos PostgreSQL se define como la fuente de datos Quartz

      <datasource jta="false" jndi-name="java:jboss/datasources/quartzNotManagedDS"   
      			   pool-name="quartzNotManagedDS" enabled="true" use-java-context="true">
      		<connection-url>jdbc:postgresql://localhost:5432/jbpm</connection-url>
      	  <driver>postgres</driver>
      	  <security>
      		<user-name>bpms</user-name>
      		<password>bpms</password>
      	  </security>
      	</datasource>
      Copy to Clipboard Toggle word wrap
    3. Defina el controlador de fuentes de datos .

      Ejemplo 6.4. Definición del controlador PostgreSQL

       <driver name="postgres" module="org.postgresql">
      	  <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
      	</driver>
      Copy to Clipboard Toggle word wrap
  6. Configure los nodos de servidor individuales en el elemento main-server-group en el archivo $EAP_HOME/domain/configuration/host.xml con propiedades definidas en Tabla 6.1, “Propiedades de nodos de cĺúster”:
    Observe que al configurar un clúster de JBoss EAP con Zookeeper, puede tener un conteo de nodos JBoss EAP diferente al de Zookeeper (tenga en cuenta que debe ser un número de nodos impar). Sin embargo, el tener el mismo conteo de nodos tanto para Zookeeper como JBoss EAP se considera una práctica más efectiva.
    Expand
    Tabla 6.1. Propiedades de nodos de cĺúster
    Nombre de propiedadValorDescripción
    jboss.node.namenodeOne
    único nombre de nodo dentro de un clúster
    org.quartz.properties/bpms/quartz-definition.properties
    ruta absoluta al archivo de configuración Quartz
    org.uberfire.cluster.autostarttrue
    Este valor retarda el agrupamiento VFS hasta que la aplicación esté totalmente inicializada para evitar conflictos cuando todos los miembros de clúster crean clones locales.
    org.uberfire.cluster.idbpms-cluster
    Nombre de clúster Helix
    org.uberfire.cluster.local.idnodeOne_12345
    ID único del nodo de clúster Helix
    Observe que : se remplaza por _.
    org.uberfire.cluster.vfs.lockvfs-repo
    nombre del recurso definido en el clúster Helix
    org.uberfire.cluster.zkserver1:2181
    Zookeeper location
    org.uberfire.metadata.index.dir/home/jbpm/node[N]/index
    sitio donde el índice de búsqueda debe ser creado (mantenido por Apache Lucene)
    org.uberfire.nio.git.daemon.hostnodeOneel nombre de la máquina de host de demonio en el clúster físico
    org.uberfire.nio.git.daemon.port9418
    puerto utilizado por el repositorio VFS para aceptar conexiones de clientes
    El puerto debe ser único para cada miembro de clúster.
    org.uberfire.nio.git.dir/home/jbpm/node[N]/repo
    Ubicación del repositorio Git (VFS) en node[N]
    org.uberfire.nio.git.ssh.hostnodeOneel nombre de la máquina de host SSH en el cĺúster físico
    org.uberfire.nio.git.ssh.port8003el único puerto de número de acceso ssh para el repositorio Git para ejecutar un clúster en máquinas físicas
    org.uberfire.nio.git.ssh.hostport and org.uberfire.nio.git.daemon.hostport8003 and 9418En un entorno virtualizado, el puerto externo a ser utilizado

    Ejemplo 6.5. Configuración de clúster nodeONe

    <system-properties>
    					
    	  <property name="org.uberfire.nio.git.dir" value="/tmp/bpms/nodeone" boot-time="false"/>
    	  <property name="jboss.node.name" value="nodeOne" boot-time="false"/>
    	  
    	  <property name="org.uberfire.cluster.id" value="bpms-cluster" boot-time="false"/>
    	  <property name="org.uberfire.cluster.zk" value="server1:2181,server2:2181,server3:2181" boot-time="false"/>
    	  <property name="org.uberfire.cluster.local.id" value="nodeOne_12345" boot-time="false"/>
    	  <property name="org.uberfire.cluster.vfs.lock" value="vfs-repo" boot-time="false"/>
    	  <property name="org.uberfire.cluster.autostart" value="true" boot-time="true"/>
    	  
    	  <property name="org.uberfire.nio.git.daemon.host" value="nodeOne" />
    	  <property name="org.uberfire.nio.git.daemon.port" value="9418" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.daemon.hostport" value="9418" boot-time="false"/>
    	  
    	  <property name="org.uberfire.nio.git.ssh.port" value="8003" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.hostport" value="8003" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.host" value="nodeOne" />
    	  
    	  <property name="org.uberfire.metadata.index.dir" value="/tmp/jbpm/nodeone" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.cert.dir" value="/tmp/jbpm/nodeone" boot-time="false"/>
    	  
    	  <property name="org.quartz.properties" value="/tmp/jbpm/quartz/quartz-db-postgres.properties" boot-time="false"/>
    	  
    	</system-properties>
    Copy to Clipboard Toggle word wrap

    Ejemplo 6.6. Configuración de clúster nodeTwo

    <system-properties>
    					
    	  <property name="org.uberfire.nio.git.dir" value="/tmp/bpms/nodetwo" boot-time="false"/>
    	  <property name="jboss.node.name" value="nodeTwo" boot-time="false"/>
    	  
    	  <property name="org.uberfire.cluster.id" value="bpms-cluster" boot-time="false"/>
    	  <property name="org.uberfire.cluster.zk" value="server1:2181,server2:2181,server3:2181" boot-time="false"/>
    	  <property name="org.uberfire.cluster.local.id" value="nodeTwo_12346" boot-time="false"/>
    	  <property name="org.uberfire.cluster.vfs.lock" value="vfs-repo" boot-time="false"/>
    	  <property name="org.uberfire.cluster.autostart" value="true" boot-time="true"/>
    	  
    	  <property name="org.uberfire.nio.git.daemon.host" value="nodeTwo" />
    	  <property name="org.uberfire.nio.git.daemon.port" value="9418" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.daemon.hostport" value="9418" boot-time="false"/>
    	  
    	  <property name="org.uberfire.nio.git.ssh.port" value="8003" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.hostport" value="8003" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.host" value="nodeTwo" />
    	  
    	  <property name="org.uberfire.metadata.index.dir" value="/tmp/jbpm/nodetwo" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.cert.dir" value="/tmp/jbpm/nodetwo" boot-time="false"/>
    	  
    	  <property name="org.quartz.properties" value="/tmp/jbpm/quartz/quartz-db-postgres.properties" boot-time="false"/>				
    
    
    	</system-properties>
    Copy to Clipboard Toggle word wrap

    Ejemplo 6.7. Configuración de clúster nodeThree

    <system-properties>
    					
    	  <property name="org.uberfire.nio.git.dir" value="/tmp/bpms/nodethree" boot-time="false"/>
    	  <property name="jboss.node.name" value="nodeThree" boot-time="false"/>
    	  
    	  <property name="org.uberfire.cluster.id" value="bpms-cluster" boot-time="false"/>
    	  <property name="org.uberfire.cluster.zk" value="server1:2181,server2:2181,server3:2181" boot-time="false"/>
    	  <property name="org.uberfire.cluster.local.id" value="nodeThree_12347" boot-time="false"/>
    	  <property name="org.uberfire.cluster.vfs.lock" value="vfs-repo" boot-time="false"/>
    	  <property name="org.uberfire.cluster.autostart" value="true" boot-time="true"/>
    	  
    	  <property name="org.uberfire.nio.git.daemon.host" value="nodeThree" />
    	  <property name="org.uberfire.nio.git.daemon.port" value="9418" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.daemon.hostport" value="9418" boot-time="false"/>
    	  
    	  <property name="org.uberfire.nio.git.ssh.port" value="8003" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.hostport" value="8003" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.host" value="nodeThree" />
    	  
    	  <property name="org.uberfire.metadata.index.dir" value="/tmp/jbpm/nodethree" boot-time="false"/>
    	  <property name="org.uberfire.nio.git.ssh.cert.dir" value="/tmp/jbpm/nodethree" boot-time="false"/>
    	  
    	  <property name="org.quartz.properties" value="/tmp/jbpm/quartz/quartz-db-postgres.properties" boot-time="false"/>				
    
    
    	</system-properties>
    Copy to Clipboard Toggle word wrap
  7. Agregue usuarios como se explica en la Guía de configuración y administración para Red Hat JBoss EAP y los usuarios de aplicaciones como se explica en la Guía de administración y configuración Red Hat JBoss BPM Suite .
  8. Desplácese al directorio $EAP_HOME/bin e inicie el servidor de aplicaciones en modo de dominio:
    En sistemas UNIX:
    ./domain.sh
    Copy to Clipboard Toggle word wrap
    En Windows:
    ./domain.bat
    Copy to Clipboard Toggle word wrap
  9. Verifique si los nodos están disponibles
Implemente la aplicación Business Central para sus servidores
  1. Cambie la persistencia predefinida de la aplicación a la base de datos requerida (PostgreSQL): en persistence.xml, aplique los siguientes cambios:
    1. el nombre de la fuente jta-data-source para la fuente definida en el servidor de aplicaciones (java:jboss/datasources/psbpmsDS)
    2. hibernate dialect para que coincida el dialecto de fuente de datos (org.hibernate.dialect.PostgreSQLDialect)
  2. Ingrese como usuario administrativo a la consola de administración de servidor de su dominio y agregue las nuevas implementaciones a través de la vista Runtime de la consola. Una vez la implementación es agregada al dominio, asígnela al grupo de servidor correcto (main-server-group).

Nota

Es importante que los usuarios verifiquen la unidad de implementación con cada miembro de clúster
Cuando se crea una unidad de implementación en el nodo de clúster, se tarda un tiempo antes de que sea distribuida entre todos los miembros de clúster. El estatus de implementación puede verificarse a través de la UI y REST, sin embargo, si la solicitud va al nodo donde la implementación fue emitida originalmente, la respuesta es deployed. Cualquier solicitud que se destine a esta unidad de implementación enviada a un miembro de clúster diferente falla con DeploymentNotFoundException.
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2026 Red Hat
Volver arriba