摘要: 前陣子從支付寶轉賬1萬塊錢到余額寶,這是日常生活的一件普通小事,但作為互聯網研發人員的職業病,我就思考支付寶扣除1萬之后,如果系統掛掉怎么辦,這時余額寶賬戶并沒有增加1萬,數據就會出現不一致狀況了。上述場景在各個類型的系統中都能找到相似影子,比如在電商系統中,當有用戶下單后,除了在訂單表插入一條記錄外,對應商品表的這個商品數量必須減1吧,怎么保證?!在搜索廣告系統中,當用戶點擊某廣告后,除了在點擊... 閱讀全文
少年阿賓那些青春的歲月 |
2017年12月31日 #
摘要: 前陣子從支付寶轉賬1萬塊錢到余額寶,這是日常生活的一件普通小事,但作為互聯網研發人員的職業病,我就思考支付寶扣除1萬之后,如果系統掛掉怎么辦,這時余額寶賬戶并沒有增加1萬,數據就會出現不一致狀況了。上述場景在各個類型的系統中都能找到相似影子,比如在電商系統中,當有用戶下單后,除了在訂單表插入一條記錄外,對應商品表的這個商品數量必須減1吧,怎么保證?!在搜索廣告系統中,當用戶點擊某廣告后,除了在點擊... 閱讀全文
微服務架構采用Scale Cube方法設計應用架構,將應用服務按功能拆分成一組相互協作的服務。每個服務負責一組特定、相關的功能。每個服務可以有自己獨立的數據庫,從而保證與其他服務解耦。 微服務優點 1、通過分解巨大單體式應用為多個服務方法解決了復雜性問題,每個微服務相對較小 2、每個單體應用不局限于固定的技術棧,開發者可以自由選擇開發技術,提供API服務。 3、每個微服務獨立的開發,部署 4、單一職責功能,每個服務都很簡單,只關注于一個業務功能 5、易于規模化開發,多個開發團隊可以并行開發,每個團隊負責一項服務 6、改善故障隔離。一個服務宕機不會影響其他的服務 微服務缺點: 1.開發者需要應對創建分布式系統所產生的額外的復雜因素 l 目前的IDE主要面對的是單體工程程序,無法顯示支持分布式應用的開發 l 測試工作更加困難 l 需要采用服務間的通訊機制 l 很難在不采用分布式事務的情況下跨服務實現功能 l 跨服務實現要求功能要求團隊之間的緊密協作 2.部署復雜 3.內存占用量更高
|