簡體   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