精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

設(shè)計事件驅(qū)動的微服務(wù)

責(zé)任編輯:editor004

作者:Jan Stenberg

2017-11-16 11:36:37

摘自:INFOQ

事件驅(qū)動的微服務(wù)是一個未受到應(yīng)有探討的領(lǐng)域,在近日舉行的μCon倫敦2017微服務(wù)大會上,Greg Young表達(dá)了這樣的觀點。把事件的相關(guān)性標(biāo)識設(shè)置為引發(fā)該事件的事件的相關(guān)性標(biāo)識

事件驅(qū)動的微服務(wù)是一個未受到應(yīng)有探討的領(lǐng)域,在近日舉行的μCon倫敦2017微服務(wù)大會上,Greg Young表達(dá)了這樣的觀點。同時,他還特別強調(diào),不應(yīng)該對所有的微服務(wù)都使用事件驅(qū)動模式。相反,他建議逐個服務(wù)進(jìn)行考察,并將事件驅(qū)動模式運用到真正能從中受益的服務(wù)上。

Greg Young是一名事件驅(qū)動專家,同時也是Event Store的首席架構(gòu)師。他認(rèn)為,在創(chuàng)建微服務(wù)系統(tǒng)時需要考慮的一個重要的設(shè)計問題是,應(yīng)該每個微服務(wù)使用一個數(shù)據(jù)庫,還是所有的微服務(wù)都訪問同一個數(shù)據(jù)庫。在存儲狀態(tài)時,比如使用一個關(guān)系型數(shù)據(jù)庫,使用一個或多個數(shù)據(jù)庫并沒有很大的不同,但是,他指出,在使用“事件庫(event source)”時,多個服務(wù)使用一個事件庫比一個服務(wù)一個事件庫要簡單許多。原因是事件排序,他還提及了Leslie Lamport及他的論文“分布式系統(tǒng)中的時間、時鐘和事件順序”。

在每個服務(wù)一個事件庫的情況下,當(dāng)服務(wù)從兩個或兩個以上的事件庫中讀取事件時,既不能保證所有的事件被以和創(chuàng)建順序相同的順序讀取,也不能保證順序和事件重放時相同。在多個服務(wù)使用一個事件庫的情況下,順序就有保證了,因為順序是確定的。這就是“線性化(linearizing)”。該技術(shù)不能讓系統(tǒng)更具擴(kuò)展性,但卻可以讓系統(tǒng)更容易推斷,Young認(rèn)為,在大多數(shù)情況下,這都比將來可能出現(xiàn)的可擴(kuò)展性問題更重要。

Young指出,對于大多數(shù)系統(tǒng)而言,線性化都是有效的,即使是在每秒處理超過10K事件的時候。對于真正的高吞吐量,也許高達(dá)每秒250K事件,尋求另外一種設(shè)計也許就是好主意了。

由于操作會跨多個微服務(wù),所以相關(guān)性和因果關(guān)系標(biāo)識可以帶來極大的好處。當(dāng)一個服務(wù)引發(fā)了一個其他服務(wù)監(jiān)聽的事件,它們就會引發(fā)自己的事件,這會使系統(tǒng)產(chǎn)生一個難以追蹤的級聯(lián)事件流。但是,通過向事件添加三個標(biāo)識(uuid)——消息標(biāo)識、相關(guān)性標(biāo)識和因果關(guān)系標(biāo)識,就可以克服這個問題。

事件創(chuàng)建時會獲得唯一的消息標(biāo)識。把事件的相關(guān)性標(biāo)識設(shè)置為引發(fā)該事件的事件的相關(guān)性標(biāo)識,事件流中相關(guān)性標(biāo)識相同的所有事件都是有著相同的根源,把因果關(guān)系標(biāo)識設(shè)置為引發(fā)該事件的事件的消息標(biāo)識,就可以找出事件發(fā)生的順序。

在理解和查找錯誤出現(xiàn)的原因時,按照正確的順序查看整體消息流的能力非常有用。這項技術(shù)也可以用于非事件驅(qū)動的系統(tǒng)中。通過增加一個審計服務(wù),監(jiān)聽所有服務(wù)引發(fā)的所有事件并存儲它們,可以獲得同樣的可能性。

在演講中,Young還討論了其他主題,包括內(nèi)存服務(wù)、復(fù)制模型及地域分布。

按照計劃,明年的大會將于2018年11月5號到6號舉行。

查看英文原文:Designing Event Sourced Microservices

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2025 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 通州区| 通榆县| 格尔木市| 神池县| 花莲县| 通化市| 建水县| 离岛区| 灵丘县| 阿坝| 鄂温| 富源县| 苍溪县| 璧山县| 托里县| 西安市| 枣庄市| 邻水| 镶黄旗| 英德市| 宽甸| 咸宁市| 扎囊县| 兰州市| 松江区| 湛江市| 镇巴县| 南皮县| 鄂托克旗| 星子县| 普陀区| 棋牌| 印江| 贵港市| 资兴市| 柞水县| 湖口县| 闻喜县| 阳山县| 九寨沟县| 长子县|