ActiveMq-持久主题-并发

时间:2019-07-12 10:09:50

标签: 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;

0 个答案:

没有答案