本書根據各種企業(yè)級真實場景總結,提出合理的設計思路和解決方案,從需求、問題、解決方案、原理、設計方法、落地方案多個角度,給出架構設計方法。
本書主要內容包括大型互聯網架構設計的四大原則、分布式微服務架構設計、登錄功能架構設計、用戶安全架構設計、系統(tǒng)日志架構設計、系統(tǒng)攻防架構設計、系統(tǒng)消息架構設計、監(jiān)控預警架構設計、關系型大數據架構設計、批處理調度架構設計、系統(tǒng)配置架構設計、企業(yè)級核心架構設計實戰(zhàn)等,詳細講解了各種場景的架構方案。
本書與任何編程語言無關,目的是提升讀者的設計思維、培養(yǎng)讀者的設計能力、開啟讀者的架構思維。同時,本書也是一本設計方案指南,開發(fā)人員、設計人員、架構人員均可參考本書,針對遇到的場景進行參考性設計。
尹洪亮,現任某大型互聯網公司架構師,51CTO、CSDN、網易云課堂、騰訊課堂認證講師,頭條付費專欄作者。
第1章如何規(guī)劃自己的架構師職業(yè)生涯
1.1 架構師與程序員的區(qū)別
1.2 如何打磨自己的架構能力
1.3 架構師的 12 項必備技能
1.4 寫給在校的大學生
1.5 寫給程序員同行
第2章大型互聯網架構設計的四大原則
2.1 大型互聯網架構高可用設計
2.1.1 高可用指標
2.1.2 冗余設計
2.1.3 負載均衡架構設計
2.1.4 DNS輪詢負載設計
2.1.5 兩地三中心容災設計
2.1.6 異地多活架構設計
2.1.7 MongoDB高可用架構
2.1.8 Redis高可用架構
2.1.9 Kafka高可用架構
2.1.10 數據庫高可用架構
2.1.11 高并發(fā)訪問限流設計
2.2 大型互聯網架構高伸縮設計
2.2.1 文件存儲伸縮設計
2.2.2 數據庫伸縮設計
2.3 大型互聯網架構高并發(fā)設計
2.3.1 多級緩存策略
2.3.2 異步化策略
2.3.3 讀寫分離策略
2.4 大型互聯網架構安全性設計
2.4.1 安全控制的整體性
2.4.2 應用系統(tǒng)安全性設計
2.4.3 數據安全性設計
2.5 章節(jié)練習
2.6 案例設計
第3章分布式微服務架構設計
3.1 單體架構
3.2 SOA架構
3.3 微服務架構
3.4 服務注冊與發(fā)現
3.5 客戶端負載均衡
3.6 熔斷機制
3.7 微服務網關
3.7.1 網關的原理
3.7.2 網關的功能
3.7.3 微服務網關與Nginx對比
3.7.4 正確的網關架構
3.8 配置中心
3.9 微服務監(jiān)控
3.10 分布式鏈路追蹤
3.11 大型互聯網微服務架構
3.12 微服務改造的六大原則
3.13 章節(jié)練習
3.14 案例設計
第4章登錄功能架構設計
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 集群/分布式架構基于Session的登錄設計
4.8.1 Session的工作原理
4.8.2 集群/分布式架構下的Session設計
4.9 企業(yè)級單點登錄設計
4.9.1 認識單點登錄
4.9.2 簡單綁定單點登錄設計
4.9.3 授權綁定單點登錄設計
4.10 OAuth 2.0認證授權設計
4.11 用戶掃碼登錄設計
4.12 章節(jié)練習
4.13 案例設計
第5章用戶安全架構設計
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用戶權限設計
5.7.1 RBAC權限模型
5.7.2 RBAC權限繼承
5.7.3 RBAC權限模型演進
5.8 互聯網權限架構設計
5.8.1 基于Token的訪問控制
5.8.2 SecretID和SecretKey模式
5.8.3 JWT模式
5.8.4 微服務模式下的Token權限設計
5.8.5 Token的延時與刷新
5.9 章節(jié)練習
5.10 案例設計
第6章系統(tǒng)日志架構設計
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 日志收集架構
6.8.1 日志收集架構的設計
6.8.2 Elastic Stack架構組件介紹
6.8.3 Elastic Stack架構模式
6.9 章節(jié)練習
6.10 案例設計
第7章 系統(tǒng)攻防架構設計
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)消息架構設計
8.1 4種短信通知設計
8.1.1 實時短信通知設計
8.1.2 準實時短信通知設計
8.1.3 批量短信通知設計
8.1.4 定時短信通知設計
8.2 郵件通知設計
8.3 站內信設計
8.4 App消息推送設計
8.5 章節(jié)練習
8.6 案例設計
第9章 監(jiān)控預警架構設計
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章 關系型大數據架構設計
10.1 海量數據處理的核心思想
10.2 大數據查詢設計
10.3 大數據導入設計
10.4 大數據導出設計
10.5 章節(jié)練習
10.6 案例設計
第11章 批處理調度架構設計
11.1 批處理調度并不是簡單的循環(huán)
11.2 單機批處理架構設計
11.2.1 調度與執(zhí)行分離設計
11.2.2 串行與并行設計
11.3 集群批處理架構設計
11.4 分布式批處理架構設計
11.5 流水線批處理架構設計
11.6 章節(jié)練習
11.7 案例設計
第12章 系統(tǒng)配置架構設計
12.1 配置存儲和加載策略設計
12.2 配置信息多級緩存設計
12.3 分布式架構參數配置設計
12.4 字典配置中心設計
12.5 SaaS化多租戶多應用配置化設計
12.6 章節(jié)練習
12.7 案例設計
第13章 企業(yè)級核心架構設計實戰(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)