gpt4 book ai didi

java - 如何从java异步发送soap消息

转载 作者:行者123 更新时间:2023-12-01 14:37:36 25 4
gpt4 key购买 nike

业务情况是,我们希望应用程序每隔一段时间就应用程序中发生的某个事件通知第三方,并向他们发送一些数据。我们可以说我们是发布者,第三方是订阅者。

如果他们有一个 SOAP 服务期望 SOAP 消息作为通知,那么与其服务通信的最佳实践方式是什么?我希望它是异步的,因为我不希望我们的应用程序放慢速度来通知他们。我还需要它来保证交付,如果他们的服务中断则重试。

通过阅读,我似乎可以使用 activeMQ - 但这是否需要他们有一个可以连接到 MQ 的 JMS 目标?

我理想中想要的是某种透明的消息代理,它将代表我发送 SOAP 请求,并重试直到获得成功的响应。是否存在类似的东西,对于这种情况这是一个明智的架构选择吗?

非常感谢!

最佳答案

SOAP 是一种请求/响应协议(protocol)。虽然底层传输可以是异步的,但这通常对看似同步的客户端是隐藏的。

处理此类通知的最佳方式纯粹是通过 JMS/MQ。但是,这确实假设您可以控制或希望更改客户端,以便它可以使用队列中的消息。

如果情况并非如此,那么队列仍然是可行的方法。

通知应发布到队列中。进程或线程需要使用来自该队列的通知,并使用适当的重试逻辑进行 SOAP 调用,以便在调用失败时重新对通知进行排队。根据您的要求,这可以像内存中队列一样简单,或者,如果您需要通知在进程重新启动后继续存在,则可以使用 ActiveMQ 等外部队列服务器。

无论哪种方式,模式都是相同的:

  • 您将通知排队
  • 另一个线程或另一个进程中的使用者使用通知并进行 SOAP 调用
  • 如果 SOAP 调用失败,您将重新排队通知

关于java - 如何从java异步发送soap消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334148/

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