Carga de trabajo compartida con destinos de colas

Si añade un clúster de servidores a un bus de integración de servicios y despliega uno o más motores de mensajería en el clúster, puede configurar el miembro de bus del clúster para la escalabilidad. Los motores de mensajería del miembro de bus de clúster comparten la carga de trabajo de mensajería asociada con destinos de cola desplegados en el clúster.

Consulte Configuraciones de integración de servicios con carga de trabajo y alta disponibilidad compartidas para obtener más información acerca de cómo configurar motores de mensajería para compartir la carga de trabajo.

Cuando despliega un destino de cola en un clúster, la cola se particiona automáticamente a través del conjunto de motores de mensajería asociados al clúster.
  • Si solamente hay un motor de mensajería en el clúster, el destino se localiza mediante dicho motor de mensajería. El destino no se particiona.
  • Si hay más de un motor de mensajería en el clúster, el destino se particiona entre todos los motores de mensajería del clúster. Cada motor de mensajería gestiona un subconjunto de los mensajes que maneja el destino.
Las características de disponibilidad de una partición son las mismas que las del motor de mensajería mediante el cual se localiza.
Nota: Si una aplicación generadora o consumidora utiliza un destino de alias que se ha configurado en un subconjunto de puntos de cola, el siguiente comportamiento se aplica al subconjunto de puntos de cola y no a todo el conjunto de puntos de cola del destino de cola señalado.

Envío de mensajes a un destino de cola particionado

Normalmente, se crea un miembro de bus de clúster escalable y se particiona un destino de cola si un único servidor no puede dar soporte a la carga de proceso de mensajes para la cola. Para utilizarse de manera efectiva, una cola particionada necesita varios consumidores con al menos un consumidor que consuma desde cada partición. Un uso común es un clúster de beans controlados por mensajes, los beans MDB. Para obtener detalles sobre cómo un MDB consume desde un destino en clúster, consulte Cómo se conecta un bean controlado por mensajes en un clúster.

El comportamiento predeterminado del sistema de mensajería si la aplicación generadora está conectada a un motor de mensajería de un miembro de bus del clúster que aloja el destino de cola.

De forma predeterminada, la aplicación generadora prefiere enviar todos sus mensajes al punto de cola local. Este comportamiento maximiza el rendimiento de la entrega de mensajes ya que reduce la distancia que tiene que recorrer el mensaje hasta el punto de cola.

Figura 1. Comportamiento predeterminado: los mensajes se envían al punto de cola local
Esta figura describe cómo los mensajes se envían al punto de cola local.
Si el punto de cola local no está disponible, los mensajes se procesan como si no existiera ningún punto de cola local. Un punto de cola no está disponible para los mensajes nuevos si:
  • El motor de mensajería que es propietario del punto de cola no está disponible (por ejemplo, el motor de mensajería se ha detenido).
  • El punto de cola alcanza su umbral alto de mensajes.
  • El punto de cola ha tenido la capacidad de enviarle mensajes inhabilitado.
El comportamiento predeterminado del sistema de mensajería si la aplicación generadora está conectada a un motor de mensajería de un miembro de bus que no aloja el destino de cola.

De forma predeterminada, la carga de trabajo del sistema de mensajería equilibra los mensajes entre los puntos de cola disponibles.

En esta figura, una aplicación generadora está conectada a un motor de mensajería de un miembro de bus que no aloja el destino de cola, con la carga de trabajo de los mensajes equilibrada entre los puntos de cola disponibles.

Figura 2. Comportamiento predeterminado: la carga de trabajo de los mensajes se equilibra entre todos los puntos de cola
Esta figura describe cómo se equilibra la carga de trabajo de los mensajes entre todos los puntos de cola.
Comportamiento configurable cuando la aplicación generadora está conectada a un motor de mensajería de un miembro de bus que aloja el destino de cola

Si desea que la carga de trabajo de todos los mensajes de la aplicación generadora esté equilibrada entre todos los puntos de cola de un destino de cola, incluso cuando estén conectados a un motor de mensajería con un punto de cola, considere la posibilidad de inhabilitar la opción de configuración predeterminada Preferir punto de cola local en el generador de mensajes. Esta opción está disponible para los productores de mensajes JMS y para los mensajes entrantes procedentes de conexiones de bus foráneo que utilizan WebSphere Application Server Versión 7.0 o posterior.

