《《億級流量網站架構核心技術》目錄一覽》要點:
本文介紹了《億級流量網站架構核心技術》目錄一覽,希望對您有用。如果有疑問,可以聯系我們。
在2011年年底的時候筆者就曾規劃寫一本Spring的書,但是因為是Spring入門類型的書,框架的內容更新太快,覺得還是寫博客好一些,因此就把寫完的書稿放到了博客(jinnianshilongnian.iteye.com,因為是龍年開的博客,所以很多網友喊我龍年兄),并持續更新,到現在已經不多五年了.大家再網上找資源時會發現很多內容不成體系,不能系統的學習,這也是我的痛點,因此我寫博客的一個特色就是堅持寫系列文章,想學習某種技術只要我博客有的不需要去其他地方再找了,到現在已經寫過《跟我學Spring》、《Spring雜談》、《跟我學Spring MVC》、《跟我學Shiro》、《跟我學Nginx+Lua》等系列,累計訪問量已超過1000萬.我寫博客還有一個私心:帶新人,當時我們系統架構使用了OpenResty,而我們團隊都是Java程序員,所以就寫了《跟我學Nginx+Lua》,新人跟著教程學一遍就能上手干活了.
2015年開始筆者在個人公眾號“開濤的博客”寫《聊聊高并發系統》系列文章,陸續發表了聊聊高并發系統之限流特技、聊聊高并發系統之降級特技、聊聊高并發系統之隊列術、構建需求響應式億級商品詳情頁等文章.這些內容都是筆者在一線使用過的一些,而這些技能是一線程序員或架構師應該掌握的必備技能.而且這一系列也得到了很多讀者反饋和認可,幫助他們解決了系統的一些問題.公眾號發表的有些內容偏理論,很多人不知道怎么去用,因此就有了豐富理論和實戰內容并出版本書的想法,想學習高可用和高并發系統技能看本書就夠了,并且可以作為案頭工具書.
本書暫定名稱為《億級流量網站架構核心技術——跟開濤學搭建高可用高并發系統》,如有好的書名建議歡迎留言,必當重謝.內容已交由出版社編輯,相信很快就會和大家見面.主要內容結構和目錄如下所示:
高并發原則
無狀態
拆分
服務化
消息隊列
數據異構
緩存銀彈
并發化
高可用原則
降級
限流
切流量
可回滾
業務設計原則
防重設計
冪等設計
流程可定義
狀態與狀態機
后臺系統操作可反饋.
后臺系統審批化.
文檔&注釋
備份
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配置
測試
優化
作者:張開濤
文章出處:開濤的博客(訂閱號ID:?kaitao-1234567)
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4385.html