Nic*_*ard 7 activemq-classic jms amqp amazon-mq
我有一个 Python 和 Java Spring 应用程序以两种方式进行通信。该堆栈主要构建在 Java/Spring 上,因此 ActiveMQ 和 JMS 是合乎逻辑的选择。但是,我们添加了一个需要与其余服务交互的 Python 应用程序,因此我使用了 qpid proton(AMQP 库)并在 ActiveMQ 配置中添加了以下配置以使其工作:
<transportConnectors>
<transportConnector name="openwire" uri="ssl://0.0.0.0:61617?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqps" uri="amqp+ssl://0.0.0.0:5671?maximumConnections=1000&wireFormat.maxFrameSize=104857600&transport.transformer=jms"/>
</transportConnectors>
Run Code Online (Sandbox Code Playgroud)
它在 ActiveMQ 上完美运行,并允许使用 AMQP 客户端发送/接收 JMS TextMessage。
不幸的是,Amazon MQ 拒绝了此配置并返回了以下错误:
元素“transportConnector”上属性“name”的值“amqp+ssl”就其类型“protocol”而言无效。和 cvc-enumeration-valid:值 'amqps' 对于枚举 '[openwire]' 不是方面有效的
AWS 将 Amazon MQ 作为托管 ActiveMQ 服务进行营销,但它们似乎缺乏功能,因为从 5.8 版开始就可以使用从 AMQP 到 JMS 的映射:https : //activemq.apache.org/amqp和我的 Amazon MQ 代理m 使用的是版本 5.15.12
我尝试将amp;transport.transformer=jms和transport.transformer=jms标头添加到代理 URL 的查询字符串中,并在 Python 应用程序中使用 STOMP 作为协议(因为它是纯文本协议)而不是 AMQP,但这些都不起作用。
那么,您知道我可以在 Python 应用程序中发送 AMQP 消息并在 Java 应用程序中接收 JMS TextMessage 的任何潜在丢失配置或其他方式吗?
默认情况下,在开源 ActiveMQ 5.x 代码中,AMQP 传输已默认为 JMS 转换,因此除非 Amazon 版本已更改,否则如果您希望入站 AMQP 消息进行 JMS 转换,则无需显式设置。如果他们对此进行了更改,那么您需要联系他们以确定如何更改该配置。
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |