补偿机制
如果生產者的API 就是沒有被調用,也沒有收到消費者的響應消息,怎么辦?
不要著急,可能是消費者處理時間太長或者網絡超時。
生產者與消費者之間應該約定一個超時時間,比如5 分鐘,對于超出這個時間沒有得到響應的消息,可以設置一個定時重發的機制,但要發送間隔和控制次數,比如每隔2分鐘發送一次,最多重發3 次,否則會造成消息堆積。
重發可以通過消息落庫+定時任務來實現。
重發,是否發送一模一樣的消息?
參考:
ATM 機上運行的系統叫C 端(ATMC),前置系統叫P 端(ATMC),它接收ATMC的消息,再轉發給卡系統或者核心系統。
1)如果客戶存款,沒有收到核心系統的應答,不知道有沒有記賬成功,最多發送5次存款確認報文,因為已經吞鈔了,所以要保證成功;
2)如果客戶取款,ATMC 未得到應答時,最多發送5 次存款沖正報文。因為沒有吐鈔,所以要保證失敗。
?
總結
- 上一篇: MQ 的本质是什么呢?
- 下一篇: Servlet 请求处理