我们在应用中遇到以下情况。
用户导航到一个页面,其中显示 50 个帐户的列表以及其他详细信息。 为了将附加信息在线服务器发送消息(每个帐户一个)到 MQ 队列,有一个批处理作业监听该队列并选择这些消息并通过 WS 或 EJB 调用调用外部系统,并以以下形式返回数据在线服务器从队列中获取响应并将其显示在屏幕上。
- 在线服务器向MQ发送多条消息
- 批处理作业监听此队列
- 接收消息,并相应地调用外部系统。
- 创建响应并将其放回队列
- 在线服务器挑选这些消息并将消息显示在 屏幕。
此场景中有很多冗余步骤和太多故障点。不过我知道这样做是为了提高性能效率。
我想实现这样的目标:
1)在线直接调用外部系统并获取响应。
- 我可以做到:在每个帐户的循环中,这会让我付出代价 性能受到影响。
- 我可以打开多个线程,并触发请求,但我是 告诉从网络应用程序打开多个线程是不行的[有人可以吗 解释一下为什么?]
我可以使用任何方法/机制来实现这一目标吗?
感谢您抽出时间阅读这么长的帖子。
最佳答案
重新多线程:
对于 EJB,这不仅是不鼓励的,而且是 specification 明确禁止的。 然而,对于 J2EE 的其他领域,可以通过使用 Concurrency Utils 来实现,您可以确保创建新线程并由容器管理,从而保证所有 EE 服务可用。
关于java - 有没有一种方法可以在不使用消息传递协议(protocol)的情况下从 Web 应用程序发送多个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898483/