5.2 事件拓展機(jī)制

? ? ?事件機(jī)制可以非常優(yōu)雅的實(shí)現(xiàn)業(yè)務(wù)的解耦,同時(shí)事件可以轉(zhuǎn)化為消息,從而實(shí)現(xiàn)跨服務(wù)之間的拓展與通訊,還可以借助事件實(shí)現(xiàn)分布式技術(shù)的高性能方案。
? ? 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)可以簡(jiǎn)化業(yè)務(wù)復(fù)雜度,提升業(yè)務(wù)的適配能力,而事件則可以提升系統(tǒng)的拓展能力與性能。

我們主要來(lái)分享事件機(jī)制的三大優(yōu)點(diǎn):
1.業(yè)務(wù)解耦
? ?通過(guò)事件機(jī)制,可以讓業(yè)務(wù)觸發(fā)點(diǎn)實(shí)現(xiàn)無(wú)限的拓展能力,無(wú)論是業(yè)務(wù)線的串聯(lián)還是并聯(lián)都可以基于發(fā)布的事件實(shí)現(xiàn)無(wú)限的拓展能力。所以通過(guò)埋入一些事件機(jī)制,從而降低了業(yè)務(wù)的耦合性,即便是串聯(lián)的業(yè)務(wù)線,也不需要是強(qiáng)連接的方式串聯(lián)了。
2. 消息拓展
? ?事件可以通過(guò)拓展消息中間件訂閱的方式,將事件消息發(fā)布到消息隊(duì)列或流處理的服務(wù)中,從而可以將進(jìn)程內(nèi)部的狀態(tài)同步,延申到跨服務(wù)的狀態(tài)同步,從而進(jìn)一步提升系統(tǒng)的拓展能力。
3.彈性拓展
? ?在很多高并發(fā)的業(yè)務(wù)場(chǎng)景中,為了滿足負(fù)載需求,經(jīng)常需要做負(fù)載均衡或分布式存儲(chǔ)。我們可以通過(guò)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)+事件機(jī)制實(shí)現(xiàn)業(yè)務(wù)服務(wù)的無(wú)狀態(tài)化,借助事件機(jī)制負(fù)載數(shù)據(jù)的存儲(chǔ)能力,從而實(shí)現(xiàn)高性能彈性計(jì)算能力。
關(guān)于彈性拓展的進(jìn)一步介紹:
? 在高并發(fā)的場(chǎng)景中,單純的負(fù)載均衡是簡(jiǎn)單的,但是想要達(dá)成高吞吐量時(shí),系統(tǒng)的性能短板通常是取決于有狀態(tài)服務(wù)的瓶頸上。
無(wú)狀態(tài)服務(wù)的負(fù)載均衡:

有狀態(tài)服務(wù)的負(fù)載均衡:

基于事件機(jī)制的負(fù)載均衡服務(wù):
