【问题标题】:Configure ActiveMQ Artemis message redelivery on the client side在客户端配置 ActiveMQ Artemis 消息重新传递
【发布时间】:2021-11-20 21:58:55
【问题描述】:

我想知道是否可以在客户端配置消息重新传递。我已阅读 ActiveMQ Artemis 文档,但没有找到有关此功能的任何信息。所以我得出一个结论,在客户端没有机会配置消息重发。配置消息重新传递的唯一位置是broker.xml 文件。我说的对吗?

顺便说一句,我可以使用代理 URL 参数或 application.yml 配置与 ActiveMQ Artemis 的连接,因为我使用的是 Spring Boot 2.x。

【问题讨论】:

    标签: activemq-artemis


    【解决方案1】:

    ActiveMQ Artemis 支持 AMQP、STOMP、MQTT、OpenWire 等。许多客户端存在用于这些协议,这些协议以多种不同的语言编写,跨各种平台。给定客户端是否支持客户端重新传递实际上取决于客户端本身。您没有指定您使用的是哪个客户端,因此不可能给您一个具体的是/否答案。

    但是,我可以说 ActiveMQ Artemis 提供了一个使用核心协议的 JMS 客户端实现。该客户端确实支持客户端重新传递。但是,ActiveMQ“Classic”附带的 OpenWire JMS 客户端确实支持客户端重新传递,它也可以与 ActiveMQ Artemis 一起使用。

    【讨论】:

    • 我正在使用默认的 artemis 交换协议
    • 但是我有一个关于明线重新发送功能的问题。如果消息消费者(服务)出现故障,openwire 的重新发送是否会停止?明线重新交付只是消费者功能,因此经纪人不代表处理此类功能。我说的对吗?
    • 如果您将 OpenWire 客户端配置为进行客户端重新传递,并且客户端停止,那么当然,重新传递也会停止。但是,消费者未确认的任何消息都将被取消回代理上的队列,以便稍后传递给另一个客户端。代理可以配置为独立于任何客户端重新交付。
    • 我的回答是否解决了您的问题?如果是这样,您能否将其标记为正确以帮助将来可能遇到同样问题的其他人?谢谢!
    • 我使用堆栈溢出进行了一项研究。因此,我将您的答案与其他堆栈溢出答案相结合。我的结论是你是对的。
    猜你喜欢
    • 2020-10-04
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2013-02-21
    • 2010-11-05
    相关资源
    最近更新 更多