java 多个listener_java – 如何为多个主题配置多个JmsListener

项目中遇到问题,两个@JmsListener分别监听foo1和foo2主题,但只有一个主题有消费者。疑问在于是否需要为每个JmsListener创建独立的jmsListenerContainerFactory。当前配置文件中只有一个jmsListenerContainerFactory,设置了并发性和订阅持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我的项目中,我添加了两个不同的JmsListener但是当我在ActiveMQ面板中运行项目时,只有其中一个主题有消费者!

那么我应该为每个JmsListener添加单独的jmsListenerContainerFactory配置吗?

@JmsListener(destination = "foo1")

public void foo1(final Message jsonMessage) throws JMSException {

...

}

@JmsListener(destination = "foo2")

public void foo12(final Message jsonMessage) throws JMSException {

...

}

编辑:这是来自JMS配置文件:

@Configuration

@EnableJms

public class FooJmsConfig {

@Bean

public ActiveMQConnectionFactory connectionFactory() {

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();

connectionFactory.setBrokerURL(BROKER_URL);

connectionFactory.setPassword(BROKER_USERNAME);

connectionFactory.setUserName(BROKER_PASSWORD);

connectionFactory.setUseCompression(true);

connectionFactory.setClientID("FPP_API");

connectionFactory.setConnectionIDPrefix("DRR");

connectionFactory.setUseAsyncSend(true);

return connectionFactory;

}

@Bean

public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {

DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();

factory.setConnectionFactory(connectionFactory());

factory.setConcurrency("1-1");

factory.setPubSubDomain(true);

factory.setSubscriptionDurable(true);

return factory;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值