架構概論
- Reliable Scalable Distributed(可靠的、可擴充的、分布式的),高并發,可靠性,性能
-
- Distributed Middleware(分布式中間件)
- Micro Service(微服務)
- DevOps(開發運維一體化),Docker,K8s,CI/CD
- Service Mesh,解決性能問題,每一個實體節點上有一個代理節點,節點與節點之間通信,代理節點完成末端的統一接口,這樣就可以讓我們的叢集網絡通信、開發成本降低
- AIOps(人工智能運維)
-
- ChatOps(聊天室運維)
- Serviceless(無服務化)
頂層設計
- 按需、預期未來,規劃企業架構
- 業務全局出發,制定可落地的架構方案
- 技術選型、難題解決規劃
- 方案與代碼,廣度與深度
- 技術+管理(人,資源,技術)
核心需求
- 分布式、高并發、高性能、高可用、可擴充、松耦合、高内聚、可複用、邊界、安全、成本、規模等等
- 服務、緩存、消息、搜尋、排程、任務、資料、監控、配置、網關等等
- Paxos、CAP、BASE、ACID、raft、rpc、Reactor、SLA、SLB等等
關鍵詞彙
- 緩沖 Buffer:解決上下遊速度不比對的問題,消息隊列、批處理都屬于 Buffer
- 緩存 Cache:解決 I/O 性能問題,在記憶體中存儲熱點資料,提升慢速磁盤 I/O 和程式使用的過程,PageCache、記憶體到 CPU 中的三級緩存、Redis、本地緩存等都屬于 Cache
- 複用 Pool:降低複雜度,提升性能,連接配接池、線程池、記憶體池、對象池都屬于 Pool
- 分治 Sharding:分而治之,單機、叢集都适用,降低時間複雜度
- 親密(粘性)sticky:讓某一個線程親密到某一顆 CPU上,将相同 id 的商品路由到一台機器上,或者是将相同 ip 位址/相同 session 在負載均衡時負載到一台機器上,這樣可以減少資源的重複配置設定,ThreadLocal、資料路由等都屬于 sticky
- 權衡 Balance or trade-off:技術選型,在技術之間做一個均衡
喝啤酒理論:假設你住在24層,在1層有12瓶啤酒,現在你想喝啤酒,但是有一個要求,你必須把啤酒從1層帶到24層去喝,你可以有兩種選擇:一種是每次拿1瓶回去喝,另一種是拿個箱子把12瓶酒全部裝回去喝。很顯然,第二種方式是更優的,它相比第一種方式,減少了來回跑動所付出的代價。這種理論實際上就展現了緩沖的概念。
技術詞彙:
- QPS:Queries Per Second(2/8 定理:0.8并發量/0.2天秒)
- TPS:Transactions Per Second
- RT:Response-time
- PV:Page View
- UV:Unique Visitor
- 并發數:同時通路伺服器站點的連接配接數
- 線程數:((挂起時間+運作時間)/ 運作時間 )* CPU 2倍(狀态(挂起,運作)->時間)
各種中間件的性能: https://help.aliyun.com/
書籍推薦
1、大型網站技術架構:核心原理與案例分析
2、分布式服務架構原理與實踐
3、網際網路創業核心技術:建構可伸縮的web應用
4、高擴充性網站的50條原則
5、架構即未來:現代企業可擴充的Web架構、流程群組織
6、系統架構:複雜系統的産品設計與開發
7、Java性能優化權威指南
8、大規模分布式存儲系統:原了解析與架構實戰
9、大規模分布式系統架構與設計實戰
10、企業IT架構轉型之道:阿裡巴巴中台戰略思想與架構實戰
11、盡在雙11:阿裡巴巴技術演進與超越
12、大型網站系統與Java中間件實踐
13、架構探險—從零開始寫Java Web架構
14、架構探險:從零開始寫分布式服務架構
15、軟體架構師的12項修煉
16、Web資訊架構設計大型網站
17、深入分析Java Web技術内幕(修訂版)
18、實用負載均衡技術:網站性能優化攻略
19、ZeroC Ice權威指南
20、架構之美
從過去到未來
- 從web server到web container
- Servlet從NIO到WebSocket
- 同步到異步
AFK拆分原則
- 前後端分離原則
- 服務無狀态原則
- 通信無狀态原則