4.3 分離與拓展(事件與隊列,利用事件串聯(lián)業(yè)務)


我們前面講過技術與業(yè)務的分離,今天主要如何利用事件與消息實現(xiàn)兩個服務之間的交互
事件與消息的關系
? ? 事件是系統(tǒng)內部的數(shù)據(jù)通訊,是受限于進程內部的數(shù)據(jù)通訊,而消息則是跨進程、闊服務的消息通訊。他們兩者可以傳遞相同的數(shù)據(jù),但是消息可以傳達到更遠的地方,事件也是消息的觸發(fā)者,通常消息是事件數(shù)據(jù)的傳遞者。
場景演示
我將以模擬OA審批財務報銷為例,介紹兩個服務之間如何實現(xiàn)分離與拓展的。
場景介紹:
現(xiàn)在需要報銷一筆財務費用,目前的業(yè)務流程是需要先再OA系統(tǒng)中完成財務的報銷審批,審批通過以后再由財務人員登錄財務系統(tǒng),去完成費用的報銷。
場景改造
我們將OA系統(tǒng)完成審批時觸發(fā)一個事件,然后通過消息將事件廣播出去,然后由財務系統(tǒng)訂閱消息,并自動完成財務的審批操作。
https://github.com/codingapi/cranky-code/tree/main/demo4.3