繁体   English   中英

如何从Java异步发送肥皂消息

[英]How to send soap messages asynchronously from java

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

如果他们有一个肥皂服务希望以肥皂消息作为通知,那么与他们的服务进行通信的最佳实践方法是什么? 我希望它是异步的,因为我不希望我们的应用程序变慢来通知它们。 我还需要保证交货,如果服务中断,请重试。

通过阅读,看来我可以使用activeMQ -但这不要求他们具有可以在其末端连接到MQ的JMS目标吗?

我理想的情况是某种透明的消息代理,它将代表我发送肥皂请求,然后重试直到获得成功的响应。 是否存在类似的东西,在这种情况下,这是否是明智的体系结构选择?

非常感谢!

SOAP是一个请求/响应协议。 尽管基础传输可以是异步的,但对于通常看起来是同步的客户端来说,这通常是隐藏的。

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

如果不是这种情况,那么仍然需要排队。

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

两种方式都相同:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM