我使用Spring JMS Listener从AMQP队列中读取消息。 如果消息在处理中失败,则使用事务会话来处理故障。 失败时将消息重定向到另一个队列。
尝试使用并发选项但不能使用它,因为我的消息处理需要按顺序选择消息。
要在队列中处理大约5000条消息,大约需要30分钟。从队列中读取消息并保存在数据库中。
配置:
<jms:listener-container container-type="default" connection-factory="connectionFactory" acknowledge="transacted">
<jms:listener destination="queueName" ref="processQueueMessage" method="onMessage" />
</jms:listener-container>
寻找另一种处理消息的替代方法或任何改进现有流程的建议。
答案 0 :(得分:0)
更新: 仅对消息消费进行了一些分析。因此,删除了Stephane建议的处理的持久性部分。写了一个测试用例来测试消息消耗。 结果:要消耗5000条消息,大约需要30-35秒。
后续步骤: 研究数据库持久性,看看我是否能找到瓶颈。