評:推薦作系統架構師的同窗能夠看一下。的確講了一些乾貨,但不少內容留於表面。對於中臺的定義和思考,建設中臺的方法以及阿里中間件有比較完整的描述。前端
阿里巴巴電商系統的架構經歷了煙囪式架構到分佈式架構再到共享式架構的轉變。#序言數據庫
2015年末,啓動阿里集團2018年中臺戰略,構建符合DT時代的更具創新性、靈活性的「大中臺、小前臺」組織機制和業務機制,即做爲前臺的一線業務會更敏捷、更快速適應瞬息萬變的市場,而中臺將集合整個集團的運營數據能力、產品技術能力,對各前臺業務造成強力支撐。#3緩存
「煙囪式」系統建設模式:廣泛的企業IT建設模式,基於業務需求建設系統。致使煙囪林立。#9性能優化
SOA理念最核心的價值:鬆耦合的服務帶來業務的複用,經過服務的編排助理業務的快速響應和創新。SOA架構的核心價值 —— 服務複用。#15架構
無論前端業務形態如何多樣,提供的服務都能很好地包含了核心服務,讓前端業務的交易信息和數據迴流到對應的服務中心。#16併發
服務最不須要「業務穩定」。一個服務若是一味追求功能的不變,必定程度上就是固步自封,逼其餘業務系統重複造輪子。#18框架
科學證實,人數是7我的的團隊協同效率是最高的。#23異步
微服務是SOA的一種演變後的形態,與SOA的方法和原理則沒有本質上的差異。#54分佈式
在阿里巴巴集團的中臺戰略中,共享服務中心是中臺架構的基石。#57微服務
共享服務中心的架構目的是經過業務拆分來下降系統的複雜度;經過服務共享來提供可重用性;經過服務化來達到業務支持的敏捷性;經過統一的數據架構來消除數據交互的屏障。因此,全部的原則和方法都是爲了這些目標服務的 —— 以終爲始。 #64
服務中心建設要考量的三個重要方面:設計(面向對象的分析和設計方法)、運營(完整的業務模型,要有數據運營和業務整合的價值)、工程(分佈式架構的優勢和引入的分佈式事務、問題排查等難題)。#64
1 高內聚,低耦合原則 #65
高內聚是從服務中心的業務界域來講的,在一個服務中心內的業務應該是相關性很高、依賴性很高的;而服務中心之間應該是業務隔離性比較大的,即追求儘量的低耦合。
2 數據完整性原則 #65
服務化架構一個很重要的業務價值就是數據模型統一。
3 業務可運營性原則 #65
服務中心首先是從業務出發,單純的技術層面抽象出來的服務框架通常不做爲一個可運營的服務中心。服務中心是承載業務邏輯、沉澱業務數據、產生業務價值的業務單元。
4 漸進性的建設原則 #66
服務化架構原本就是一種敏捷的事件,推薦小步快跑的方式逐步推動,不是轟轟烈烈的推翻重來。
數據庫是最容易產生性能瓶頸的服務組件。#67
採用讀寫分離的方式,拓展了數據庫對數據讀的處理能力,而且單表的數據量是有限的,達到必定數量後數據庫性能會下滑。#68
當單表數據量過大時,採用水平分區的方式對數據進行拆分。確保單個數據庫中保存的數據量在單機數據庫能提供良好的讀寫性能範圍以內。但對於跨庫的表join、事務操做、數據統計、排序等的支持變困難了。#68
數據儘量平均拆分
儘可能減小事務邊界
異構索引表儘可能下降全表掃描頻率(binlog)
將多條件頻繁查詢引入搜索引擎平臺
業務流程異步化
阿里巴巴內部試用消息中間件的方式是實現了業務異步化。#90
數據庫事務異步化
通俗來說,就是將大事務拆分紅小事務,下降數據庫的資源被長時間事務鎖佔用而形成的數據庫瓶頸。#92
事務與柔性事務
一個專業的互聯網平臺必定首先考慮的是系統服務能力的高可用,由於服務不可用意味着就是商業損失。#99
柔性事務如何解決分佈式事務問題: #103
引入日誌和補償機制
可靠消息傳遞
實現無鎖
在淘寶平臺中,被普遍用來解決分佈式事務場景的方案就是基於消息分佈式事務,經過MQ事務消息功能特性達到分佈式事務的最終一致。#107
絕大多數場景下,咱們都不須要用兩階段提交這樣低效的方式來解決分佈式事務問題。爲了充分發揮柔性事務框架性能的優點並實現業務的最終一致,須要採納如下配合方案:#123
應用程序必定要作到冪等實現,特別是對數據庫進行數據修改操做時;
遠程模塊之間用乙部消息來驅動,異步消息還能夠起到檢查點的做用;
實現分佈式服務追蹤系統的主要思路是經過服務調用鏈各服務處理節點生成響應的日誌信息,經過統一請求中生成的日誌具備同一ID將不一樣系統或服務「孤立的」日誌串在一塊兒,重組還原出更多有價值的信息。#138
TraceID,通常包含:IP地址,建立時間,順序數。#138
RCPID,用於標識日誌埋點順序和服務調用間的嵌套關係。#139
埋點日誌中會包含:
TraceID、RCPID、開始時間、調用類型,對端IP
處理耗時
處理結果
數據傳輸量:請求大小 / 響應大小
限流和降級這兩個能力是平臺在服務化體系下還能保持穩定運行所必須具有的。#158
共享服務平臺的建設思路借鑑了SOA和API管理的思想。#188
業務中臺與前端應用協做
業務中臺是前端應用所需服務的提供者,前端應用是業務中臺服務的消費者,同時前端應用對於業務中臺也是需求的提供者。#196
業務中臺的工做職能之一是保障中臺業務核心穩固以及保持業務能力的通用性,前端應用則每每從項目實施成本和週期最快的角度來講,對業務中臺提供的能力天然是越多越好,又或者對於某一業務的理解,業務中臺方和前端應用放也存在差別。#197
出現中臺與前端應用的爭執時,通常按照業務負責的層級關係一次升級,每一層都有對該部分業務負責的業務架構師做爲團隊或部門的負責人。#197
若是發現有些前端應用中對於業務中臺的需求確實是不一樣於前端應用共性的需求時,這樣的需求就很適合沉澱到共享服務體系中,稱爲某服務中心新增的功能。#198
在進行業務沉澱到中臺的工程中,採用共建的模式,業務中臺和前端應用方各派出人員共同建設一個團隊,一塊兒負責該業務功能的實現以及到中臺能力的沉澱。#198
業務中臺績效考覈 #198
1 服務穩定是重中之重
2 業務創新推進業務發展
3 服務接入量是衡量服務價值的重要考覈
4 客戶滿意度促動服務的提高
在此我向你們推薦一個架構學習交流羣。交流學習羣號: 744642380, 裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良