Pregunta

Actualmente estamos utilizando IBM MQ a través de JMS, pero parecen estar empujando a través de varios mensajes de lo que puede manejar -. Curiosamente, el problema parece ser intermitente

Los mensajes son los precios y por lo tanto no necesita ser garantizado, sólo es necesario enviar rápidamente.

Como IBM tienen una Baja Latencia producto, lo pregunto si eso es tal vez la mejor solución -. pero no parecen tener un API de JMS, o al menos no fácilmente visible

Alguien sabe si hay una API de JMS en el producto de baja latencia, o si la API "único" que sí tiene es JMS-como ...

Como alternativa, los punteros para el ajuste de MQ también sería apreciada ...:)

¿Fue útil?

Solución

Sin duda, un producto de mensajería de baja latencia sería más adecuado a su problema, estoy trabajando en un proyecto en el que hacemos algo muy similar usando un producto de mensajería de baja latencia llamada de LBM 29West. No tiene una API de JMS y sospecho que la mayoría de los productos en el espacio de baja latencia no lo hará. Hay un gran número de características que no tienen sentido en combinación con estos tipos de productos (por ejemplo, la persistencia, selectores, etc.). Hemos encontrado que escribir nuestra propia API simple a través de la parte superior del producto de mensajería a ser bastante fácil y da uso de la flexibilidad de cambiar los productos más tarde y nos libera de parte de la masa y nivel de detalle de la API de JMS.

Otra opción a considerar sería JGroups .

29West han añadido soporte JMS a su línea de productos de mensajería.

Otros consejos

En cuanto a "punteros para el ajuste de MQ", en la SupportPacs página hay evaluaciones de desempeño por plataforma con recomendaciones específicas. Desplazarse hacia abajo a los SupportPacs nombrados MP * y buscar la versión y plataforma adecuada. Una variedad de escenarios se prueban con mensajes grandes y pequeñas, persistentes y no persistentes, variaciones sobre el número de getter y putters, etc.

Como ex desarrollador para el producto LLM puedo decir que lo hace o por lo menos lo hizo. Vea a continuación un extracto Tomé del centro de información públicamente disponible para la versión 2.6

Dicho esto, de lo que recuerdo todo el punto de MQ era entrega garantizada . Hay un tiempo y un lugar para esto, pero tiene un costo en términos de latencia y ancho de banda.

LLM tiene un propósito diferente fundamentalmente; se ha entrega confiable : es decir, si no puede entregar simplemente sabrá que no pudo entregar. Recuperabilidad de estos mensajes sólo está limitada por la cantidad que está dispuesto a guardar en caché o su recuperación desde el disco y por lo tanto el tiempo que están dispuestos a tolerar la espera de la recuperación mientras que soporta el proceso .. En su caso, es posible que no se preocupa de recuperar. Ya sea LLM es adecuado para usted o no, no se puede especular. Lo que puedo decir es que desde mi punto de vista como desarrollador pasado y más tarde como un cliente, me encontré con poca o ninguna semejanza entre los dos, y el rendimiento de LLM para este tipo de aplicación MQ sopló fuera del agua por completo. También nunca usó el lado java / jms mucho y estaba centrado en C / C ++ por lo que tomar esto con un grano de sal. Sólo sabía que lo hizo y dónde buscar en Google.

http://www-01.ibm.com/support/knowledgecenter/SSQPD3_2.6.0/com.ibm.wllm.doc/api/javadoc/messaging/com/ibm/ LLM / jms / package-summary.html

  

Paquete com.ibm.llm.jms Descripción

     

Implementar el proveedor de clases públicas específicas para el cliente LLM JMS.

     

La mayoría de las interfaces utilizadas en JMS se definen por la JMS común   interfaces. Sin embargo, la especificación JMS no incluye la   las clases y las interfaces necesarias para configurar el cliente JMS.

     

Consulte la documentación de la API de JMS para obtener información acerca de las clases JMS   y métodos.

     

Introducción

     

El cliente LLM JMS proporciona una interfaz Java Message Service (JMS) a   LLM. Mediante la interfaz de JMS a LLM permite una interfaz común con   otros proveedores de mensajería y aplicación de velocidades de desarrollo por parte   permitiendo a los desarrolladores usar interfaces que están familiarizados. Utilizando   la interfaz JMS funciona mejor para las aplicaciones que utilizan genérica   función de mensajería en la que los ajustes se pueden administrar de forma centralizada.   Esto incluye muchas aplicaciones cliente tradicionales. El cliente JMS LLM   no funciona tan bien en que la aplicación depende de LLM   funciones específicas o que requieren aplicación significativa   interacción con LLM. Si bien hay cierta latencia añadida mediante el uso de la   interfaz JMS, todavía proporciona muy baja latencia y alto rendimiento   mensajería.

     

El cliente LLM JMS soporta la mayoría función de cliente LLM, pero no lo hace   apoyar la función de servidor de funcionamiento dentro de un nivel de, o ser una carga   transmisor equilibrio.

     

LLM se basa en hacer productor directo a la mensajería consumidor. JMS es   normalmente implementado utilizando un servidor de mensajes y la función JMS que   requiere que el servidor de mensajes no está disponible cuando se utiliza el LLM JMS   cliente. Esto incluye todos los mensajes de punto a punto (colas), así una   la función de recuperar. El cliente LLM JMS está diseñado para funcionar en un JSE   medio ambiente y no soporta las extensiones de servidor de aplicaciones o XA   transacciones.

     

Como los implementos LLM JMS cliente JMS

     

El cliente LLM JMS implementa cada uno de los objetos JMS fundamentales con   una clase de implementación que no está expuesta externamente. los   subclases de estos objetos se implementan utilizando el mismo   clase de implementación. Esto significa que sólo hay dos administrarse   objetos, ConnectionFactory y Destino. Un LLM definido   ConnectionFactory se puede convertir a TopicConnectionFactory y   QueueConnectionFactory, y un LLM definido Destino se puede convertir a   Tema y cola. Lo mismo es cierto para la conexión, la sesión,   MessageProducer y MessageConsumer. El objeto de destino de una   proveedor debe ser utilizado con una conexión por el mismo proveedor. Sin embargo,   es posible enviar un mensaje producido por un proveedor de JMS para   otro proveedor de JMS. El envío de un mensaje creado por otro JMS   proveedor no es tan eficiente como el envío de un mensaje creado por el LLM   cliente JMS, pero esta función se proporciona para hacer más fácil para una   aplicación a un puente de un proveedor a otro.

     

El cliente LLM JMS no implementa la mensajería punto a punto   modelo (colas), pero todos los objetos JMS pueden ser creados.

     

El cliente LLM JMS requiere una JVM de al menos Java 5.

     

El cliente LLM JMS define todos los objetos de tipo seis de mensajes (Mensaje,   BytesMessage, MapMessage, ObjectMessage, StreamMessage, y   Mensaje de texto). Al enviar un mensaje de JMS de JMS, la cabecera JMS   indica el tipo de mensaje. Si la cabecera JMS es que falta (que es   común cuando se envía un mensaje de un productor no de JMS) el LLM JMS   cliente intenta deducir el tipo del mensaje del contenido.   Normalmente, el mensaje aparecerá como un BytesMessage, pero si el mensaje   comenzar con una lista de materiales UTF-8 o XML parece ser que será interpretado como   un mensaje de texto. De mensajes de texto se supone que ha de codificarse en UTF-8 ......

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