En esta figura, una aplicación generadora está conectada a un motor de mensajería de un miembro de bus que aloja el destino de cola. La aplicación productora tiene inhabilitada la opción "Preferir punto de cola local". La carga de trabajo de sus mensajes se equilibra entre todos los puntos de cola.

Figura 3. Inhabilitar Preferir punto de cola local: la carga de trabajo de los mensajes se equilibra entre todos los puntos de cola
Esta figura describe cómo se equilibra la carga de trabajo de los mensajes entre todos los puntos de cola cuando la opción Preferir punto de cola local está inhabilitada.
No obstante, si varias conexiones de las aplicaciones generadoras también tienen la carga de trabajo equilibrada entre todos los motores de mensajería del miembro de bus, considere la posibilidad de retener el comportamiento predeterminado Preferir punto de cola local por motivos de rendimiento. Esto se debe al comportamiento predeterminado:
  • La carga de trabajo equilibra los mensajes de todas las aplicaciones generadoras entre todos los puntos de cola.
  • Minimiza la necesidad de enviar mensajes desde el motor de mensajería conectado a otro motor de mensajería del mismo miembro de bus del clúster.
Comportamiento configurable cuando la aplicación generadora está conectada a un motor de mensajería de un miembro de bus del clúster que no aloja el destino de cola

Si desea enviar todos los mensajes generados durante una única sesión de una aplicación generadora al mismo punto de cola, puede configurar la Afinidad de mensajes. La carga de trabajo de los mensajes no se equilibra entre varios puntos de cola.

Considere la posibilidad de configurar la Afinidad de mensajes para una aplicación si desea enviar conjuntos de mensajes al mismo punto de cola para que una única instancia de un consumidor los procese en orden. El sistema selecciona el punto de cola individual al que se envían todos los mensajes, en función de la opción de configuración Preferir punto de cola local para dicha aplicación productora. Esta opción está disponible para los productores de mensajes JMS y para los mensajes entrantes procedentes de conexiones de bus foráneo que utilizan WebSphere Application Server Versión 7.0 o posterior.

En esta figura, una aplicación generadora se conecta a un motor de mensajería de un miembro de bus que no aloja el destino de cola. La aplicación generadora tiene la afinidad de mensajes configurada. Todos los mensajes se envían a un punto de cola.

Figura 4. Afinidad de mensajes: todos los mensajes generados se envían al mismo punto de cola
Esta figura describe cómo los mensajes generados se envían al mismo punto de cola.

Si el punto de cola seleccionado deja de estar disponible, los mensajes adicionales enviados desde esta aplicación se ponen en la cola en tránsito al punto de cola seleccionado o bien se rechaza la operación de envío. Este comportamiento corresponde al envío de mensajes a una destino de cola con un único punto de cola.

Consumo de mensajes desde un destino de cola particionado

Cuando se crea una sesión de consumidor, el consumido se enlaza a una partición del destino. Si el consumidor se conecta a un motor de mensajería que tiene una partición local del destino, el consumidor se enlaza a dicha partición. Si el consumidor se conecta a un motor de mensajería que no tiene una partición del destino, el consumidor se enlaza a una partición de otro motor de mensajería seleccionado dinámicamente por el gestor de carga de trabajo. Una vez enlazado, un consumidor recibe mensajes solamente de la partición enlazada. De forma predeterminada, si la partición a la que está enlazado un consumidor no tiene ningún mensaje, el consumidor no recibe mensajes de las particiones alternativas incluso si dichas particiones contienen mensajes.

Si configura un destino particionado de un clúster que no tiene consumidores locales, es importante tener al menos un consumidor para cada partición del destino para garantizar que se consumen todos los mensajes. Para conseguirlo, seleccione consumidores individuales para que se conecten a motores de mensajería específicos que tienen un punto de cola. Los MDB son un tipo específico de consumidor de mensajes. Para obtener detalles sobre su comportamiento al consumir desde un destino particionado, consulte Cómo se conecta un bean controlado por mensajes en un clúster.

