Pun*_*cky 3 java spring multithreading jmstemplate
我可以使用 Spring 进行并发调用吗JMSTemplate?
我想并行进行 4 个外部服务调用,并正在探索使用 Spring 并行JMSTemplate执行这些调用并等待执行完成。
我正在考虑的另一个选择是使用ExecutorService.
使用其中一种比另一种有什么优势吗?
JMSTemplate是线程安全的,因此对其进行并行调用不是问题。
消息传递服务对于大多数任务来说通常足够快,并且可以以最小的延迟接收消息,因此添加消息服务ExecutorService似乎并不是您通常需要的第一件事。您真正需要的是正确配置 JMS 连接池并为其提供足够的开放连接(在您的情况下为四个),以便它可以无阻塞地处理您的并行请求。
ExecutorService仅当您不关心保证交付并且您的程序需要消息服务无法提供的极高速度(这是极不可能的)时才需要。
至于从外部服务接收回复,您需要使用JMS 请求/回复模式(您可以在本文中找到示例)。令人高兴的是,当您使用 Spring 时,您可以让 Spring Integration 为您做很多工作。您需要配置outbound-gateway以发送消息和inbound-gateway接收响应。从 2.2 版开始,您还可以使用它reply-listener来简化客户端的操作。所有这些组件都包含在官方文档中(还有示例)。
| 归档时间: |
|
| 查看次数: |
3591 次 |
| 最近记录: |