Pregunta

soluciones de middleware de mensajería (JMS, Tibco, etc.) permiten la publicación / suscripción con "tema" filtrado utilizando comodines para suscribirse a todos los mensajes de un "tema" determinada, por ejemplo, SUSCRIPCIÓN ( "CUENTA. *") Tema le permite suscribirse a ambos mensaje "ACCOUNT.WITHDRAW" y el mensaje "ACCOUNT.CHECKBALANCE".

El problema es que dicha suscripción también recibe mis propios mensajes publicados.

Busco un mecanismo, similar a, por ejemplo, de retorno de multidifusión UDP que puede ser activado o desactivado por la capa de transporte sin jugar con los datos que se envían.

¿Hay una declarativa (sin código personalizado, configuración única) forma común, para configurar el middleware no recibir mensajes que ha publicado esa misma instancia de servicio? Idealmente, esto también debe ser capaz de filtrar todo lo publicado por todos los servidores (nodos) de la misma "especie".

Gracias de antemano.

¿Fue útil?

Solución

Nadie responde, así que voy a interrumpiría (de una manera Ondulado a mano).

Creo que no hay nada en el JMS spec alrededor de controlar si se obtiene su propia mensajes enviados de vuelta en un receptor tema. Por lo que cualquier capacidad como esto sería una característica proveedor no portátil. Especialmente para el segundo requisito (basado en "especie" de cliente JMS frente a algún tipo de control sobre la base de la misma conexión de hacer el envío / recepción).

Si usted no tiene ninguna flexibilidad para modificar el código o mensaje de contenido (propiedades), creo que tienes no hay soluciones portátiles. Y es probable que ninguna solución para ese segundo requisito de la "clase".

Si desea investigar opciones específicas del proveedor, que necesitará para decirnos qué proveedor que le interesa. Es posible que no reciben nada, pero no hay manera de saber sin preguntar.

Otros consejos

El API JMS contiene esta opción para TopicSubscribers, por ejemplo TIBCO EMS te permite crear un consumidor con la propiedad "noLocal". Eso significa que no hay mensajes publicados sobre la misma conexión, conseguir consumido por los clientes en la misma conexión.

por ejemplo. echar un vistazo aquí cómo crear un suscriptor tema con la opción "noLocal": https://docs.tibco.com/pub/enterprise_message_service/7.0.1-march-2013/doc/html/tib_ems_api_reference/api/javadoc/javax/jms/TopicSession.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top