Domanda

Voglio usare ActiveMQ come message broker comunicare tra un componente C ++ e un componente Java in due processi. Per esempio. componente C ++ è l'editore e il componente Java è l'abbonato (là forse più sottoscrittori). Guardo sito ActiveMQ e si menziona lo strumento OpenWire e ActiveMQ-CPP. Tuttavia, tutti gli esempi sui siti web utilizzano lo stesso linguaggio per il produttore e del consumatore.

Le mie domande sono:

1.Can ActiveMQ lavoro per il produttore / consumatore in lingue diverse?

2.In diversi processi? Come?

È stato utile?

Soluzione

OpenWire è un protocollo e, quindi, può teoricamente essere realizzato ovunque, ma questo non significa che esistono implementazioni complete per ogni lingua. La stampa fine del client C ++ dice:

"Dalla versione 2.0, ActiveMQ-CPP supporta il protocollo v2 OpenWire, con poche eccezioni. ObjectMessage - Non possiamo ricostruire l'oggetto (s) contenuta in un'ObjectMessage in C ++, quindi se la vostra applicazione è sottoscritto a una coda o un argomento che ha un ObjectMessage inviato ad esso, si riceverà il messaggio, ma non sarà in grado di estrarre un oggetto da esso. "

Quindi, se si desidera inviare i dati attraverso i processi, si scrive il C ++ e componenti Java per utilizzare l'API (facendo attenzione a non utilizzare i tipi ObjectMessage se si sta utilizzando ActiveMQ-CPP). Quindi eseguire le ActiveMQ server ... dite ai vostri programmi di connettersi ad esso, e dovrebbe funzionare.

Ma se si sta in realtà solo cercando di fare comunicazione tra processi, quando si controlla entrambi i client, questo potrebbe essere un po 'pesante. Potreste essere interessati nelle risposte a cosa è l'approccio migliore per IPC tra Java e C ++? e Buona alternativa a IPC memoria condivisa per le applicazioni su Linux Java / C ++

Altri suggerimenti

Direttamente dalla prima pagina di 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

Abbiamo testato con PHP (usando Stomp) e Java (usando OpenWire).

Per quanto riguarda i processi di:. I vari produttori e consumatori possono naturalmente essere in totalmente diversi processi, per esempio la comunicazione su TCP o SSL

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top