Pregunta

I desea utilizar ActiveMQ como un intermediario de mensajes de comunicación entre un componente C ++ y un componente de Java en dos proceso. P.ej. componente C ++ es el editor y el componente de Java es el suscriptor (allí quizá múltiples abonados). Miro a página web ActiveMQ y menciona la herramienta OpenWire y ActiveMQ-CPP. Sin embargo, todos los ejemplos en los sitios web están utilizando el mismo idioma para el productor y el consumidor.

Mis preguntas son:

trabajo 1.Can ActiveMQ para el productor / consumidor en diferentes idiomas?

diferentes procesos

2.En? ¿Cómo?

¿Fue útil?

Solución

OpenWire es un protocolo y, por tanto, teóricamente, puede ser implementado en cualquier lugar, pero que no existen implementaciones completas de medias para cada idioma. La letra pequeña del C ++ cliente dice:

"A partir de la versión 2.0, ActiveMQ-CPP soporta el protocolo de la OpenWire v2, con unas pocas excepciones. ObjectMessage - No podemos reconstruir el objeto (s) contenida en un ObjectMessage en C ++, por lo que si su aplicación se suscribe a una cola o un tema que tiene un ObjectMessage envió a ella, recibirá el mensaje, pero no será capaz de extraer un objeto de ella. "

Así que si desea enviar datos a través de los procesos, que escriba su C ++ y Java componentes para utilizar la API (asegurándose de no utilizar tipos ObjectMessage si está usando ActiveMQ-CPP). A continuación, ejecute el servidor ActiveMQ ... decirle a sus programas a conectar con él, y debería funcionar.

Pero si usted está realmente tratando de hacer la comunicación entre procesos cuando controla tanto a los clientes, esto podría ser un poco de mano dura. Quizás se encuentre interesado en las respuestas a ¿Cuál es el mejor enfoque para IPC entre Java y C ++? y Una buena alternativa a la memoria compartida IPC para aplicaciones Java / C ++ en Linux

Otros consejos

Directamente desde la primera página de ActiveMQ:

Supports a variety of Cross Language Clients and Protocols from Java, C, C++, C#, Ruby, Perl, Python, PHP

* OpenWire for high performance clients in Java, C, C++, C#
* Stomp support so that clients can be written easily in C, Ruby, Perl,
  Python, PHP, ActionScript/Flash, Smalltalk to talk to ActiveMQ as well 
  as any other popular Message Broker

Lo hemos probado con PHP (usando Stomp) y Java (usando OpenWire).

En cuanto a los procesos de:. Los diferentes productores y consumidores puede ser por supuesto en los procesos totalmente diferentes, la comunicación a través por ejemplo TCP o SSL

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