RabbitMQ 真的可以与 Amazon MQ (ActiveMQ) 配合使用吗?

问题描述 投票:0回答:1

我有一个 Java RabbitMQ 生产者应用程序,我想从 Amazon MQ 在 ActiveMQ 上发送一些消息(我已经创建了代理)。我按照此页面中的步骤进行操作。

我为 RabbitMQ 制作了 Java 示例,起初看起来不错,但是当我创建到我的端点的连接时(还有用户名和密码):

amqps://x-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-x.xx.xx-xxxx-x.amazonaws.com:5671

在这一行中:

factory.newConnection();

我遇到了这些错误:

内部库错误:

[AMQP Connection xx.xx.xx.xx:5671] ERROR com.rabbitmq.client.impl.ForgivingExceptionHandler - An unexpected connection driver error occured
com.rabbitmq.client.MalformedFrameException: AMQP protocol version mismatch; we are version 0-9-1, server sent signature 3,1,0,0
    at com.rabbitmq.client.impl.Frame.protocolVersionMismatch(Frame.java:170)
    at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:107)
    at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:184)
    at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:645)
    at java.lang.Thread.run(Thread.java:745)

我发现的错误:

null com.rabbitmq.client.ShutdownSignalException: connection error

我知道主要错误是版本不匹配,但是有没有办法通过更改版本协议来修复它,或者这是不可能的?

因为示例中RabbitMQ使用了AMQP 0-9。

java rabbitmq amazon-mq
1个回答
3
投票

ActiveMQ(ClassicArtemis)支持AMQP 1.0。如果 RabbitMQ 客户端使用 AMQP 1.0,那么它应该可以工作。如果没有,那就不会了。

您引用的文档并不表明 RabbitMQ 客户端将与 ActiveMQ 一起使用。它只是演示了 RabbitMQ 客户端的常见用法,然后提供了备用 JMS 示例。文章在“结论”部分指出:

在这篇文章中,我回顾了如何开始使用 Amazon MQ 代理,并引导您完成几个探索 RabbitMQ 和 Apache ActiveMQ 客户端集成之间差异的代码示例。如果您正在考虑迁移到 Amazon MQ,这些示例应该可以帮助您了解可能需要的更改。

换句话说,您必须更改您的申请。您不能将 RabbitMQ 客户端与 ActiveMQ 一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.