注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)分布式高可用架構(gòu)之道

分布式高可用架構(gòu)之道

分布式高可用架構(gòu)之道

定 價(jià):¥89.00

作 者: 黃文毅,趙定益 著
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787302606505 出版時(shí)間: 2022-06-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)從開(kāi)發(fā)高可用系統(tǒng)需要具備的理論知識(shí)出發(fā),逐步講解應(yīng)用的高可用、數(shù)據(jù)庫(kù)高可用、緩存高可用、Nginx/LVS高可用、異地多活、全鏈路監(jiān)控/告警、高可用與安全、高可用在秒殺系統(tǒng)中的應(yīng)用等內(nèi)容,書(shū)中同時(shí)提供了大量有價(jià)值的解決方案,可直接用于開(kāi)發(fā)實(shí)踐。 本書(shū)理論與實(shí)踐并重,適合具有一定Java開(kāi)發(fā)經(jīng)驗(yàn)的人員,或者想從程序員進(jìn)階為架構(gòu)師的開(kāi)發(fā)人員閱讀。

作者簡(jiǎn)介

  黃文毅,架構(gòu)師,從業(yè)8年,先后就職于上海美團(tuán)、廈門(mén)美圖和海西醫(yī)藥等公司,負(fù)責(zé)后端開(kāi)發(fā)工作。出版包括《分布式微服務(wù)架構(gòu):原理與實(shí)踐》、《Spring 5企業(yè)級(jí)開(kāi)發(fā)實(shí)戰(zhàn)》(與人合著)、《Spring MVC+MyBatis快速開(kāi)發(fā)與項(xiàng)目實(shí)戰(zhàn)》等圖書(shū)。 趙定益,曾職于多家上市公司及互聯(lián)網(wǎng)獨(dú)角獸企業(yè)并負(fù)責(zé)核心研發(fā)團(tuán)隊(duì)管理及平臺(tái)總體架構(gòu)設(shè)計(jì),擅長(zhǎng)互聯(lián)網(wǎng)系統(tǒng)架構(gòu)設(shè)計(jì)和分布式研發(fā)團(tuán)隊(duì)管理,多次從0到1到N主導(dǎo)完成醫(yī)藥交易、跨境電商、內(nèi)容與知識(shí)付費(fèi)、物聯(lián)網(wǎng)相關(guān)領(lǐng)域產(chǎn)品應(yīng)用架構(gòu)設(shè)計(jì)、系統(tǒng)開(kāi)發(fā)及線上運(yùn)營(yíng)。

圖書(shū)目錄


