gpt4 book ai didi

java - Spring JMS 模板 - 并发调用

转载 作者:行者123 更新时间:2023-11-29 08:43:36 24 4
gpt4 key购买 nike

我可以使用 Spring JMSTemplate 进行并发调用吗?

我想并行调用 4 个外部服务,并且正在探索使用 Spring 的 JMSTemplate 并行执行这些调用并等待执行完成。

我正在考虑的另一个选项是使用 ExecutorService

使用一个比另一个有什么优势吗?

最佳答案

JMSTemplate 是线程安全的,因此对其进行并行调用不是问题。

消息服务对于大多数任务来说通常足够快,并且可以以最小的延迟接收您的消息,因此添加 ExecutorService 似乎不是您通常需要的第一件事。您真正需要的是正确配置您的 JMS 连接池并为其提供足够的开放连接(在您的情况下为四个),以便它可以无阻塞地处理您的并行请求。

您只需要 ExecutorService 以防您不关心有保证的交付并且您的程序需要极高的速度而您的消息服务无法提供,这是极不可能的。

至于从你的外部服务接收回复,你需要使用JMS Request/Reply pattern (您可以在本文中找到示例)。令人高兴的是,当您使用 Spring 时,您可以让 Spring Integration 为您做很多工作。您需要配置 outbound-gateway 来发送消息和 inbound-gateway 来接收响应。从 2.2 版开始,您还可以使用 reply-listener 来简化客户端的操作。所有这些组件都包含在 the official documentation 中(也有例子)。

关于java - Spring JMS 模板 - 并发调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38137457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com