为了账号安全,请及时绑定邮箱和手机立即绑定

JMS 中的批处理/批量处理

JMS 中的批处理/批量处理

杨魅力 2022-09-14 15:58:17
我遇到以下情况,其中我收到一个 XML,其中包含 100,000 中的多个条目。对于每个项目,我必须同时处理消息,一旦批处理/批量完成,我必须通知客户端我已处理它发送的100,000个条目。我正在考虑在消息驱动的 Bean 中添加每条消息,以同时处理其中的每条消息。我的问题是我如何知道MDB处理了此批处理中的所有消息,并向我发送此批处理/ XML中的所有消息都已完成的信号?在 Java 消息队列中执行此操作的最佳方法是什么?我希望在处理此 XML 中的所有消息时收到通知,以便我可以通知客户端。
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

有很多方法可以实现这一点,但如果你想通过JMS做到这一点,那么我认为最简单,最直接的方法是:

  1. 为XML中的每个条目向队列发送消息;称之为 .workQueue

  2. 使用者(或使用者池,它可能是 MDB)将从中获取消息并处理它们workQueue

  3. 一旦使用者完成处理消息,它就会将消息放在另一个队列上,指示它已完成;称之为 .resultsQueue

  4. 原始发件人可以侦听并更新客户端有关哪些条目已处理(或尚未处理)的信息。resultsQueue

每个 XML 条目一个 JMS 消息非常精细,因此,如果您发现性能不能满足您的要求,您可能希望将多个 XML 条目一起批处理到单个 JMS 消息中,以提高吞吐量。


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号