第1章  理解高可用 1
1.1  什么是可用性 1
1.1.1  SLA與可用性 1
1.1.2  影響高可用的因素 3
1.1.3  高可用策略 4
1.1.4  高可用和高可靠 7
1.2  FMEA理論 7
1.3  集群與分布式 9
1.3.1  什么是集群與分布式 9
1.3.2  分布式架構(gòu) 11
1.4  高可用之CAP理論 13
1.4.1  CAP理論 13
1.4.2  ACID理論 15
1.4.3  兩階段提交 16
1.4.4  補(bǔ)償事務(wù)TCC 17
1.4.5  BASE理論 19
1.5  高可用之選舉算法 21
1.5.1  霸道選舉算法 21
1.5.2  Raft選舉算法 24
1.5.3  ZAB選舉算法 26
1.6  高可用之共識(shí)算法 29
1.6.1  Paxos算法 29
1.6.2  Multi-Paxos算法 32
1.6.3  Raft算法 33
1.7  高可用之一致性算法 34
1.7.1  一致性分類(lèi) 34
1.7.2  Gossip協(xié)議(最終一致性) 34
1.7.3  Quorum NWR算法 37
1.7.4  Quorum NWR的應(yīng)用 38
1.7.5  Raft日志一致性 40
第2章  應(yīng)用的高可用 43
2.1  軟件質(zhì)量對(duì)高可用的影響 43
2.1.1  影響寫(xiě)出高質(zhì)量代碼的原因 43
2.1.2  代碼重構(gòu) 46
2.1.3  代碼審查概述 47
2.1.4  人工代碼審查 48
2.1.5  代碼自動(dòng)檢查 52
2.2  優(yōu)雅關(guān)閉 53
2.2.1  Java優(yōu)雅關(guān)閉 55
2.2.2  Spring Boot微服務(wù)優(yōu)雅關(guān)閉 58
2.3  優(yōu)雅啟動(dòng) 60
2.3.1  預(yù)熱啟動(dòng) 60
2.3.2  延時(shí)注冊(cè) 61
2.4  服務(wù)狀態(tài) 62
2.4.1  無(wú)狀態(tài)服務(wù) 62
2.4.2  有狀態(tài)服務(wù) 63
2.4.3  實(shí)現(xiàn)無(wú)狀態(tài) 63
2.5  重試 64
2.5.1  重試概述 64
2.5.2  重試風(fēng)險(xiǎn) 64
2.5.3  退避策略 65
2.5.4  重試熔斷策略 65
2.5.5  鏈路重試熔斷 66
2.5.6  重試超時(shí) 67
2.6  冪等 68
2.6.1  非冪等原因 68
2.6.2  冪等定義 68
2.6.3  冪等場(chǎng)景 69
2.6.4  冪等解決方案 70
2.7  健康檢查 74
2.7.1  Spring Boot Actuator健康檢查 75
2.7.2  Nacos健康檢查 84
2.8  流量削峰 96
2.8.1  為何要削峰 96
2.8.2  答題/驗(yàn)證碼 97
2.8.3  分時(shí)分段 97
2.8.4  禁用“秒殺”按鈕 98
2.8.5  分層過(guò)濾 98
2.8.6  消息隊(duì)列 99
2.9  負(fù)載均衡 100
2.9.1  負(fù)載均衡算法 100
2.9.2  負(fù)載均衡的實(shí)現(xiàn) 105
2.10  限流 108
2.10.1  限流概述 108
2.10.2  限流算法 109
2.10.3  Sentinel中的勻速排隊(duì)限流策略 113
2.11  降級(jí) 121
2.11.1  服務(wù)降級(jí)概述 121
2.11.2  服務(wù)降級(jí)開(kāi)關(guān) 121
2.11.3  自動(dòng)降級(jí) 122
2.11.4  讀服務(wù)降級(jí) 123
2.11.5  寫(xiě)服務(wù)降級(jí) 123
2.12  熔斷 124
2.12.1  熔斷概述 124
2.12.2  熔斷實(shí)現(xiàn) 125
2.12.3  案例:Hystrix的工作流程 126
2.13  故障檢測(cè) 130
2.13.1  固定心跳 130
2.13.2  心跳設(shè)計(jì) 131
2.13.3  TCP Keepalive 132
2.13.4  MQTT Keepalive 133
2.14  故障隔離 133
2.14.1  故障隔離概述 133
2.14.2  故障隔離策略 134
2.15  集群容錯(cuò) 136
2.15.1  失敗轉(zhuǎn)移 136
2.15.2  失敗自動(dòng)恢復(fù) 137
2.15.3  失敗安全策略 137
2.15.4  快速失敗 138
2.16  集群部署 139
2.16.1  停機(jī)部署 139
2.16.2  藍(lán)綠部署 139
2.16.3  滾動(dòng)發(fā)布 141
2.16.4  灰度發(fā)布/金絲雀部署 143
2.16.5  無(wú)損發(fā)布 146
第3章  數(shù)據(jù)庫(kù)高可用 148
3.1  數(shù)據(jù)庫(kù)高可用概述 148
3.1.1  數(shù)據(jù)庫(kù)高可用的重要性 148
3.1.2  MySQL XA協(xié)議 149
3.2  雙節(jié)點(diǎn) 154
3.2.1  主從模式實(shí)現(xiàn)讀寫(xiě)分離 154
3.2.2  讀寫(xiě)分離實(shí)現(xiàn)方案 156
3.2.3  SQL語(yǔ)句執(zhí)行過(guò)程 158
3.2.4  MySQL日志模塊 160
3.2.5  主從數(shù)據(jù)同步 162
3.3  MySQL高可用架構(gòu) 165
3.3.1  MySQL高可用架構(gòu)MMM 165
3.3.2  基于MHA實(shí)現(xiàn)MySQL自動(dòng)故障轉(zhuǎn)移 166
3.3.3  MySQL Cluster架構(gòu) 167
3.3.4  MySQL DRDB Heartbeat架構(gòu) 169
3.3.5  云數(shù)據(jù)庫(kù)高可用架構(gòu) 170
3.4  案例:MySQL一主多從數(shù)據(jù)同步 172
第4章  緩存高可用 177
4.1  緩存概述 177
4.2  緩存高可用概述 178
4.3  客戶端分區(qū)方案 178
4.4  中間代理層方案 179
4.4.1  中間代理層概述 179
4.4.2  Codis架構(gòu) 179
4.5  服務(wù)端方案 181
4.5.1  主從模式 181
4.5.2  哨兵模式 183
4.5.3  Redis集群模式 188
4.5.4  Codis 和 Redis集群的區(qū)別 193
4.5.5  云數(shù)據(jù)庫(kù)Redis 194
第5章  Nginx/LVS高可用 197
5.1  Nginx 197
5.1.1  Nginx概述 197
5.1.2  Nginx Keepalived保障高可用 197
5.2  LVS 198
5.2.1  LVS概述 198
5.2.2  Nginx Keepalived LVS保障高可用、高性能 199
5.3  DNS 200
5.3.1  DNS概述 200
5.3.2  DNS解析過(guò)程 201
5.3.3  DNS負(fù)載均衡 202
5.3.4  DNS LVS Nginx Keepalived 202
第6章  異地多活 204
6.1  異地多活概述 204
6.2  異地多活的類(lèi)型 205
第7章  高可用之全鏈路監(jiān)控、告警 208
7.1  監(jiān)控/告警概述 208
7.1.1  監(jiān)控/告警的意義 208
7.1.2  全鏈路監(jiān)控 209
7.1.3  告警規(guī)則 210
7.1.4  發(fā)送告警 210
7.1.5  監(jiān)控系統(tǒng)通用設(shè)計(jì) 210
7.1.6  監(jiān)控體系案例 211
7.2  日志監(jiān)控/告警方案 212
7.2.1  ELK日志系統(tǒng) 212
7.2.2  日志告警 215
7.3  資源監(jiān)控/告警方案 216
7.3.1  監(jiān)控概述 216
7.3.2  Promethous Grafana InfluxDB 217
7.3.3  其他開(kāi)源監(jiān)控 221
7.3.4  AlertManager告警 223
7.4  鏈路追蹤監(jiān)控 223
第8章  高可用與安全 226
8.1  高可用與安全概述 226
8.2  DoS/DDos攻擊 227
8.2.1  DoS攻擊概述 227
8.2.2  DDoS攻擊的類(lèi)型 227
8.2.3  DoS/DDoS攻擊防護(hù) 229
8.3  安全產(chǎn)品/工具 230
8.3.1  WAF概述 230
8.3.2  WAF的工作模式 231
8.3.3  Nginx ModSecurity 233
8.3.4  云廠商安全產(chǎn)品 235
第9章  秒殺系統(tǒng)案例 236
9.1  什么是秒殺 236
9.2  最簡(jiǎn)單的秒殺系統(tǒng) 237
9.3  業(yè)務(wù)層面控制 238
9.4  CDN靜態(tài)資源緩存 239
9.5  LVS/Nginx高可用設(shè)計(jì) 240
9.6  服務(wù)拆分與隔離設(shè)計(jì) 241
9.7  流量削峰、限流和降級(jí) 243
9.8  熱點(diǎn)數(shù)據(jù)處理 246
9.9  核心的減庫(kù)存 248
9.10  容災(zāi) 254
9.11  秒殺系統(tǒng)安全架構(gòu) 255
參考文獻(xiàn) 258

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)