gpt4 book ai didi

jms - Amazon MQ 将 AMQP 消息转换为 JMS

转载 作者:行者123 更新时间:2023-12-03 17:23:35 26 4
gpt4 key购买 nike

我有一个 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>
它在 ActiveMQ 上完美运行,并允许使用 AMQP 客户端发送/接收 JMS TextMessage。
不幸的是,Amazon MQ 拒绝了此配置并返回以下错误:

The value 'amqp+ssl' of attribute 'name' on element 'transportConnector' is not valid with respect to its type, 'protocol'. and cvc-enumeration-valid: Value 'amqps' is not facet-valid with respect to enumeration '[openwire]'


AWS 将 Amazon MQ 推销为托管的 ActiveMQ 服务,但它们似乎缺乏功能,因为从 AMQP 到 JMS 的映射从 5.8 版开始可用: https://activemq.apache.org/amqp我使用的 Amazon MQ 代理的版本为 5.15.12
我尝试添加 amp;transport.transformer=jmstransport.transformer=jms代理 URL 的查询字符串的 header ,以及在 Python 应用程序中使用 STOMP 作为协议(protocol)(因为它是纯文本协议(protocol))而不是 AMQP,但这些都不起作用。
那么,您是否知道我可以在 Python 应用程序中发送 AMQP 消息并在 Java 应用程序中接收 JMS TextMessage 的任何潜在缺失配置或其他方式?

最佳答案

默认情况下,在开源 ActiveMQ 5.x 代码中,AMQP 传输已经默认为 JMS 转换,因此除非 Amazon 版本已更改,否则如果您想要入站 AMQP 消息的 JMS 转换,您甚至不需要明确设置。如果他们已更改,那么您需要联系他们以确定如何更改该配置。

关于jms - Amazon MQ 将 AMQP 消息转换为 JMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64001486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com