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