2011-02-08 58 views
4

ActiveMQメッセージバスに統合する必要のある新しいC/C++コードを記述しています。これには多くのオプションがあります:C/C++でApache ActiveMQを使用する

  • は、C++用の使いやすいJMSのようなAPIです。
  • OpenWire Cクライアント(ActiveMQ 4.x以降でのみ使用可能)。
  • OpenWire C++クライアント
  • ストンプCクライアント(libstomp)

その後、何が...、JNI、SOAPを使用してXMPP ActiveMQのJavaクライアントへのリンクのREST APIなどの "ワイルド" のオプション、ですので、 C/C++アプリケーションをActiveMQに統合する必要があります。なぜですか?

答えて

3

ActiveMQ-CPP(CMS)のみを一覧表示する4つのクライアントのうち、アクティブに維持されているのは、残りは長時間活動していません。それはあなたのプロジェクトのニーズに最も適したオプションを使うべきだと言われています。 ActiveMQ-CPPを使用すると、JMSクライアントと同じ機能をすべて使用することができ、ブローカフェールオーバーをサポートし、宛先の削除、メッセージ圧縮などのActiveMQ固有の機能にアクセスできます。

プロジェクトの要件は最終的に選択を指示する。

0

はい、ActiveMQ-CPPCMSは、従来のCコードを統合するのに適しています。 私はjava (JMS)listener(Replier)とのコードの統合をJNIとJavaリスナーの呼び出されたc関数を使って行っています。 私たちの場合、私たちはactivemqブローカーからのメッセージを積極的にリッスンし、JNIを使用してそのメッセージをネイティブc関数に渡し、activemqブローカーに返されたC関数から返されたメッセージをとgetJMSCorrelationIDを使用して返すJavaリスナーを持っています。

AMQブローカーからのメッセージをリッスンし、メッセージをc関数に渡し、応答/処理されたメッセージをAMQブローカーに返信する両方のアプローチを行っています。

しかし、私は最良の選択肢と、なぜだろうポイント

  1. の下に知って興味を持って?
  2. JNIを使​​用してJava & Cを実行すると、Javaから共有Cライブラリ(.soライブラリ)を呼び出す際に、パフォーマンス上の問題や並行性の問題が発生しますか?
関連する問題