【问题标题】:ActiveMQ transactional acknowledge - on a topic consumer -ActiveMQ 事务确认 - 关于主题消费者 -
【发布时间】:2021-01-18 03:37:26
【问题描述】:

(在通过 activeMq 实现 pubsub 的 springboot 项目中),我想对消费者的“侦听器”进行事务确认,以便如果出现任何异常,消息代理(在本例中为 activeMq)只是不断重试交付 - 根据一些重审政策 - (或者更有可能消费者继续拉动)。

这已经被问及并成功回答:ActiveMq transaction on @JmsListener

虽然我对此进行了测试并且它工作正常,但它只适用于队列;对于主题消费者,尽管配置基本相同,但没有“重试机制”起作用。

有人知道(关于事务性消费者)队列和主题之间是否存在一些根本区别?和/或在将事务性消费者与主题一起使用时是否存在一些常见问题/陷阱?

提前致谢。

【问题讨论】:

    标签: spring-boot transactions activemq


    【解决方案1】:

    如果将来有人遇到这个问题,解决问题的办法是让订阅者“持久”。至于为什么这能解决问题,我不是 100% 确定的;但我推测一个持久的订阅者(因为即使消费者/订阅者离线,它也能够“存储消息以供以后传递”),它具有在“确认传递失败”的情况下重试所需的“设置” ”。

    在虚拟主题的情况下,实现这种“交易”行为;那么持久主题需要设置为false(因为虚拟主题从消费者的角度来看是物理队列),我们还需要将pubSubDomain设置为false;

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2019-10-27
      • 2017-02-14
      • 2014-05-21
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多