億級流量網站架構核心技術+架構探險:從零開始寫分布式服務框架+輕量級微服務架構

億級流量網站架構核心技術+架構探險:從零開始寫分布式服務框架+輕量級微服務架構 pdf epub mobi txt 電子書 下載 2025

想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
店鋪: 藍墨水圖書專營店
齣版社: 電子工業齣版社
ISBN:9787121319594
商品編碼:10009370287

具體描述

套裝包括以下三本:

億級流量網站架構核心技術

輕量級微服務架構

架構探險:從零開始寫分布式服務框架


億級流量網站架構核心技術》一書總結並梳理瞭億級流量網站高可用和高並發原則,通過實例詳細介紹瞭如何落地這些原則。本書分為四部分:概述、高可用原則、高並發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、迴滾機製、壓測與預案、緩存、池化、異步化、擴容、隊列等多方麵詳細介紹瞭億級流量網站的架構核心技術,讓讀者看後能快速運用到實踐項目中。
不管是軟件開發人員,還是運維人員,通過閱讀《億級流量網站架構核心技術》都能係統地學習實現億級流量網站的架構核心技術,並收獲解決係統問題的思路和方法。

作者簡介 

張開濤,現就職於京東,“開濤的博客”公眾號作者。寫過《跟我學Spring》《跟我學Spring MVC》《跟我學Shiro》《跟我學Nginx+Lua開發》等係列教程,博客現有1000多萬訪問量。

目錄

