您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關eBay如何通過事件溯源實現持續交付,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
eBay的持續交付團隊通過使用以事件為中心的方法構建了一個可以持續交付的編配器,具備故障彈性和伸縮性,以便處理eBay構建管道中不斷增加的負載。John Long和Nataraj Sundar在兩篇博文中描述了事件溯源的好處以及在實際應用程序開發當中所具備的優勢。
Long和Sundar都是eBay的員工,他們指出,事件溯源背后的想法在很多領域已經存在了很長一段時間。例如,在金融會計中,每個條目都以不可變的方式記錄下來,并且通過相加所有相關條目來計算當前余額。當發生錯誤時,追加新的補償條目,而不是擦除錯誤的條目。他們認為,事件溯源與開發管道中的代碼進度有著天然的相識點。
企業持續交付(ECD)實現了事件溯源。這是一個編配器,用于協調、定義和觀察部署管道,并被用在許多內部系統中。部署管道通過拉取請求、構建、測試和部署的方式來移動代碼。管道執行服務(PES)是ECD的一個組件,一種運行和跟蹤管道的服務,它負責將狀態報告給GitHub。這個組件使用Scala開發,并使用了actor模型框架Akka。
除了事件溯源的一般性好處之外,Long和Sundar還指出了他們在PES中使用事件溯源的三個主要原因:
?并發。在過去,同時從管道的不同部分收到的事件之間具有竟態條件,而以串行的方式處理每個事件可以更輕松地解決并發問題。
?調試和可追溯性。由于他們是個小團隊,同時要支持許多管道,因此能夠快速找到故障原因并修復它們對他們來說至關重要。
?清晰度和正確性。編配對于公司來說至關重要,并且可能會變得非常復雜,因此他們需要高質量和簡單且易于理解的代碼庫。將代碼拆分成幾個部分,記錄傳入的信息,計算最終模型并對模型變化做出反應,這種方式可以幫助他們實現上述的目的。
選擇事件溯源最大的原因是最后一點——清晰度和正確性。Long和Sundar認為,對于涉及時間和狀態的復雜系統,事件溯源是可行的解決方案。通過精心設計的模型,可以分別處理流程中的不同部分,從而使流程更易于理解。他們介紹了事件溯源的四個組件,每個組件都很容易理解,也很容易進行修改和測試。
?驗證傳入事件,根據需要創建和存儲相關內部事件。
?按事件插入的順序處理事件,并進行適當的視圖模型更新。
?在處理完事件之后持久化視圖,這樣在進行查詢時就不需要加載和重放所有事件。
?根據狀態變更做出響應,并在讀取模型發生更新時決定該做些什么,然后啟動新actor來執行操作。
到目前為止,他們的系統已經處理了超過220萬個事件,生成了大約200,000個運行視圖。Long和Sundar表示,事件溯源架構對于實現兼容和直觀的解決方案來說至關重要。
上述就是小編為大家分享的eBay如何通過事件溯源實現持續交付了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。