【发布时间】:2021-06-23 00:12:48
【问题描述】:
我正在开发一个 POC,其要求是从 JMS 队列中批量消费消息,并按照 Spring 批处理步骤将其传递给链中的处理器和写入器。Spring Batch 提供 JMSItemReader 作为开箱即用功能,但看起来它会一个接一个地消耗消息,直到队列中没有消息或达到接收器超时...就基于块的步骤而言,项目被读入块中,然后在事务中处理并写入为一个块到另一个数据存储区..这里JMSItemReader 不会批量读取项目..Spring Batch 世界中是否有任何解决方案可以从队列中批量消费消息以提高应用程序的整体性能?
我尝试了很多文档,但没有找到任何适合此用例的解决方案..感谢您的帮助..谢谢
【问题讨论】:
-
值得注意的是,JMS API 本身仅支持通过事务进行“批处理”。 API 仅支持单独发送和消费消息,事务可用于确保这些操作以原子方式提交或回滚。此外,询问您的情况是否可以提高性能就像问“一根绳子有多长”。答案当然是“视情况而定”,这些问题在 Stack Overflow 上是题外话,因为它们会引发讨论,而不是基于事实的答案。
标签: java jms spring-batch batch-processing solace