Si desea que un consumidor reciba mensajes de todos los puntos de cola disponibles de un destino, puede configurar el consumidor de mensajes.

Si existe un número elevado de mensajes pequeños y los MDB sólo realizan una pequeña cantidad de procesos, puede utilizar los motores de mensajería de equilibrio de carga con las colas particionadas, como se describe en este tema. No obstante, si los MDB realizan una mayor cantidad de procesos de un número inferior de mensajes, es posible que sólo necesite un motor de mensajería, pero necesita desplegar los MDB en tantos servidores como sea posible, tanto si estos servidores tienen motores de mensajería como si no, e incluso si dichos servidores no son miembros de la misma célula. Una situación típica es cuando los MDB actualizan una base de datos de usuario. Para obtener información detallada acerca de cómo configurar el despliegue de los MDB entre varios servidores, consulte la sección Configuración del soporte del regulador de MDB para el proveedor de mensajería predeterminado.

El comportamiento predeterminado del sistema de mensajería cuando un consumidor consume desde un destino particionado

Cuando crea una sesión de la aplicación consumidora, la sesión se asocia con uno de los puntos de cola del destino de cola. Si el destino de cola tiene varios puntos de cola, el sistema elige uno. De forma predeterminada, el sistema de mensajería prefiere asociar el consumidor al punto de cola local del motor de mensajería conectado. Si no hay ningún punto de cola local disponible en el motor de mensajería conectado, el sistema elige otra cola utilizando el gestor de cargas de trabajo de WebSphere Application Server, que utiliza un algoritmo rotatorio ponderado.

El comportamiento predeterminado intenta maximizar el rendimiento del consumo de mensajes desde los puntos de cola, limitando los mensajes que están disponibles para el consumidor a aquellos que están en el punto de cola asociado al consumidor. El consumidor no puede consumir mensajes de otros puntos de cola, aunque su punto de cola asociado no tenga mensajes y otros puntos de cola tengan mensajes.

En esta figura, una aplicación consumidora está conectada a un motor de mensajería sin ningún punto de cola local. Sólo se consumen los mensajes del punto de cola asociado.

Figura 5. Comportamiento predeterminado: sólo se consumen los mensajes del punto de cola asociado
Esta figura describe cómo sólo se consumen los mensajes del punto de cola asociado.
Comportamiento configurable del sistema de mensajería cuando un consumidor consume desde un destino particionado

Puede configurar un consumidor de mensajes de modo que su punto de cola asociado recopile mensajes de todos los puntos de cola disponibles de un destino y los haga visibles al consumidor.

Considere la posibilidad de configurar la Recopilación de mensajes si desea que un consumidor trate una cola particionada como una cola que no está particionada. Sin embargo, la recopilación de mensajes de varios puntos de cola es significativamente más lenta que el consumo desde un único punto de cola. Por tanto, si es posible, vuelva a configurar el destino para que tenga un único punto de cola, o bien utilice un destino de alias para limitar los generadores y consumidores de mensajes a un único punto de cola. Si necesita la escalabilidad de varios puntos de cola y el rendimiento es importante, busque soluciones alternativas a la recopilación de mensajes.

En la modalidad de Recopilación de mensajes, es posible que el consumidor no vea los mensajes en el orden en que se mantienen en los puntos de cola. Por tanto, no se mantiene el orden de los mensajes.

Esta opción está disponible para productores de mensajes JMS y para mensajes de entrada desde conexiones de bus foráneo que utilizan WebSphere Application Server Versión 7.0 o posterior.

En esta figura, una aplicación consumidora se conecta a un motor de mensajería sin ningún punto de cola local. La aplicación consumidora tiene habilitada la recopilación de mensajes. El punto de cola asociado reúne mensajes de todos los puntos de cola disponibles de un destino y los pone a disposición del consumidor.

Figura 6. Recopilación de mensajes: los mensajes se consumen desde todos los puntos de cola
En esta figura se describe la aplicación consumidora con la recopilación de mensajes habilitada.

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjt0014_
File name: cjt0014_.html