多线程JMS在Spring中接收

Ike*_*nez 5 java spring jms

我正在尝试从队列中编写用于JMS消息处理的多线程实现.

我尝试过使用DefaultMessageListenerContainer和SimpleMessageListenerContainer类.

我遇到的问题是,无论我如何配置它,似乎只是一个MessageListener类的实例被实例化.这迫使我不必要地编写无状态或线程安全的MessageListener实现,因为我将ListenerContainer配置为使用多个线程(concurrentConsumers = 8).

有一个明显的解决方案,我忽略了吗?

ska*_*man 5

这是设计的.这MessageListener是一个你注入Spring的依赖 - 它没有办法实例化新的.

这迫使我不必要地编写无状态或线程安全的messageListener实现

你觉得这听起来很糟糕.让你的MessageListener是一个非常好的主意,Spring只是消除了做其他事情的诱惑.

  • @Iker:是的,MessageListenerContainer将生成多个线程来执行此操作,所有线程都使用`MessageListener`的相同实例.产生多个听众是低效且不必要的. (2认同)