Java項目實踐——深入理解大型互聯網企業通用技術(架構篇)
廖誌偉
- 出版商: 清華大學
- 出版日期: 2026-06-01
- 售價: $714
- 語言: 簡體中文
- 頁數: 443
- ISBN: 730271634X
- ISBN-13: 9787302716341
-
相關分類:
Domain-Driven Design
下單後立即進貨 (約4週~6週)
商品描述
"本書以實踐項目架構為核心理念,系統性地圍繞技術要點歸納整合理論知識,將諸多抽象且概念化的知識點以通俗易懂的方式予以解釋,即便是互聯網領域的新手亦能輕松領會,提升讀者的項目架構經驗,拓展其技術視野及廣度。 全書共8章,第1章架構理論基礎,第2章高並發架構,第3章高性能架構,第4章高可用性與高可靠性,第5章分布式架構,第6章微服務架構,第7章架構安全,第8章架構落地。本書圖文並茂,兼具實用性與系統性,深度與廣度並重,輔助讀者理解系統架構中晦澀難懂的理論知識,助力讀者掌握書中的重點與難點。 本書適宜具備一定Java開發經驗或系統架構搭建經驗的讀者閱讀,其中架構設計的知識點對於資深開發者頗具參考價值,亦可作為培訓機構相關專業的教學參考資料。 "
作者簡介
廖誌偉,Java資深開發工程師、Java領域優質創作者、CSDN博客專家、51CTO專家博主、幕後大佬社區創始人等頭銜。擁有多年一線研發和團隊管理經驗,研究過主流框架的底層源碼(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper),消息中間件底層架構原理(RabbitMQ、RocketMQ、Kafka)、Redis緩存、MySQL關系型數據庫、 ElasticSearch全文搜索、MongoDB非關系型數據庫、Apache ShardingSphere分庫分表讀寫分離、設計模式、領域驅動DDD。
目錄大綱
目錄
本書配套資源
第1章架構理論
1.1架構基礎
1.1.1架構定義
1.1.2核心要素
1.1.3架構本質
1.1.4歷史背景
1.1.5不合理架構
1.1.6架構師的能力
1.1.7風格與模式
1.2架構設計
1.2.1架構考量
1.2.2設計目的
1.2.3設計原則
1.2.4設計流程
1.2.5設計決策
1.3架構分類
1.3.1業務架構
1.3.2應用架構
1.3.3技術架構
1.3.4代碼架構
1.3.5部署架構
1.4架構風格
1.4.1分層架構風格
1.4.2基於組件的架構風格
1.4.3面向服務的架構風格
1.4.4分布式系統架構風格
1.4.5消息總線架構風格
1.4.6以數據為中心的架構風格
1.5網站架構演進
1.5.1單體架構
1.5.2多應用服務器架構
1.5.3多應用服務器集群式微服務架構
1.5.4多應用服務器集群式微服務中臺架構
1.5.5雲原生高可用微服務架構
第2章高並發架構
2.1並發基礎知識
2.1.1並發編程的重要性
2.1.2進程和線程的區別
2.1.3進程間通信方式
2.1.4線程狀態
2.1.5守護線程
2.1.6協程
2.1.7並發並行
2.1.8CPU核心數和線程數的關系
2.1.9CPU緩存的作用
2.1.10多核CPU緩存架構中的數據訪問流程
2.1.11偽共享如何避免
2.1.12死鎖
2.1.13懶漢和餓漢式單例模式
2.2緩存一致性協議
2.2.1高速緩存
2.2.2執行計算的流程
2.2.3緩存一致性協議MESI
2.2.4多核緩存協同操作
2.2.5緩存行偽共享
2.2.6Store Buffers
2.2.7硬件內存模型
2.3JMM、Volatile、CAS和ABA
2.3.1JMM
2.3.2Volatile
2.3.3CAS
2.3.4ABA問題
2.3.5原子操作類
2.4並發集合
2.4.1CopyOnWriteArrayList
2.4.2CopyOnWriteArraySet
2.4.3ConcurrentHashMap
2.4.4ConcurrentLinkedQueue
2.5阻塞隊列
2.5.1阻塞隊列簡介
2.5.2ArrayBlockingQueue
2.5.3LinkedBlockingQueue
2.5.4SynchronousQueue
2.5.5DelayQueue
2.6AQS
2.6.1ReentrantLock
2.6.2Semaphore、CountDownLatch和CyclicBarrier
2.6.3ReentrantReadWriteLock
2.7ThreadLocal
2.8Synchronized
2.8.1使用方式
2.8.2對象頭與Mark Word
2.8.3底層原理
2.8.4對象從無鎖到偏向鎖轉化的過程
2.8.5輕量級鎖升級過程
2.8.6自旋鎖
2.8.7重量級鎖
2.9高並發下的緩存
2.9.1多級緩存
2.9.2網頁詳情頁性能優化
2.10高並發下的讀寫
2.10.1高並發讀系統
2.10.2拼多多的商品搜索與百度搜索引擎
2.10.3高並發寫系統
2.10.4高並發挑戰
2.10.5支付系統和紅包系統
2.10.6高並發讀策略
2.10.7高並發寫方案
2.10.8讀寫鎖
2.11限流
2.11.1限流算法
2.11.2同一IP地址請求限流
2.11.3設置白名單
2.11.4網關校驗
2.11.5同一用戶請求限流
2.11.6應用服務限流
第3章高性能架構
3.1線程池
3.1.1線程池執行任務的流程
3.1.2線程池狀態和工作線程數量
3.1.3不建議使用stop()方法停止線程
3.1.4線程池核心方法
3.1.5線程池回收機制
3.1.6線程池為什麼使用阻塞隊列
3.1.7設置線程池的核心線程數和最大線程數
3.1.8並行實現歸並排序
3.2緩存
3.2.1Redis事務
3.2.2Pipeline功能
3.2.3緩存的數據一致性
3.2.4HyperLogLog
3.2.5緩存更新設計模式
3.2.6開發規範與性能優化
3.2.7Redis Stream
3.2.8版本變化
3.3海量數據處理
3.3.1存儲系統技術選型
3.3.2業務系統如何選擇合適的存儲產品
3.3.3數據量級與存儲挑戰
3.3.4海量數據查詢的挑戰
3.3.5億級數據導入優化
3.4數據同步
3.4.1實現MySQL到Redis的同步
3.4.2Canal
3.4.3跨系統實時數據同步
3.4.4不停機更換數據庫
3.4.5數據庫切換過程中實現比對和補償程序
3.4.6安全地實現數據備份和恢復
3.5JVM
3.5.1JVM調優工具
3.5.2Java診斷工具Arthas
3.5.3ZGC垃圾回收器
第4章高可用與高可靠
4.1數據庫
4.1.1問題與故障分析
4.1.2大規模場景下小概率事件成為常態
4.1.3數據庫架構演進
4.1.4隱患運營運維
4.1.5指標建設
4.1.6運維周報
4.1.7模擬數據庫中主庫和從庫的各種故障場景
4.1.8預案編排服務
4.1.9安裝配置MHA
4.2Redis
4.2.1Redis集群原理
4.2.2集群安裝與配置
4.3Nacos
4.3.1Nacos高可用集群底層技術實現
4.3.2數據同步機制
4.3.3集群高可用
4.3.4數據庫高可用
4.3.5健康檢查與自動剔除機制
4.3.6讀寫分離與COW技術實現
4.3.7動態配置與熱更新機制
4.3.8輕量級通信協議應用
4.3.9安裝配置Nacos集群
4.4Kafka
4.4.1Kafka的Log日誌梳理
4.4.2Kafka生產調優實踐
4.4.3Kafka與ZooKeeper元數據管理及選舉機制
4.5Elasticsearch
4.5.1Elasticsearch集群架構
4.5.2Elasticsearch 要點及優化
4.5.3讀寫性能調優
4.5.4JIT
4.6性能測試
4.6.1性能測試流程
4.6.2性能測試工具
第5章分布式架構
5.1網絡通信
5.1.1計算機網絡
5.1.2計算機網絡體系結構及其協議模型
5.1.3地址和端口號
5.1.4TCP特性
5.1.5Wireshark的應用與網絡協議
5.1.6UDP與相關協議概述
5.2網絡編程
5.2.1Socket編程
5.2.2短連接與長連接的區分及應用場景
5.2.3BIO編程模型及其局限性
5.2.4NIO編程模型及其優勢
5.2.5Reactor模式
5.2.6同步與異步、阻塞與非阻塞
5.2.7I/O模型
5.2.8epoll的原理和流程
5.3多數據源管理
5.3.1基於Spring的AbstractRoutingDataSource方案
5.3.2基於MyBatis的多SqlSessionFactory方案
5.3.3基於dynamicdatasource框架的多數據源管理方案
5.4分布式事務
5.4.1兩階段提交
5.4.2JTA/XA規範實現
5.4.3Seata AT模式實現
5.4.4TCC實現
5.5分布式鎖
5.5.1應用場景
5.5.2Redis分布式鎖的實現
5.5.3Redisson原理
5.6分布式集群部署
5.6.1選配
5.6.2集群部署
第6章微服務架構
6.1微服務架構的問題與挑戰及其背景
6.1.1微服務架構的問題
6.1.2DDD領域驅動方法論與微服務架構
6.1.3分布式設計中的問題及解決方案
6.1.4微服務架構對運維和團隊的要求
6.1.5微服務架構中的團隊協作問題
6.1.6微服務的現狀和實施建議
6.1.7微服務改造的註意事項
6.1.8決策考量
6.1.9全面考量
6.2微服務架構演進
6.3拆分還是整合
6.3.1微服務的定義與優勢
6.3.2微服務的核心價值
6.3.3為什麼害怕微服務
6.3.4微服務架構復雜性
6.3.5微服務架構與單體架構的對比
6.3.6混合模型的優勢
6.3.7架構設計原則
6.4微服務拆分
6.4.1微服務拆分原則
6.4.2微服務拆分策略
第7章架構安全
7.1安全問題
7.1.1身份認證
7.1.2加密通信
7.1.3驗證碼技術
7.1.4防禦SQL註入、XSS和CSRF攻擊
7.1.5防禦惡意軟件和SOC攻擊
7.1.6防禦網絡釣魚和中間人攻擊
7.1.7防禦DDoS攻擊和緩沖區溢出攻擊
7.1.8防禦文件上傳漏洞
7.1.9防禦目錄遍歷漏洞
7.1.10後門攻擊
7.1.11社會工程學攻擊
7.1.12DNS欺騙攻擊
7.1.13DoS攻擊防護
7.1.14IP欺騙攻擊與ARP欺騙攻擊防護
7.1.15網絡嗅探攻擊防護
7.1.16防止暴力破解
7.1.17防止掛馬攻擊
7.1.18防止釣魚攻擊
7.1.19防止端口掃描攻擊
7.1.20防止網站偽造攻擊
7.1.21防範緩存投毒攻擊
7.1.22防範會話劫持攻擊
7.1.23防範網絡密碼劫持攻擊
7.1.24防範路由器漏洞攻擊
7.1.25防範系統漏洞攻擊
7.1.26防範網絡拓撲透視攻擊
7.1.27防範網絡重定向攻擊
7.2雲服務安全
7.2.1雲服務費用管理與安全使用
7.2.2CDN使用與網站減速器推薦及成本與風險控制
7.2.3雲服務安全防護措施
7.2.4應對網絡攻擊的策略
7.3系統安全
7.3.1可監控
7.3.2灰度發布
7.3.3回滾策略
7.4部署安全策略
7.4.1多層次防護體系
7.4.2數據庫安全
7.4.3鎖機制
7.4.4監控和響應機制
7.4.5密碼和訪問策略
第8章架構落地
8.1業務邏輯
8.1.1活動策劃與目標設定
8.1.2紅包類型與發放機制
8.1.3用戶參與流程
8.1.4活動規則與限制
8.1.5數據分析與效果評估
8.1.6營銷推廣與用戶互動
8.1.7風險管理與應急預案
8.1.8持續優化與疊代
8.2紅包雨算法
8.2.1二倍均值法
8.2.2線段切割法
8.3技術難點分析
8.3.1技術選型考慮因素
8.3.2紅包推送技術
8.3.3並發性能
8.3.4安全問題
8.3.5核心功能實現
8.3.6性能優化
8.3.7架構重構升級
8.3.8本地壓測
8.4實踐經驗
8.4.1思從深而行從簡
8.4.2不要過度實現
8.4.3故障隱患無法徹底消滅
8.4.4用戶會怎麼做
8.4.5設計兩次
8.4.6別怕搞砸
8.4.7慎重
8.4.8發現設計中的不足
8.4.9讓“屎山”代碼腐化得慢些
8.4.10對架構的理解







