Python中的ActiveMQ监听器

3

我需要为ActiveMQ编写一个Python监听器。

是否有可以用于编写监听器的Python包?此外,什么是Stomp/Openwire协议?当我启动ActiveMQ时,我看到三个带有协议的URL,即TCP、SSL和STOMP。

任何帮助都将不胜感激。

编辑!:另一个问题是,假设我们使用stomp和openwire协议启动代理。假设代理URL现在是tcp://localhost:61616和stomp://localhost:61613。那么现在代理正在侦听两个不同的端口。我的问题是,如果生产者在TCP端口上发布消息,那么通过STOMP端口订阅者能否接收该消息?还有,如果两个分别在TCP和STOMP上等待的订阅者在同一队列上,他们都会收到消息吗?

2个回答

3
对于Python,您可以使用类似stomppy的东西,它将使您能够与任何了解STOMP的代理进行交互。ActiveMQ本地使用自己的openwire协议,但也可以使用STOMP和MQTT。您需要添加一个STOMP TransportConnector,请参见ActiveMQ的STOMP页面

虽然pyactivemq已经没有更多的开发,但最新版本(0.1.0)是稳定的。我安装了pyactivemq,但是出现了pyactivemq.CMSException: OpenWireFormatNegotiator::requestWire format negotiation timeout: peer did not send his wire format的错误。此外,生产者是用Java编写的,而我只想编写一个消费者。我的问题是系统管理员只启动了openwire协议,而没有启动stomp协议,因此我不得不放弃STOMP.py,尽管我之前考虑过使用它。@TimBish,我猜你是pyactivemq的作者,能否帮助我解决这个错误? - Amm Sokun
我不是pyActiveMQ的作者,原始作者对该项目已经失去了兴趣,因此它没有得到维护,并且不支持其所构建的ActiveMQ-CPP的最新版本。我真的不知道它支持的最后一个版本是什么。你最好看一下那些被维护过的Stomp Python客户端。 - Tim Bish
我在pyactivemq的讨论线程中看到了你的评论。无论如何,使用Stomp Python是我的最后选择,因为我必须与系统管理员交谈才能启动该协议。此外,一个队列有两个消费者,两者都会收到每个消息的副本...听起来不对,或者说确实如此? - Amm Sokun

0
最后我使用STOMP Python监听ActiveMQ Broker。PyActiveMq不稳定,因为它已经不再维护了。

你能分享一下你的代码吗?我想用Python在线监听一个主题。那么我应该建立一个活跃的持久订阅者吗?如何操作呢? - someone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接