使用MessageListener
从队列中使用消息后,不会立即从队列中获取另一条消息。它正在等待,直到我的功能完成,然后队列中又出现另一条消息。如何不依赖我的功能而从队列中快速获取消息。
推测onMessage()
实现的MessageListener
方法正在执行您的所有“功能”,这就是消息消耗比您想要的慢的原因,因为在消耗另一条消息之前必须先完成onMessage()
。
有多种方法可以解决此问题(无特定顺序):
DefaultMessageListenerContainer
。MessageListener
之类的库来实现自己的Apache Commons Pool池。MessageListener
收到消息时,请从线程池中获取线程并在该线程中处理消息,以使MessageListener
可以更快地接收消息。我用这种方法看到的唯一真正的问题是它限制了您确认消息的方式。简而言之,您应该确认消息[[before传递给新线程。