1. 程式人生 > >解決mq訊息一致性-訊息中介軟體(一)

解決mq訊息一致性-訊息中介軟體(一)

定義:產生訊息的業務動作和訊息傳送的一致。
如果業務動作執行成功了,那麼這個動作產生的訊息一定要傳送出去。另一方面,如果這個業務沒有發生或者失敗,就不應該把訊息傳送出去。

執行具體流程

  • 業務處理應用先把訊息傳送給訊息中介軟體,標記訊息狀態為待處理
  • 訊息中介軟體將訊息儲存在訊息儲存中,不投遞該訊息
  • 訊息中介軟體返回訊息處理的結果(入庫的結果)
  • 根據訊息中介軟體返回的結果操作.
    • 結果失敗,放棄業務處理
    • 結果成功,進行業務自身的操作
  • 業務操作完成,把業務操作的結果傳送給訊息中介軟體
  • 訊息中介軟體根據業務的結果操作
    • 業務失敗,刪除訊息儲存中的訊息
    • 業務成功,更新訊息儲存中訊息的狀態為可傳送.