消息的作用:解耦、異步、削峰
場景1(解耦):上游和下游一對多
一個(gè)上游系統(tǒng)為多個(gè)下游系統(tǒng)生產(chǎn)數(shù)據(jù),上游系統(tǒng)發(fā)消息將數(shù)據(jù)給下游,就不用依賴這些下游系統(tǒng)的接口了
場景2(異步):并行處理,降低RT
處理一個(gè)業(yè)務(wù)可以拆成幾件事情,其中耗時(shí)長且不被依賴的事情可以發(fā)個(gè)消息出去處理
場景3(消峰)
上有發(fā)消息,下游主動拉消息?;蚺浜狭骺刂虚g件使用,例如 sentinel,命中限流時(shí)走重試策略
場景4(重試)
處理業(yè)務(wù)失敗時(shí),可以用消息的重試來做一定補(bǔ)償,此時(shí)業(yè)務(wù)邏輯需要是冪等的
消息的缺點(diǎn):1. 延時(shí) 2.弱一致性(對賬補(bǔ)償)