nosql简答什么是最终一致性_可靠消息最终一致性方案中预发送作用是什么
可靠消息最終一致性方案的核心流程
①上游服務投遞消息
如果要實現可靠消息最終一致性方案,一般你可以自己寫一個可靠消息服務,實現一些業務邏輯。
首先,上游服務需要發送一條消息給可靠消息服務。這條消息說白了,你可以認為是對下游服務一個接口的調用,里面包含了對應的一些請求參數。
然后,可靠消息服務就得把這條消息存儲到自己的數據庫里去,狀態為“待確認”。
接著,上游服務就可以執行自己本地的數據庫操作,根據自己的執行結果,再次調用可靠消息服務的接口。
如果本地數據庫操作執行成功了,那么就找可靠消息服務確認那條消息。如果本地數據庫操作失敗了,那么就找可靠消息服務刪除那條消息。
此時如果是確認消息,那么可靠消息服務就把數據庫里的消息狀態更新為“已發送”,同時將消息發送給 MQ。
這里有一個很關鍵的點,就是更新數據庫里的消息狀態和投遞消息到 MQ。這倆操作,你得放在一個方法里,而且得開啟本地事務。
啥意思呢?如果數據庫里更新消息的狀態失敗了,那么就拋異常退出了,就別投遞到 MQ;如果投遞 MQ 失敗報錯了,那么就要拋異常讓本地數據庫事務回滾。這倆操作必須得一起成功,或者一起失敗。
如果上游服務是通知刪除消息,那么可靠消息服務就得刪除這條消息。
====================================================================
可靠消息服務是什么?MQ是消息隊列么?她兩的區別是什么?
總結
以上是生活随笔為你收集整理的nosql简答什么是最终一致性_可靠消息最终一致性方案中预发送作用是什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滑动解锁
- 下一篇: 删除a标签下面的横线