问题描述
正在构建一个需要高性能 JMS 处理的应用程序。它将从队列中读取消息,并在处理后将相同的消息发布到另一个队列。
@JmsListener(destination = "queue1",containerFactory = "containerFactory",concurrency = "16-32")
@JmsListener(destination = "queue2",containerFactory = "containerFactoryExt",concurrency = "16-32")
@JmsListener(destination = "queue3",containerFactory = "containerFactory2",concurrency = "16-32")
@JmsListener(destination = "queue4",containerFactory = "containerFactoryExt2",concurrency = "16-32")
这是我创建容器工厂的代码。
@Bean(name = "containerFactory")
public MQConnectionFactory mqConnectionFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) throws NamingException {
//call to createJmsListenerContainerFactory()
}
@Bean(name = "containerFactoryExt")
public MQConnectionFactory mqConnectionFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) throws NamingException {
//call to createJmsListenerContainerFactory()
}
@Bean(name = "containerFactory2")
public MQConnectionFactory mqConnectionFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) throws NamingException {
//call to createJmsListenerContainerFactory()
}
@Bean(name = "containerFactoryExt2")
public MQConnectionFactory mqConnectionFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) throws NamingException {
//call to createJmsListenerContainerFactory()
}
JmsListenerContainerFactory<DefaultMessageListenerContainer> createJmsListenerContainerFactory(
ConnectionFactory cf,DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory,cf);
factory.setSessionTransacted(true);
factory.setConcurrency("15-50");
factory.setSessionAckNowledgeMode(2);
factory.setBackOff(new FixedBackOff());
return factory;
}
是否建议每个侦听器拥有单独的容器工厂?还有其他提高性能的建议吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)