小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Selecting an Event Architecture

 Baruch 2017-09-14
作者 | Jan Stenberg
譯者 | 蓋磊
標(biāo)簽 | 事件架構(gòu)

如果你要設(shè)計(jì)一個(gè)分布式系統(tǒng),它可能是基于微服務(wù)的,并且你在考慮采用 事件架構(gòu)(Event Architecture),那么目前存在多種模型和技術(shù)可供使用。

David Dawson 近期在博客中介紹了多種類(lèi)型的事件架構(gòu),并指出:非功能性需求是影響架構(gòu)選擇的一個(gè)主要因素。

http:///blog/2017/07/10/styles-of-event-architecture.html

Dawson 是一位自由職業(yè)的系統(tǒng)架構(gòu)師,他將事件架構(gòu)簡(jiǎn)單地定義為一種基于事件的軟件架構(gòu)。鑒于事件也是數(shù)據(jù)模型的一部分,因此事件架構(gòu)也是一種數(shù)據(jù)架構(gòu)。他強(qiáng)調(diào),事件架構(gòu)并非定義服務(wù)交互方式的一系列技術(shù)或特定模型。

分階段事件驅(qū)動(dòng)架構(gòu)(SEDA,Staged Event-Driven Architecture)是一種簡(jiǎn)單并很好確立的模型。

SEDA 本質(zhì)上是一個(gè)工作流過(guò)程,其中各個(gè)組件根據(jù)自身的處理情況發(fā)出事件去驅(qū)動(dòng)整個(gè)過(guò)程,而事件通常使用某種消息總線進(jìn)行傳輸。

Dawson 指出,SEDA 模型的一個(gè)重要問(wèn)題是事件的生存期很短,因而在會(huì)在傳輸或組件離線過(guò)程中丟失。因此與其讓系統(tǒng)采納最終一致性,不如實(shí)現(xiàn)一種 Dawson 所稱(chēng)的“期許一致性”(Hopeful Consistency)。

只要所有組件工作正常,系統(tǒng)就是一致的。一旦有組件崩潰,那么最終將會(huì)得到不一致的系統(tǒng),這時(shí)必須做手工恢復(fù)去回到一致性狀態(tài)。Dawson 稱(chēng)其為“面向?qū)嶓w的微服務(wù)”,并強(qiáng)烈建議不要采納這種架構(gòu)。

為重建一致性狀態(tài),Dawson 給出的最優(yōu)解決方案是將事件看作是一種數(shù)據(jù),并持久化事件流。這樣我們就可以在任一時(shí)刻重放(Replay)流以恢復(fù)狀態(tài),并且借助此得到真正的最終一致性系統(tǒng)。從中我們還可以得到其它一些優(yōu)點(diǎn),例如可以對(duì)同一事件流給出多個(gè)視圖。

從 Dawson 的經(jīng)驗(yàn)來(lái)看,盡管通常稱(chēng)持久化事件流為“事件溯源”,但是他堅(jiān)信這并非正確的,因?yàn)樗皇侨ブ亟ㄒ粋€(gè)實(shí)體的狀態(tài),而是對(duì)不受限實(shí)體集創(chuàng)建視圖。

鑒于此,他更愿意稱(chēng)其為“類(lèi)型流處理”(Style Stream Processing)。他認(rèn)為 Kafka 正是使用了這樣的架構(gòu)。Kafka 客戶(hù)按流的順序依次讀取事件,但在重放事件時(shí)可以從頭開(kāi)始,或是從所需的特定事件處開(kāi)始。

用 DDD 的術(shù)語(yǔ)解釋?zhuān)酆希╝ggregate)是 處于一致性范疇內(nèi)的一系列實(shí)體。通過(guò)對(duì)一個(gè)聚合的所有更改發(fā)出和持久化事件,并通過(guò)重放而獲取的同一事件而構(gòu)建同一聚合的狀態(tài),我們可以得到經(jīng)事件溯源的聚合根,Dawson 稱(chēng)其為“真實(shí)事件溯源”。

Daswon 指出,具有 獨(dú)立單一事件流 在重建聚合過(guò)程中是非常重要的。對(duì)于創(chuàng)建視圖等其它一些需求,必須要?jiǎng)?chuàng)建獨(dú)立的流。

為輔助構(gòu)建基于事件架構(gòu)模型的系統(tǒng),Dawson 創(chuàng)建了 Muon Stack 項(xiàng)目。

https://github.com/muoncore/stack-event

它是一系列面向消息和事件的軟件庫(kù)和服務(wù),用于構(gòu)建分布式系統(tǒng)。其中包括了一個(gè)事件流 API 客戶(hù)端,以及一個(gè)名為“Photon”的事件存儲(chǔ)。目前他正致力于構(gòu)建 Muon Stack 對(duì) Kafka 的接口。

英文原文傳送

https://www./news/2017/08/selecting-event-architecture

今日薦文

點(diǎn)擊下方圖片即可閱讀

沈劍聊微服務(wù):先做好你的服務(wù)拆分


以上
感謝閱讀  


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多