《億級流量網站架構核心技術》目錄一覽

本書暫定名稱爲《億級流量網站架構核心技術——跟開濤學搭建高可用高併發系統》,若有好的書名建議歡迎留言,必當重謝。內容已交由出版社編輯,相信很快就會和你們見面。主要內容結構和目錄以下所示:html




  

 

 

第一部分概述

高併發原則前端

無狀態mysql

拆分nginx

服務化web

消息隊列redis

數據異構算法

緩存銀彈sql

併發化數據庫

高可用原則緩存

降級

限流

切流量

可回滾

業務設計原則

防重設計

冪等設計

流程可定義

狀態與狀態機

後臺系統操做可反饋.

後臺系統審批化.

文檔&註釋

備份

 

第二部分 高可用

負載均衡與反向代理

upstream配置

負載均衡算法

失敗重試

健康檢查

tcp心跳檢查

http心跳檢查

其餘配置

域名上游服務器

備份上游服務器

不可用上游服務器

長鏈接

HTTP反向代理示例

HTTP動態負載均衡

Consul+Consul-template

Consul+OpenResty

TCP四層負載均衡

靜態負載均衡

動態負載均衡

 

隔離術

線程隔離

進程隔離

集羣隔離

機房隔離

讀寫隔離

動靜隔離

爬蟲隔離

熱點隔離

資源隔離

使用Hystrix實現隔離

Hystrix簡介

隔離示例

基於Servlet3實現請求隔離

請求解析和業務處理線程池分離

業務線程池隔離

業務線程池監控/運維/降級

如何使用Servlet3異步化

 

限流詳解

限流算法

令牌桶算法

漏桶算法

應用級限流

限流總併發/鏈接/請求數

限流總資源數

限流某個接口的總併發/請求數

限流某個接口的時間窗請求數

平滑限流某個接口的請求數

分佈式限流

redis+lua實現

Nginx+Lua實現

接入層限流

ngx_http_limit_conn_module

ngx_http_limit_req_module

lua-resty-limit-traffic

 

降級特技

降級預案

自動開關降級

超時降級

統計失敗次數降級

故障降級

限流降級

人工開關降級

讀服務降級

寫服務降級

多級降級

配置中心

應用層API封裝

配置文件實現開關配置

配置中心實現開關配置

使用Hystrix實現降級

使用Hystrix實現熔斷

熔斷機制實現

配置示例

採樣統計

 

超時與重試機制

簡介

代理層超時與重試

Web容器超時

中間件客戶端超時與重試

數據庫客戶端超時

NoSQL客戶端超時

業務超時

前端Ajax超時

 

回滾機制

事務回滾

代碼庫回滾

部署版本回滾

數據版本回滾

靜態資源版本回滾

 

壓測與預案

系統壓測

線下壓測

線上壓測

系統優化和容災

應急預案

 

第三部分 高併發

應用級緩存

緩存簡介

緩存命中率

緩存回收策略

基於空間

基於容量

基於時間

基於Java對象引用

回收策略

Java緩存類型

堆緩存

堆外緩存

磁盤緩存

分佈式緩存

多級緩存

應用級緩存示例

多級緩存API封裝

NULL Cache

強制獲取最新數據

失敗統計

延遲報警

緩存使用模式實踐

Cache-Aside

Cache-As-SoR

Copy Pattern

性能測試

 

HTTP緩存

簡介

HTTP緩存

Last-Modified

ETag

HttpClient客戶端緩存

主流程

清除無效緩存

查找緩存

緩存未命中

緩存命中

緩存內容陳舊需從新驗證

緩存內容無效需從新執行請求

緩存響應

緩存頭總結

Nginx HTTP緩存設置

expires

if-modified-since

nginx proxy expires

Nginx代理層緩存

Nginx代理層緩存配置

清理緩存

一些經驗

 

多級緩存

多級緩存介紹

如何緩存數據

過時與不過時

維度化緩存與增量緩存

分佈式緩存與應用負載均衡

緩存分佈式

應用負載均衡

熱點數據與更新緩存

單機全量緩存+主從

分佈式緩存+應用本地熱點

更新緩存與原子性

緩存崩潰與快速修復

取模

一致性哈希

快速恢復

 

鏈接池線程池詳解

數據庫鏈接池

DBCP鏈接池配置

DBCP配置建議

HttpClient鏈接池

HttpClient4.5.2配置

HttpClient鏈接池源碼分析

