首页 > 解决方案 > ActiveMq - 持久主题 - 并发

问题描述

我有多个持久订阅者正在收听持久主题。比如说,所有订阅者都被配置为同时处理“2-8”的消息。

在这些订阅者中,由于某些运行时依赖性(例如,外部服务不可用)而无法处理消息,因此该订阅者抛出自定义RuntimeException以允许 ActiveMq 重新传递消息 7 次(默认)。我在 Activemq 管理控制台中看到的是,对于这个特定的订阅者有太多的重新传递尝试 - 另外,我看到出队计数急剧增加,对于一条消息,它增加了更多 36 并且不一致。为什么?我做错什么了吗?

我的Listener factory配置

    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setMessageConverter(messageConverter());
    factory.setConnectionFactory(connectionFactory);
    factory.setPubSubDomain(true);
    factory.setSubscriptionDurable(true);
    factory.setSessionTransacted(true);
    factory.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);
    factory.setConcurrency("2-8");
    factory.setClientId("topicListener2");
    return factory;

标签: activemq

解决方案


推荐阅读