tcc是什么究西?
基于微服務(wù),實(shí)現(xiàn)一致性物喷,要么都成功卤材,要么都失敗,t:try峦失,c:confirm扇丛,c:cancel。4
t尉辑,可以講需要修改的數(shù)據(jù)帆精,改為要修改的預(yù)值,增加一個(gè)字段隧魄,如果以前的狀態(tài)是從卓练,未付款到已付款,現(xiàn)在就是改為待處理购啄。
c襟企,查看新的字段是否存在修改預(yù)值,有則正常執(zhí)行
c狮含,異常狀態(tài)顽悼,則刪除修改預(yù)值,同時(shí)將改變過(guò)得值修改回來(lái)
生產(chǎn)中我們用的是消息異步怎么辦辉川?
首先盡可能的保證99.99%高可用表蝙。
上游服務(wù)投遞消息和下游服務(wù)接受消息加校驗(yàn)拴测,
做一個(gè)定時(shí)線程去檢測(cè)消息狀態(tài)乓旗。去獲取狀態(tài),執(zhí)行下步操作集索。
高可用降級(jí)
當(dāng)中間件消息宕機(jī)了屿愚,我們可以用到redis的kv存儲(chǔ)隊(duì)列代替,當(dāng)消息中間件回復(fù)了再確保kv存儲(chǔ)中沒消息了再換回來(lái)务荆。
不過(guò)我們需要再kv中提前固定好隊(duì)列妆距,去對(duì)應(yīng)通過(guò)hasn算法分發(fā),確保每個(gè)key不會(huì)寫入過(guò)多函匕。同時(shí)需要zk觸發(fā)一個(gè)降級(jí)開關(guān)娱据。開啟一個(gè)線程每隔一段時(shí)間投遞消息給mq。