首页 > 解决方案 > 使用线程池的 JMS 侦听器

问题描述

我正在使用一个 Spring 项目,其中我有一个 JMS 事件侦听器的实现来处理来自队列的消息。

准确地说,我使用的是 SQS (AWS) 队列。

一切正常。

我的观点是:我没有配置任何关于并发的东西,但我希望有更多的线程作为侦听器,以提高队列中消息处理的性能(速度)。

我正在考虑配置 ThreadPool (TaskExecutor) 并在我的消息处理方法上添加注释 @Async 的可能性。

因此,我将在我的侦听器中添加一个 onMessage 方法,在消息验证之后,我将调用此异步方法。

这是一个好习惯吗?使用这种方法会有一些问题吗?

我正在网上寻找这个,我发现我可以直接在侦听器上配置并发值。

我很困惑,有很多可能的方法可以做到这一点,我无法理解最好的方法。

这些是等效的解决方案吗?

标签: springjmsthreadpoolamazon-sqsspring-jms

解决方案


Do not use @Async - simply increase the concurrency of the listener container and it will be handled for you automatically by spring-jms.


推荐阅读