Question

Je souhaite utiliser ActiveMQ comme un courtier de messages de communication entre un composant C ++ et un composant Java dans deux processus. Par exemple. Le composant C est de l'éditeur et le composant Java est l'abonné (il peut y avoir des abonnés multiples). Je regarde le site ActiveMQ et mentionne l'outil OpenWire et ActiveMQ-RPC. Cependant, tous les exemples sur les sites utilisent la même langue pour les producteurs et les consommateurs.

Mes questions sont les suivantes:

1.Can ActiveMQ travail producteur / consommateur dans différentes langues?

2.Dans différents processus? Comment?

Était-ce utile?

La solution

OpenWire est un protocole et par conséquent peut théoriquement être mis en œuvre partout, mais cela ne signifie pas que les implémentations complètes existent pour toutes les langues. Les petits caractères du client C ++ dit:

"de la version 2.0, ActiveMQ-RPC prend en charge le protocole OpenWire v2, à quelques exceptions près. ObjectMessage - Nous ne pouvons pas reconstruire l'objet (s) contenu dans un ObjectMessage en C ++, donc si votre application est abonné à une file d'attente ou d'un sujet qui a un ObjectMessage qui lui est envoyé, vous recevrez le message mais ne sera pas en mesure d'extraire un objet de celui-ci. "

Donc, si vous voulez envoyer des données à travers des processus, vous écrivez votre C ++ et Java composants à utiliser l'API (en veillant à ne pas utiliser des types si vous État de l'objet à l'aide ActiveMQ-RPC). Ensuite, exécutez le serveur ActiveMQ ... dire à vos programmes pour vous y connecter, et cela devrait fonctionner.

Mais si vous êtes vraiment juste essayer de faire la communication interprocessus lorsque vous contrôlez les clients, cela pourrait être un peu lourde. Vous pourriez être intéressé par les réponses aux Qu'est-ce que la meilleure approche pour IPC entre Java et C ++? et Bonne alternative à la mémoire partagée IPC pour Java / C ++ des applications sur Linux

Autres conseils

Directement de la première page 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

Nous avons testé avec PHP (en utilisant Stomp) et Java (en utilisant OpenWire).

En ce qui concerne les processus:. Les différents producteurs et les consommateurs peuvent bien sûr être dans les processus tout à fait différents, communiquer via TCP ou SSL par exemple

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top