本書根據(jù)各種企業(yè)級真實場景總結(jié),提出合理的設計思路和解決方案,從需求、問題、解決方案、原理、設計方法、落地方案多個角度,給出架構(gòu)設計方法。
本書主要內(nèi)容包括大型互聯(lián)網(wǎng)架構(gòu)設計的四大原則、分布式微服務架構(gòu)設計、登錄功能架構(gòu)設計、用戶安全架構(gòu)設計、系統(tǒng)日志架構(gòu)設計、系統(tǒng)攻防架構(gòu)設計、系統(tǒng)消息架構(gòu)設計、監(jiān)控預警架構(gòu)設計、關(guān)系型大數(shù)據(jù)架構(gòu)設計、批處理調(diào)度架構(gòu)設計、系統(tǒng)配置架構(gòu)設計、企業(yè)級核心架構(gòu)設計實戰(zhàn)等,詳細講解了各種場景的架構(gòu)方案。
本書與任何編程語言無關(guān),目的是提升讀者的設計思維、培養(yǎng)讀者的設計能力、開啟讀者的架構(gòu)思維。同時,本書也是一本設計方案指南,開發(fā)人員、設計人員、架構(gòu)人員均可參考本書,針對遇到的場景進行參考性設計。
尹洪亮,現(xiàn)任某大型互聯(lián)網(wǎng)公司架構(gòu)師,51CTO、CSDN、網(wǎng)易云課堂、騰訊課堂認證講師,頭條付費專欄作者。
第1章如何規(guī)劃自己的架構(gòu)師職業(yè)生涯
1.1 架構(gòu)師與程序員的區(qū)別
1.2 如何打磨自己的架構(gòu)能力
1.3 架構(gòu)師的 12 項必備技能
1.4 寫給在校的大學生
1.5 寫給程序員同行
第2章大型互聯(lián)網(wǎng)架構(gòu)設計的四大原則
2.1 大型互聯(lián)網(wǎng)架構(gòu)高可用設計
2.1.1 高可用指標
2.1.2 冗余設計
2.1.3 負載均衡架構(gòu)設計
2.1.4 DNS輪詢負載設計
2.1.5 兩地三中心容災設計
2.1.6 異地多活架構(gòu)設計
2.1.7 MongoDB高可用架構(gòu)
2.1.8 Redis高可用架構(gòu)
2.1.9 Kafka高可用架構(gòu)
2.1.10 數(shù)據(jù)庫高可用架構(gòu)
2.1.11 高并發(fā)訪問限流設計
2.2 大型互聯(lián)網(wǎng)架構(gòu)高伸縮設計
2.2.1 文件存儲伸縮設計
2.2.2 數(shù)據(jù)庫伸縮設計
2.3 大型互聯(lián)網(wǎng)架構(gòu)高并發(fā)設計
2.3.1 多級緩存策略
2.3.2 異步化策略
2.3.3 讀寫分離策略
2.4 大型互聯(lián)網(wǎng)架構(gòu)安全性設計
2.4.1 安全控制的整體性
2.4.2 應用系統(tǒng)安全性設計
2.4.3 數(shù)據(jù)安全性設計
2.5 章節(jié)練習
2.6 案例設計
第3章分布式微服務架構(gòu)設計
3.1 單體架構(gòu)
3.2 SOA架構(gòu)
3.3 微服務架構(gòu)
3.4 服務注冊與發(fā)現(xiàn)
3.5 客戶端負載均衡
3.6 熔斷機制
3.7 微服務網(wǎng)關(guān)
3.7.1 網(wǎng)關(guān)的原理
3.7.2 網(wǎng)關(guān)的功能
3.7.3 微服務網(wǎng)關(guān)與Nginx對比
3.7.4 正確的網(wǎng)關(guān)架構(gòu)
3.8 配置中心
3.9 微服務監(jiān)控
3.10 分布式鏈路追蹤
3.11 大型互聯(lián)網(wǎng)微服務架構(gòu)
3.12 微服務改造的六大原則
3.13 章節(jié)練習
3.14 案例設計
第4章登錄功能架構(gòu)設計
4.1 登錄設計的復雜性
4.2 多類型賬號密碼登錄設計
4.3 三類驗證碼登錄設計
4.3.1 手機驗證碼登錄注冊設計
4.3.2 動態(tài)令牌登錄設計
4.3.3 語音驗證碼登錄注冊設計
4.4 本機號碼一鍵登錄注冊設計
4.5 人臉/語音/指紋識別登錄設計
4.6 多端登錄設計
4.6.1 多端應用的開發(fā)模式
4.6.2 多端應用的會話保持
4.7 多設備登錄設計
4.8 集群/分布式架構(gòu)基于Session的登錄設計
4.8.1 Session的工作原理
4.8.2 集群/分布式架構(gòu)下的Session設計
4.9 企業(yè)級單點登錄設計
4.9.1 認識單點登錄
4.9.2 簡單綁定單點登錄設計
4.9.3 授權(quán)綁定單點登錄設計
4.10 OAuth 2.0認證授權(quán)設計
4.11 用戶掃碼登錄設計
4.12 章節(jié)練習
4.13 案例設計
第5章用戶安全架構(gòu)設計
5.1 安全設計無小事
5.2 主動與被動登錄踢出設計
5.3 5種密碼安全性設計
5.3.1 密碼復雜度設計
5.3.2 密碼安全檢查設計
5.3.3 密碼失效設計
5.3.4 賬戶鎖定設計
5.3.5 密碼傳輸和存儲設計
5.4 5種密碼找回設計
5.5 密碼修改設計
5.6 5種用戶注冊設計
5.6.1 開放式注冊、封閉式注冊和半封閉式注冊
5.6.2 手機驗證碼注冊
5.6.3 郵箱激活注冊
5.7 RBAC用戶權(quán)限設計
5.7.1 RBAC權(quán)限模型
5.7.2 RBAC權(quán)限繼承
5.7.3 RBAC權(quán)限模型演進
5.8 互聯(lián)網(wǎng)權(quán)限架構(gòu)設計
5.8.1 基于Token的訪問控制
5.8.2 SecretID和SecretKey模式
5.8.3 JWT模式
5.8.4 微服務模式下的Token權(quán)限設計
5.8.5 Token的延時與刷新
5.9 章節(jié)練習
5.10 案例設計
第6章系統(tǒng)日志架構(gòu)設計
6.1 日志的分類和用途
6.2 3種登錄日志設計
6.2.1 利用登錄日志進行安全檢測
6.2.2 利用登錄日志刻畫用戶
6.2.3 登錄日志客戶化
6.3 退出日志設計
6.4 4種操作軌跡設計
6.4.1 菜單操作日志設計
6.4.2 功能操作日志設計
6.4.3 流程操作日志設計
6.4.4 業(yè)務操作日志設計
6.5 接口日志設計
6.6 程序日志設計
6.7 日志存儲設計
6.8 日志收集架構(gòu)
6.8.1 日志收集架構(gòu)的設計
6.8.2 Elastic Stack架構(gòu)組件介紹
6.8.3 Elastic Stack架構(gòu)模式
6.9 章節(jié)練習
6.10 案例設計
第7章 系統(tǒng)攻防架構(gòu)設計
7.1 系統(tǒng)攻擊的種類和特點
7.2 短信/郵件防攻擊設計
7.3 兩種字符圖形驗證碼設計
7.4 提問式圖片驗證碼設計
7.5 行為交互驗證碼設計
7.5.1 拖曳式驗證碼
7.5.2 點選式驗證碼
7.5.3 行為交互驗證碼設計流程
7.6 分布式驗證碼設計
7.7 防接口重放攻擊設計
7.8 防暴力窮舉攻擊設計
7.9 防篡改攻擊設計
7.10 章節(jié)練習
7.11 案例設計
第8章 系統(tǒng)消息架構(gòu)設計
8.1 4種短信通知設計
8.1.1 實時短信通知設計
8.1.2 準實時短信通知設計
8.1.3 批量短信通知設計
8.1.4 定時短信通知設計
8.2 郵件通知設計
8.3 站內(nèi)信設計
8.4 App消息推送設計
8.5 章節(jié)練習
8.6 案例設計
第9章 監(jiān)控預警架構(gòu)設計
9.1 服務器監(jiān)控設計
9.2 業(yè)務監(jiān)控設計
9.3 程序日志監(jiān)控設計
9.4 主動上報監(jiān)控設計
9.5 被動掃描監(jiān)控設計
9.6 章節(jié)練習
9.7 案例設計
第10章 關(guān)系型大數(shù)據(jù)架構(gòu)設計
10.1 海量數(shù)據(jù)處理的核心思想
10.2 大數(shù)據(jù)查詢設計
10.3 大數(shù)據(jù)導入設計
10.4 大數(shù)據(jù)導出設計
10.5 章節(jié)練習
10.6 案例設計
第11章 批處理調(diào)度架構(gòu)設計
11.1 批處理調(diào)度并不是簡單的循環(huán)
11.2 單機批處理架構(gòu)設計
11.2.1 調(diào)度與執(zhí)行分離設計
11.2.2 串行與并行設計
11.3 集群批處理架構(gòu)設計
11.4 分布式批處理架構(gòu)設計
11.5 流水線批處理架構(gòu)設計
11.6 章節(jié)練習
11.7 案例設計
第12章 系統(tǒng)配置架構(gòu)設計
12.1 配置存儲和加載策略設計
12.2 配置信息多級緩存設計
12.3 分布式架構(gòu)參數(shù)配置設計
12.4 字典配置中心設計
12.5 SaaS化多租戶多應用配置化設計
12.6 章節(jié)練習
12.7 案例設計
第13章 企業(yè)級核心架構(gòu)設計實戰(zhàn)
13.1 阿里云/騰訊云消息系統(tǒng)核心設計實
13.2 支付寶/微信支付系統(tǒng)核心設計實戰(zhàn)
13.3 鷹眼業(yè)務監(jiān)控系統(tǒng)整體設計實戰(zhàn)
13.4 監(jiān)管批量信息報送系統(tǒng)核心設計實戰(zhàn)