wbe*_*rry 13 python java middleware unit-of-work messagebroker
通过支持(C)Python和Java/JMS应用程序的消息代理进行通信的好方法是什么?我的特殊要求是:
我很难找到解决方案.Apache的ActiveMQ没有开箱即用的Python支持.ZeroMQ需要一个集合点.RabbitMQ似乎不支持JMS.我找到的最佳候选者是ActiveMQ和pyactivemq库的组合.但是pyactivemq的第一个也是最后一个版本是在2008年,所以看起来这不符合我的"无边缘"要求.
理想的答案是一个或多个支持良好且记录良好的开源软件包的名称,您个人习惯于在Java/JMS和Python应用程序之间进行通信,并且不需要进行大量的集成工作开始.答案包括"简单"(最多几天的工作)实施额外的胶水代码以满足上述所有要求,这是可以接受的.在没有良好的开源候选人的情况下,商业解决方案也是可以接受的.
此外,Jython已经出局了.(如果我能......)相同的Python应用程序将需要使用仅在CPython中可用的模块.
JMS是一种不实现的规范.RabbitMQ是一个真正的选择.
我也很高兴地使用了来自Jboss的HornetQ http://www.jboss.org/hornetq,因为它与Java EE的所有内容更加一致,但如果你使用Spring,那么RabbitMQ将是特别的选择.
我很难找到解决方案。Apache 的 ActiveMQ 不提供开箱即用的 Python 支持。
ActiveMQ 代理完全支持使用开箱即用的 Stomp 协议。Stomp 是一种基于文本的消息传递协议,拥有适用于多种平台和语言的客户端。
ActiveMQ 的文档应该包含有关如何为 stomp 设置连接器的信息。以最简单的形式,启用连接器看起来像:
<transportConnectors>
<transportConnector name="stomp" uri="stomp://localhost:61613"/>
</transportConnectors>
Run Code Online (Sandbox Code Playgroud)
一旦在代理端启用,您就可以使用任何支持 stomp 的 python 库。然后,您可以在 python 端使用 Stomp 并在 java 端使用 JMS 与代理通信并从特定目的地发送/接收。