java - ActiveMQ 中的跨语言支持

标签 java python jms activemq stomp

我正在使用几种用 Python 和 Java 编写的不同服务。我现在已经到了需要让这些服务相互通信的地步,而 ActiveMQ 似乎是一个明智的选择。

但是,我不确定我是否完全遵循可用于 ActiveMQ 的不同协议(protocol)的概念。主要问题是,我是否必须实现所有服务以使用相同的协议(protocol)来访问总线?

  1. 是否可以同时运行具有多种不同连接协议(protocol)的同一总线?

  2. 如果是,则 1。它只是连接到受协议(protocol)管理的总线,还是协议(protocol)选择也会影响实际消息内容的类型。 IE。是否可以从 Java JMS 向主题发布消息并让 Python STOMP 客户端正确读取该消息?

最佳答案

跨语言互操作性可以由使用相同协议(protocol)的不同客户端实现,例如用于 Java 的 JMS、用于 C++ 的 CMS 和用于 .NET 的 NMS(当涉及到 OpenWire 时)。我不认为那里有一个很棒的 OpenWire Python 客户端,除了一些 CMS wrappers .

另一方面,ActiveMQ 在桥接不同协议(protocol)方面做得很好,因此它们可以共享相同的队列/主题。它非常适合读取从 OpenWire/JMS 发送的 stomp、MQTT 和 AMQP 消息。请注意,您可能希望避免使用 MapMessage 等 JMS 的高级功能,依赖特定的 JMS header 并坚持使用简单的文本消息或字节消息。这座桥不是 100% 透明的,但正如我所说,做得很好。

因此,您可以使用 stomp 甚至 AMQP 1.0,Microsoft 的一些说明 here .

关于java - ActiveMQ 中的跨语言支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28878035/

相关文章:

java - 使用全局变量从内部函数获取空字符串

java - 如何使用 java swing 文本框输入日期并将其存储在 mysql 数据库中?

python - Pandas : Count Intervall

python - 如何计算两条线之间的交点,其中一条线由数据框列定义

spring - 从 Web 应用程序和 Apache Camel/并使用 MQ,您是否使用 jsessionid 添加 JMS 消息?

java - AntPathRequestMatcher 已弃用。更换方法是什么?

java - 分割带有限制的字符串

python - Pandas :在分隔符上将列拆分为 n 个新列

java - ActiveMQ发送和接收XML文件的文件夹

Java 客户端监听 WebSphere MQ 服务器?