【问题标题】:Messages delivered twice at same instant to AMQP message consumer (ActiveMQ Artemis)消息同时发送两次给 AMQP 消息消费者 (ActiveMQ Artemis)
【发布时间】:2018-08-13 10:04:37
【问题描述】:

由于其中一个依赖项出现回归,我最近不得不从 WF13 回滚到 WF11。

现在我正在尝试让 AMQP 协议在 WildFly 11 的消息传递系统上工作。我正在运行具有两个节点的高可用性设置。每个节点在本地都有一个消息消费者。此消息消费者通过 AMQP1 连接。我已将io.netty 添加为org/apache/activemq/artemis/protocol/amqp 模块的依赖项,并更新了org/apache/qpid 以使AMQP 协议正常工作(另请参阅WFLY-7823)。现在我的 AMQP 消息使用者工作正常,但它似乎总是准确地接收消息两次,而且它似乎甚至在同一帧中。这发生在同一个节点上(如果消息没有首先在本地处理,则另一个节点通过网桥接收消息)。因此,在一个节点和一个队列消费者上,我在同一时刻准确地接收到每条消息两次,甚至在我收到的第一条消息发送ACK/NACK 之前。

我不记得在 WildFly 13 上看到过这个问题。

关于如何通过远程连接器发送消息,是否存在任何已知的回归?可能是 AMQP 协议中的问题?还是qtip更新版本的兼容性问题?

【问题讨论】:

    标签: wildfly activemq-artemis wildfly-11


    【解决方案1】:

    Wildfly 仅使用 ActiveMQ Artemis 来满足他们对 JMS 实现的需求(即 Java EE 的传统部分)。除了 JMS,我认为 Wildfly 对其他协议或 API 没有任何真正的兴趣。

    我的理解是,如果您需要支持多协议消息用例,您可能应该使用独立代理。我相信这就是为什么在 Wildfly 中没有启用 Artemis 支持的其他协议(例如 AMQP、STOMP、MQTT、OpenWire)或没有关于如何启用它们的文档(除了偶尔的论坛帖子)。

    还值得注意的是,Wildfly 11 包含 Artemis 1.5.5,比最新版本(即 2.6.2)晚了 10 个左右。这些版本中的 AMQP 实现已经做了大量工作,所以我认为最好使用独立版本的 Artemis,而不是嵌入 Wildfly 中的 Artemis。

    【讨论】:

    • 好的,我希望找到一个具体的问题 ID,也许可以提交我可以在 WildFly 11 上进行修补作为临时解决方案。根据您的回答,等待 ActiveMQ 2.x AFAIK 附带的 WF14 似乎是合乎逻辑的。希望这也能解决我遇到的其他问题。否则我可能最终会建立一个单独的 ActiveMQ 集群。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2015-11-25
    • 2014-10-23
    • 1970-01-01
    • 2018-12-12
    • 2013-08-01
    • 2022-10-05
    相关资源
    最近更新 更多