●章分布式繫統介紹
1.1初識分布式繫統
1.1.1分布式繫統的定義
1.1.2分布式繫統的意義
1.2分布式繫統的基礎知識
1.2.1組成計算機的5要素
1.2.2線程與進程的執行模式
1.2.3網絡通信基礎知識
1.2.4如何把應用從單機擴展到分布式
1.2.5分布式繫統的難點
第2章大型網站及其架構演進過程
2.1什麼是大型網站
2.2大型網站的架構演進
2.2.1用JAVA技術和單機來構建的網站
2.2.2從一個單機的交易網站說起
2.2.3單機負載告警,數據庫與應用分離
2.2.4應用服務器負載告警,如何讓應用服務器走向集群
2.2.5數據讀壓力變大,讀寫分離吧
2.2.6彌補關繫型數據庫的不足,引入分布式存儲繫統
2.2.7讀寫分離後,數據庫又遇到瓶頸
2.2.8數據庫問題解決後,應用面對的新挑戰
2.2.9初識消息中間件
2.2.10總結
第3章構建JAVA中間件
3.1JAVA中間件的定義
3.2構建JAVA中間件的基礎知識
3.2.1跨平臺的JAVA運行環境--JVM
3.2.2垃圾回收與內存堆布局
3.2.3JAVA並發編程的類、接口和方法
3.2.4動態代理
3.2.5反射
3.2.6網絡通信實現選擇
3.3分布式繫統中的JAVA中間件
第4章服務框架
4.1網站功能持續豐富後的困境與應對
4.2服務框架的設計與實現
4.2.1應用從集中式走向分布式所遇到的問題
4.2.2透過示例看服務框架原型
4.2.3服務調用端的設計與實現
4.2.4服務提供端的設計與實現
4.2.5服務升級
4.3實戰中的優化
4.4為服務化護航的服務治理
4.5服務框架與ESB的對比
4.6總結
第5章數據訪問層
5.1數據庫從單機到分布式的挑戰和應對
5.1.1從應用使用單機數據庫開始
5.1.2數據庫垂直/水平拆分的困難
5.1.3單機變為多機後,事務如何處理
5.1.4多機的SEQUENCE問題與處理
5.1.5應對多機的數據查詢
5.2數據訪問層的設計與實現
5.2.1如何對外提供數據訪問層的功能
5.2.2按照數據層流程的順序看數據層設計
5.2.3獨立部署的數據訪問層實現方式
5.2.4讀寫分離的挑戰和應對
5.3總結
第6章消息中間件
6.1消息中間件的價值
6.1.1消息中間件的定義
6.1.2透過示例看消息中間件對應用的解耦
6.2互聯網時代的消息中間件
6.2.1如何解決消息發送一致性
6.2.2如何解決消息中間件與使用者的強依賴問題
6.2.3消息模型對消息接收的影響
6.2.4消息訂閱者訂閱消息的方式
6.2.5保證消息可靠性的做法
6.2.6訂閱者視角的消息重復的產生和應對
6.2.7消息投遞的其他屬性支持
6.2.8保證順序的消息隊列的設計
6.2.9PUSH和PULL方式的對比
第7章軟負載中心與集中配置管理
7.1初識軟負載中心
7.2軟負載中心的結構
7.3內容聚合功能的設計
7.4解決服務上下線的感知
7.5軟負載中心的數據分發的特點和設計
7.5.1數據分發與消息訂閱的區別
7.5.2提升數據分發性能需要注意的問題
7.6針對服務化的特性支持
7.6.1軟負載數據分組
7.6.2提供自動感知以外的上下線開關
7.6.3維護管理路由規則
7.7從單機到集群
7.7.1數據統一管理方案
7.7.2數據對等管理方案
7.8集中配置管理中心
7.8.1客戶端實現和容災策略
7.8.2服務端實現和容災策略
7.8.3數據庫策略
第8章構建大型網站的其他要素
8.1加速靜態內容訪問速度的CDN
8.2大型網站的存儲支持
8.2.1分布式文件繫統
8.2.2NOSQL
8.2.3緩存繫統
8.3搜索繫統
8.3.1爬蟲問題
8.3.2倒排索引
8.3.3查詢預處理
8.3.4相關度計算
8.4數據計算支撐
8.5發布繫統
8.6應用監控繫統
8.7依賴管理繫統
8.8多機房問題分析
8.9繫統容量規劃
8.10內部私有雲
後記
內容簡介
曾憲傑編著的《大型網站繫統與Java中間件實踐》圍繞大型網站和支撐大型網站架構的Java中間件的實踐展開介紹。從分布式繫統的知識切入,讓讀者對分布式繫統有基本的了解;然後介紹大型網站隨著數據量、訪問量增長而發生的架構變遷;接著講述構建Java中間件的相關知識;之後的幾章都是根據筆者的經驗來介紹支撐大型網站架構的Java中間件繫統的設計和實踐。希望讀者通過本書可以了解大型網站架構變遷過程中的較為通用的問題和解法,並了解構建支撐大型網站的Java中間件的實踐經驗。
對於有一定網站開發、設計經驗,並想了解大型網站架構和支撐這種架構的繫統的開發、測試等的相關工程人員,本書有很大的參考意義;對於沒有網站開發設計經驗的人員,通過本書也能宏觀了解大型網站的架構及相關問題的解決思路和方案。