第1部分 概述 / 1
1 交易型係統設計的一些原則 / 2
1.1 高並發原則 / 3
1.1.1 無狀態 / 3
1.1.2 拆分 / 3
1.1.3 服務化 / 4
1.1.4 消息隊列 / 4
1.1.5 數據異構 / 6
1.1.6 緩存銀彈 / 7
1.1.7 並發化 / 9
1.2 高可用原則 / 10
1.2.1 降級 / 10
1.2.2 限流 / 11
1.2.3 切流量 / 12
1.2.4 可迴滾 / 12
1.3 業務設計原則 / 12
1.3.1 防重設計 / 13
1.3.2 冪等設計 / 13
1.3.3 流程可定義 / 13
1.3.4 狀態與狀態機 / 13
1.3.5 後颱係統操作可反饋 / 14
1.3.6 後颱係統審批化 / 14
1.3.7 文檔和注釋 / 14
1.3.8 備份 / 14
1.4 總結 / 14
第2部分 高可用 / 17
2 負載均衡與反嚮代理 / 18
2.1 upstream配置 / 20
2.2 負載均衡算法 / 21
2.3 失敗重試 / 23
2.4 健康檢查 / 24
2.4.1 TCP心跳檢查 / 24
2.4.2 HTTP心跳檢查 / 25
2.5 其他配置 / 25
2.5.1 域名上遊服務器 / 25
2.5.2 備份上遊服務器 / 26
2.5.3 不可用上遊服務器 / 26
2.6 長連接 / 26
2.7 HTTP反嚮代理示例 / 29
2.8 HTTP動態負載均衡 / 30
2.8.1 Consul+Consul-template / 31
2.8.2 Consul+OpenResty / 35
2.9 Nginx四層負載均衡 / 39
2.9.1 靜態負載均衡 / 39
2.9.2 動態負載均衡 / 41
參考資料 / 42
3 隔離術 / 43
3.1 綫程隔離 / 43
3.2 進程隔離 / 45
3.3 集群隔離 / 45
3.4 機房隔離 / 46
3.5 讀寫隔離 / 47
3.6 動靜隔離 / 48
3.7 爬蟲隔離 / 49
3.8 熱點隔離 / 50
3.9 資源隔離 / 50
3.10 使用Hystrix實現隔離 / 51
3.10.1 Hystrix簡介 / 51
3.10.2 隔離示例 / 52
3.11 基於Servlet 3實現請求隔離 / 56
3.11.1 請求解析和業務處理綫程池分離 / 57
3.11.2 業務綫程池隔離 / 58
3.11.3 業務綫程池監控/運維/降級 / 58
3.11.4 如何使用Servlet 3異步化 / 59
3.11.5 一些Servlet 3異步化壓測數據 / 64
4 限流詳解 / 66
4.1 限流算法 / 67
4.1.1 令牌桶算法 / 67
4.1.2 漏桶算法 / 68
4.2 應用級限流 / 69
4.2.1 限流總並發/連接/請求數 / 69
4.2.2 限流總資源數 / 70
4.2.3 限流某個接口的總並發/請求數 / 70
4.2.4 限流某個接口的時間窗請求數 / 70
4.2.5 平滑限流某個接口的請求數 / 71
4.3 分布式限流 / 75
4.3.1 Redis+Lua實現 / 76
4.3.2 Nginx+Lua實現 / 77
4.4 接入層限流 / 78
4.4.1 ngx_http_limit_conn_module / 78
4.4.2 ngx_http_limit_req_module / 80
4.4.3 lua-resty-limit-traffic / 88
4.5 節流 / 90
4.5.1 throttleFirst/throttleLast / 90
4.5.2 throttleWithTimeout / 91
參考資料 / 92
5 降級特技 / 93
5.1 降級預案 / 93
5.2 自動開關降級 / 95
5.2.1 超時降級 / 95
5.2.2 統計失敗次數降級 / 95
5.2.3 故障降級 / 95
5.2.4 限流降級 / 95
5.3 人工開關降級 / 96
5.4 讀服務降級 / 96
5.5 寫服務降級 / 97
5.6 多級降級 / 98
5.7 配置中心 / 100
5.7.1 應用層API封裝 / 100
5.7.2 配置文件實現開關配置 / 101
5.7.3 配置中心實現開關配置 / 102
5.8 使用Hystrix實現降級 / 106
5.9 使用Hystrix實現熔斷 / 108
5.9.1 熔斷機製實現 / 108
5.9.2 配置示例 / 112
5.9.3 采樣統計 / 113
6 超時與重試機製 / 117
6.1 簡介 / 117
6.2 代理層超時與重試 / 119
6.2.1 Nginx / 119
6.2.2 Twemproxy / 126
6.3 Web容器超時 / 127
6.4 中間件客戶端超時與重試 / 127
6.5 數據庫客戶端超時 / 131
6.6 NoSQL客戶端超時 / 134
6.7 業務超時 / 135
6.8 前端Ajax超時 / 135
6.9 總結 / 136
6.10 參考資料 / 137
7 迴滾機製 / 139
7.1 事務迴滾 / 139
7.2 代碼庫迴滾 / 140
7.3 部署版本迴滾 / 141
7.4 數據版本迴滾 / 142
7.5 靜態資源版本迴滾 / 143
8 壓測與預案 / 145
8.1 係統壓測 / 145
8.1.1 綫下壓測 / 146
8.1.2 綫上壓測 / 146
8.2 係統優化和容災 / 147
8.3 應急預案 / 148
第3部分 高並發 / 153
9 應用級緩存 / 154
9.1 緩存簡介 / 154
9.2 緩存命中率 / 155
9.3 緩存迴收策略 / 155
9.3.1 基於空間 / 155
9.3.2 基於容量 / 155
9.3.3 基於時間 / 155
9.3.4 基於Java對象引用 / 156
9.3.5 迴收算法 / 156
9.4 Java緩存類型 / 156
9.4.1 堆緩存 / 158
9.4.2 堆外緩存 / 162
9.4.3 磁盤緩存 / 162
9.4.4 分布式緩存 / 164
9.4.5 多級緩存 / 166
9.5 應用級緩存示例 / 167
9.5.1 多級緩存API封裝 / 167
9.5.2 NULL Cache / 170
9.5.3 強製獲取新數據 / 170
9.5.4 失敗統計 / 171
9.5.5 延遲報警 / 171
9.6 緩存使用模式實踐 / 172
9.6.1 Cache-Aside / 173
9.6.2 Cache-As-SoR / 174
9.6.3 Read-Through / 174
9.6.4 Write-Through / 176
9.6.5 Write-Behind / 177
9.6.6 Copy Pattern / 181
9.7 性能測試 / 181
9.8 參考資料 / 182
10 HTTP緩存 / 183
10.1 簡介 / 183
10.2 HTTP緩存 / 184
10.2.1 Last-Modified / 184
10.2.2 ETag / 190
10.2.3 總結 / 192
10.3 HttpClient客戶端緩存 / 192
10.3.1 主流程 / 195
10.3.2 清除無效緩存 / 195
10.3.3 查找緩存 / 196
10.3.4 緩存未命中 / 198
10.3.5 緩存命中 / 198
10.3.6 緩存內容陳舊需重新驗證 / 202
10.3.7 緩存內容無效需重新執行請求 / 205
10.3.8 緩存響應 / 206
10.3.9 緩存頭總結 / 207
10.4 Nginx HTTP緩存設置 / 208
10.4.1 expires / 208
10.4.2 if-modified-since / 209
10.4.3 nginx proxy_pass / 209
10.5 Nginx代理層緩存 / 212
10.5.1 Nginx代理層緩存配置 / 212
10.5.2 清理緩存 / 215
10.6 一些經驗 / 216
參考資料 / 217
11 多級緩存 / 218
11.1 多級緩存介紹 / 218
11.2 如何緩存數據 / 220
11.2.1 過期與不過期 / 220
11.2.2 維度化緩存與增量緩存 / 221
11.2.3 大Value緩存 / 221
11.2.4 熱點緩存 / 221
11.3 分布式緩存與應用負載均衡 / 222
11.3.1 緩存分布式 / 222
11.3.2 應用負載均衡 / 222
11.4 熱點數據與更新緩存 / 223
11.4.1 單機全量緩存+主從 / 223
11.4.2 分布式緩存+應用本地熱點 / 224
11.5 更新緩存與原子性 / 225
11.6 緩存崩潰與快速修復 / 226
11.6.1 取模 / 226
11.6.2 一緻性哈希 / 226
11.6.3 快速恢復 / 226
12 連接池綫程池詳解 / 227
12.1 數據庫連接池 / 227
12.1.1 DBCP連接池配置 / 228