HttpClient4.2.3配置

問題示例

線程池

Java線程池

Tomcat線程池配置

 

異步併發實戰

同步阻塞調用

異步Future

異步Callback

異步編排CompletableFuture

異步Web服務實現

請求緩存

CompletableFuture實現批量查詢

請求合併

 

如何擴容

單體應用垂直擴容

單體應用水平擴容

應用拆分

數據庫拆分

數據庫分庫分表示例

應用層仍是中間件層

分庫分表策略

使用sharding-jdbc分庫分表

使用sharding-jdbc讀寫分離

數據異構

查詢維度異構

聚合數據異構

任務系統擴容

簡單任務

分佈式任務

Elastic-Job簡介

Elastic-Job-Lite功能與架構

Elastic-Job-Lite示例

 

隊列術

應用場景

緩衝隊列

任務隊列

消息隊列

請求隊列

數據總線隊列

混合隊列

其餘隊列

Disruptor+Redis隊列

簡介

XML配置

EventWorker

EventPublishThread

EventHandler

EventQueue

下單系統水平可擴展架構

下單服務

同步Worker

基於Canal實現數據異構

mysql主從複製

Canal簡介

Canal示例 

 

第四部分 案例

構建需求響應式億級商品詳情頁

商品詳情頁是什麼

商品詳情頁前端結構

咱們的性能數據

單品頁流量特色

單品頁技術架構發展

架構1.0

架構2.0

架構3.0

詳情頁架構設計原則

數據閉環

數據維度化

拆分系統

Worker無狀態化+任務化

異步化+併發化

多級緩存化

動態化

彈性化

降級開關

多機房多活

多種壓測方案

遇到的一些坑和問題

SSD性能差

鍵值存儲選型壓測

數據量大時JIMDB同步不動

切換主從

分片配置

模板元數據存儲HTML

庫存接口訪問量600w/分鐘

微信接口調用量暴增

開啓Nginx Proxy Cache性能不升反降

配送至讀服務因依賴太多,響應時間偏慢

網絡抖動時,返回502錯誤

機器流量太大

總結

 

京東商品詳情頁服務閉環實踐

爲何須要統一服務

總體架構

一些架構思路和總結

兩種讀服務架構模式

本地緩存

多級緩存

統一入口/服務閉環

引入Nginx接入層

數據校驗/過濾邏輯前置

緩存前置

業務邏輯前置

降級開關前置

AB測試

灰度發佈/流量切換

監控服務質量

限流

前端業務邏輯後置

前端接口服務端聚合

服務隔離

 

使用OpenResty開發高性能Web應用

OpenResty簡介

Nginx優勢

Lua的優勢

什麼是ngx_lua

開發環境

OpenResty生態

場景

基於OpenResty的經常使用架構模式

負載均衡

單機閉環

分佈式閉環

接入網關

核心接入Nginx功能

業務Nginx功能

Web應用

如何使用OpenResty開發Web應用

項目搭建

啓停腳本

配置文件

nginx.conf配置文件

nginx.conf項目配置文件

業務代碼

模板

公共Lua庫

功能開發

基於OpenResty的經常使用功能總結

一些問題

 

應用數據靜態化架構高性能單頁Web應用

總體架構

CMS系統

前端展現系統

控制系統

數據和模板動態化

多版本機制

異常問題

 

使用OpenResty開發Web服務

架構

單DB架構

DB+Cache/數據庫讀寫分離架構

OpenResty+Local Redis+Mysql集羣架構

OpenResty+Redis集羣+Mysql集羣架構

實現

後臺邏輯

前臺邏輯

項目搭建

Redis+Twemproxy配置

Mysql+Atlas配置

Java+Tomcat安裝

Java+Tomcat邏輯開發

Nginx+Lua邏輯開發

 

使用OpenResty開發商品詳情頁

技術選型

核心流程

項目搭建

數據存儲實現

商品基本信息SSDB集羣配置

商品介紹SSDB集羣配置

其餘信息Redis配置

集羣測試

Twemproxy配置

動態服務實現

項目搭建

項目依賴

核心代碼

基本信息服務

商品介紹服務

其餘信息服務

輔助工具

web.xml配置

打WAR包

配置Tomcat

測試

nginx配置

綁定hosts測試

前端展現實現

基礎組件

商品介紹

nginx配置

前端展現

核心代碼

初始化模塊

模板html片斷

nginx配置

測試

優化

相關文章
相關標籤/搜索