(C)PythonとJava / JMSアプリケーションの両方をサポートするメッセージブローカーを介した通信に適したソリューションは何ですか?私の特定の要件は次のとおりです。
- オープンソースソリューション
- Linuxベースのシステムで利用可能
- 送信者と受信者の間のランデブーは必要ありません(つまり、メッセージブローカーを使用します)
- 1つのイベントキューでサポートされる複数のプロデューサーとコンシューマー(各メッセージを受信するのは1つのコンシューマーのみ)
- 2フェーズコミットによる作業単位のサポート(XAサポートがあると便利です)
- 永続メッセージのサポート(つまり、ブローカーの再起動後も存続します)
- JavaクライアントのJMSをサポート
- 「フリンジ」のコンポーネントはありません。つまり、コミュニティのサポートや関心がないためにメンテナンスから外れるリスクがあります。
- 「JMSを話す」ことができるPythonクライアントがある場合、それは素晴らしいことですが、独自のPythonJMSレイヤーを作成するタスクを含む回答は受け入れられます。
私はこれに対する解決策を見つけるのに驚くほど苦労しました。ApacheのActiveMQは、そのままではPythonをサポートしていません。ZeroMQにはランデブーが必要です。RabbitMQはJMSをサポートしていないようです。私が見つけた最良の候補は、ActiveMQとpyactivemqライブラリの組み合わせです。しかし、pyactivemqの最初と最後のリリースは2008年だったので、それは私の「フリンジなし」の要件を満たしていないように見えます。
理想的な答えは、Java / JMSとPythonアプリケーション間の通信に個人的に使用した、十分にサポートされ、十分に文書化された1つ以上のオープンソースパッケージの名前であり、取得するために多くの統合作業を必要としません。開始しました。上記のすべての要件を満たすための追加のグルーコードの「簡単な」(最大数日間の作業)実装を含む回答が受け入れられます。優れたオープンソース候補がない場合の商用ソリューションも受け入れられます。
また、Jythonも出ています。(私ができれば...)同じPythonアプリケーションは、CPythonでのみ利用可能なモジュールを使用する必要があります。