輕量級微服務架構(上冊)


本係列從開發與運維兩方麵分彆對微服務架構的實踐過程進行描述,全套分為上下兩冊,上冊偏重於開發,下冊偏重於運維。在上冊中讀者會學習到微服務架構所需的開發技能,包括使用SpringBoot搭建微服務開發框架,使用Node.js搭建微服務網關,使用ZooKeeper實現微服務注冊與發現,使用Docker封裝微服務,使用Jenkins部署微服務。通過閱讀上冊,讀者可輕鬆搭建一款輕量級微服務架構。

《輕量級微服務架構(上冊)》適閤對微服務實踐感興趣,以及想成為微服務架構師的人員閱讀。

目錄

第1章 微服務架構設計概述
1.1 為什麼需要微服務架構
1.1.1 傳統應用架構的問題
1.1.2 如何解決傳統應用架構的問題
1.1.3 傳統應用架構還有哪些問題
1.2 微服務架構是什麼
1.2.1 微服務架構概念
1.2.2 微服務交付流程
1.2.3 微服務開發規範
1.2.4 微服務架構模式
1.3 微服務架構有哪些特點和挑戰
1.3.1 微服務架構的特點
1.3.2 微服務架構的挑戰
1.4 如何搭建微服務架構
1.4.1 微服務架構圖
1.4.2 微服務技術選型
1.5 本章小結
第2章 微服務開發框架
2.1 Spring Boot 是什麼
2.1.1 Spring Boot的由來
2.1.2 Spring Boot的特性
2.1.3 Spring Boot相關插件
2.1.4 Spring Boot的應用場景
2.2 如何使用Spring Boot框架
2.2.1 搭建Spring Boot開發框架
2.2.2 開發一個簡單的Spring Boot應用程序
2.2.3 運行Spring Boot應用程序
2.3 Spring Boot生産級特性
2.3.1 端點
2.3.2 健康檢查
2.3.3 應用基本信息
2.3.4 跨域
2.3.5 外部配置
2.3.6 遠程監控
2.4 本章小結
第3章 微服務網關
3.1 Node.js是什麼
3.1.1 Node.js快速入門
3.1.2 Node.js應用場景
3.2 如何使用Node.js
3.2.1 安裝Node.js
3.2.2 使用Node.js開發 Web應用
3.2.3 使用Express框架開發Web應用
3.2.4 搭建Node.js集群環境
3.3 使用Node.js搭建微服務網關
3.3.1 什麼是微服務網關
3.3.2 使用Node.js實現反嚮代理
3.4 本章小結
第4章 微服務注冊與發現
4.1 ZooKeeper是什麼
4.1.1 ZooKeeper樹狀模型
4.1.2 ZooKeeper集群結構
4.2 如何使用ZooKeeper
4.2.1 運行ZooKeeper
4.2.2 搭建ZooKeeper集群環境
4.2.3 使用命令行客戶端連接ZooKeeper
4.2.4 使用Java客戶端連接ZooKeeper
4.2.5 使用Node.js客戶端連接ZooKeeper
4.3 實現服務注冊組件
4.3.1 設計服務注冊錶數據結構
4.3.2 搭建應用程序框架
4.3.3 定義服務注冊錶接口
4.3.4 使用ZooKeeper實現服務注冊
4.3.5 服務注冊模式
4.4 實現服務發現組件
4.4.1 定義服務發現策略
4.4.2 搭建應用程序框架
4.4.3 使用Node.js實現服務發現
4.4.4 服務發現優化方案
4.4.5 服務發現模式
4.5 本章小結
第5章 微服務封裝
5.1 Docker是什麼
5.1.1 Docker簡介
5.1.2 虛擬機與Docker對比
5.1.3 Docker的特點
5.1.4 Docker係統架構
5.1.5 安裝Docker
5.2 如何使用Docker
5.2.1 Docker鏡像常用操作
5.2.2 Docker容器常用操作
5.2.3 Docker命令匯總
5.3 手工製作Java鏡像
5.3.1 下載JDK
5.3.2 啓動容器
5.3.3 提交鏡像
5.3.4 驗證鏡像
5.4 使用Dockerfile構建鏡像
5.4.1 瞭解Dockerfile基本結構
5.4.2 使用Dockerfile構建鏡像
5.4.3 Dockerfile指令匯總
5.5 使用Docker Registry管理鏡像
5.5.1 使用Docker Hub
5.5.2 搭建Docker Registry
5.6 Spring Boot與Docker整閤
5.6.1 搭建Spring Boot應用程序框架
5.6.2 為Spring Boot應用添加Dockerfile
5.6.3 使用Maven構建Docker鏡像
5.6.4 啓動Spring Boot的Docker容器
5.6.5 調整Docker容器內存限製
5.7 本章小結
第6章 微服務部署
6.1 Jenkins是什麼
6.1.1 Jenkins簡介
6.1.2 自動化發布平颱
6.1.3 安裝Jenkins
6.2 搭建GitLab版本控製係統
6.2.1 GitLab簡介
6.2.2 安裝GitLab
6.2.3 將代碼推送至GitLab中
6.3 搭建Jenkins持續集成係統
6.3.1 創建構建任務
6.3.2 手工執行構建
6.3.3 自動執行構建
6.4 使用Jenkins實現自動化發布
6.4.1 自動發布jar包
6.4.2 自動發布Docker容器
6.5 本章小結


