Frage

Ich mag ActiveMQ als Nachrichtenvermittler verwenden, um zwischen einer C ++ Komponente in Verbindung steht und eine Java-Komponente in zwei Verfahren. Z.B. C ++ Komponente ist der Verleger und die Java-Komponente ist der Teilnehmer (es vielleicht mehr Teilnehmer). Ich sehe auf ActiveMQ Website und es erwähnt das Werkzeug und Openwire ActiveMQ-CPP. Jedoch sind alle Beispiele auf den Internetseiten verwenden die gleiche Sprache für Erzeuger und Verbraucher.

Meine Fragen sind:

1.Kann ActiveMQ Arbeit für Erzeuger / Verbraucher in verschiedenen Sprachen?

2.In verschiedene Prozesse? Wie?

War es hilfreich?

Lösung

ist Openwire ein Protokoll und damit theoretisch überall umgesetzt werden kann, aber das bedeutet nicht vollständige Implementierungen existieren für jede Sprache. Der feine Druck des C ++ Client sagt:

"Ab Version 2.0, ActiveMQ-CPP unterstützt die Openwire v2-Protokoll, mit wenigen Ausnahmen. Object - Wir können das Objekt (e) in einer Object in C ++ enthalten ist, nicht rekonstruieren, so dass, wenn Ihre Anwendung in einer Warteschlange oder ein Thema abonniert ist, dass ein Object an ihn gesendet hat, werden Sie die Meldung erhalten, aber nicht in der Lage sein, ein Objekt zu extrahieren von ihm. "

Wenn Sie also Daten über Prozesse senden möchten, schreiben Sie Ihre C ++ und Java-Komponenten, die API zu verwenden (was sicher nicht Objecttypen zu verwenden, wenn Sie ActiveMQ-CPP verwenden). Dann den ActiveMQ-Server läuft ... sagen Sie Ihren Programmen, um es zu verbinden, und es sollte funktionieren.

Wenn Sie aber wirklich nur versucht, die Kommunikation zwischen Prozessen zu tun, wenn Sie beide Clients steuern, das ist ein bisschen plump sein könnte. Sie könnten in den Antworten auf interessiert sein Was ist der beste Ansatz für die IPC zwischen Java und C ++? und Gute Alternative zu Shared-Memory-IPC für Java / C ++ Anwendungen auf Linux

Andere Tipps

Direkt von ActiveMQ auf der Titelseite:

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

Wir haben es mit PHP getestet (mit Stomp) und Java (mit Openwire).

In Bezug auf Prozesse. Die verschiedenen Produzenten und Konsumenten können natürlich von völlig unterschiedlichen Prozesse sein in, die Kommunikation über z TCP oder SSL

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top