架構探險:從零開始寫分布式服務框架

內容提要

        《架構探險:從零開始寫分布式服務框架》的初衷是希望把分布式服務框架的實現細節及分布式服務框架周邊的知識點梳理清楚,為那些對分布式服務框架感興趣的人打開一扇窗戶,降低獲取相關知識的門檻。所以《架構探險:從零開始寫分布式服務框架》圍繞實現分布式服務框架所需的知識點,進行瞭比較詳盡細緻的介紹。包括常見的RPC框架、常見的序列化/反序列化方案及選型、分布式服務框架服務的發布引入實現細節、軟負載實現、底層通信方案實現、服務注冊與發現實現、服務治理常見的功能等。通過對這些知識點的逐步講解,層層深入,·終完成一個可運行的分布式服務框架。

        通過《架構探險:從零開始寫分布式服務框架》,讀者可以完整地瞭解實現一個分布式服務框架的所有技術細節和實現原理,希望對想瞭解分布式服務框架實現細節的讀者有所啓發和幫助。

 

 

目    錄

1 常用的RPC框架     1

1.1  RPC框架原理         1

1.2  RMI介紹        2

1.2.1 原生RMI代碼示例    3

1.2.2  RMI穿透防火牆         5

1.3  CXF/Axis2介紹       7

1.3.1  CXF介紹      7

1.3.2  Axis2介紹   14

1.4  Thrift介紹      21

1.4.1  Thrift工作原理介紹  23

1.4.2  Thrift IDL語法說明    26

1.4.3 基於Apache ThriftJava版完整案例    28

1.4.4 基於Java注解的簡化實現        36

1.5  gRPC介紹      42

1.5.1  protobuf3語法介紹   43

1.5.2  gRPC使用示例   45

1.6  HTTP Client介紹    53

1.6.1 構建HttpClient對象54

1.6.2 構建URI對象     55

1.6.3 構建請求對象(HttpGetHttpPost    56

1.6.4  HttpClient發起調用及獲取調用返迴結果       56

1.7 實現自己的RPC框架   61

1.8  RPC框架與分布式服務框架的區彆    68

1.9 本章小結        68

2 分布式服務框架總體架構與功能          69

2.1 麵嚮服務的體係架構(SOA     69

2.1.1 麵嚮服務架構範式    69

2.1.2 服務拆分原則    71

2.2 分布式服務框架現實需求   72

2.3 分布式服務框架總體架構及所需的技術概述   72

2.4 本章小結        74

3 分布式服務框架序列化與反序列化實現     75

3.1 序列化原理及常用的序列化介紹        75

3.2  Java默認的序列化        77

3.3  XML序列化框架介紹   80

3.4  JSON序列化框架介紹  82

3.5  Hessian序列化框架介紹      87

3.6  protobuf序列化框架介紹     88

3.7  protostuff序列化框架介紹  93

3.8  Thrift序列化框架介紹98

3.9  Avro序列化框架介紹   100

3.9.1  Avro介紹    100

3.9.2  Avro IDL語言介紹      101

3.9.3  Schema定義介紹       103

3.9.4  Maven配置及使用IDLSchema自動生成代碼   103

3.9.5  Avro序列化/反序列化實現       105

3.10  JBoss Marshalling序列化框架介紹   110

3.11 序列化框架的選型      112

3.12 實現自己的序列化工具引擎      113

3.13 本章小結      118

4 實現分布式服務框架服務的發布與引入     119

4.1  Spring Framework框架概述119

4.1.1  Spring Framework介紹       119

4.1.2  Spring Framework周邊生態項目介紹       121

4.2  FactoryBean的秘密       122

4.2.1  FactoryBean的作用及使用場景        123

4.2.2  FactoryBean實現原理及示例說明   124

4.3  Spring框架對於已有RPC框架集成的支持         127

4.3.1  Spring支持集成RPC框架介紹127

4.3.2 基於RmiProxyFactoryBean實現RMISpring的集成128

4.3.3 基於HttpInvokerProxyFactoryBean實現HTTP InvokerSpring的集成        131

4.3.4 基於HessianProxyFactoryBean實現HessianSpring的集成       133

4.4 實現自定義服務框架與Spring的集成        136

4.4.1 實現遠程服務的發布         136

4.4.2 實現遠程服務的引入         144

4.5 Spring中定製自己的XML標簽       150

4.6 本章小結        158

5 分布式服務框架注冊中心     159

5.1 服務注冊中心介紹        159

5.2  ZooKeeper實現服務的注冊中心原理161

5.2.1  ZooKeeper介紹  161

5.2.2 部署ZooKeeper  161

5.2.3  ZkClient使用介紹       164

5.2.4  ZooKeeper實現服務注冊中心  173

5.3 集成ZooKeeper實現自己的服務注冊與發現    175

5.3.1 服務注冊中心服務提供方         175

5.3.2 服務注冊中心服務消費方         176

5.3.3 服務注冊中心實現    178

5.4 本章小結        189

6 分布式服務框架底層通信實現     190

6.1  Java I/O模型及I/O類庫的進化  190

6.1.1  Linux下實現的I/O模型    190

6.1.2  Java語言實現的I/O模型194

6.1.3  Java Classic I/OBlocking I/O)介紹        194

6.1.4  Java Non-blocking I/ONIO)介紹   211

6.1.5  NIO2Asynchronous I/O介紹          233

6.2  Netty使用介紹      255

6.2.1  Netty開發入門  256

6.2.2  Netty粘包/半包問題解決          265

6.3 使用Netty構建服務框架底層通信     320

6.3.1 構建分布式服務框架Netty服務端320

6.3.2 構建分布式服務框架服務調用端Netty客戶端      330

6.4 本章小結        347

7 分布式服務框架軟負載實現          348

7.1 軟負載的實現原理        348

7.2 負載均衡常用算法        349

7.2.1 軟負載隨機算法實現         349

7.2.2 軟負載加權隨機算法實現         350

7.2.3 軟負載輪詢算法實現         351

7.2.4 軟負載加權輪詢算法實現         352

7.2.5 軟負載源地址hash算法實現   354

7.3 實現自己的軟負載機製        355

7.4 軟負載在分布式服務框架中的應用   357

7.5 本章小結        361

8 分布式服務框架服務治理     362

8.1 服務治理介紹        362

8.2 服務治理的簡單實現   364

8.2.1 服務分組路由實現    364

8.2.2 簡單服務依賴關係分析實現    374

8.2.3 服務調用鏈路跟蹤實現原理    380

8.3 本章小結        380

附錄如何配置運行本書完成的分布式服務框架381

 

 

 

作者簡介

李業兵

先後在支付寶運營支撐事業部、去哪兒網酒店事業部任職高級開發工程師。於2015年加入貓眼電影(原美團網旗下電影事業部),負責交易業務綫架構與開發工作。

擅長電商交易領域係統設計與架構,在電商交易領域係統架構設計方麵積纍瞭較為豐富的實踐經驗。

對高並發係統設計、服務化架構、互聯網中間件開發保持著濃厚的興趣。


用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有