注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Spring Cloud Alibaba微服務(wù)原理與實(shí)戰(zhàn)

Spring Cloud Alibaba微服務(wù)原理與實(shí)戰(zhàn)

Spring Cloud Alibaba微服務(wù)原理與實(shí)戰(zhàn)

定 價(jià):¥106.00

作 者: 譚鋒(Mic) 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121388248 出版時(shí)間: 2020-04-01 包裝: 平裝
開本: 16開 頁數(shù): 408 字?jǐn)?shù):  

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

  本書針對(duì)Spring Cloud Alibba生態(tài)下的技術(shù)組件從應(yīng)用到原理進(jìn)行全面的分析,涉及的技術(shù)組件包括分布式服務(wù)治理Dubbo、服務(wù)配置和服務(wù)注冊(cè)中心Nacos、分布式限流與熔斷Sentinel、分布式消息通信RocketMQ、分布式事務(wù)Seata及微服務(wù)網(wǎng)關(guān)Spring Cloud Gateway。由于Spring Cloud中所有的技術(shù)組件都是基于Spring Boot微服務(wù)框架來集成的,所以對(duì)于Spring Boot的核心原理也做了比較詳細(xì)的分析。 本書中涉及的所有技術(shù)組件,筆者都采用“場(chǎng)景→需求→解決方案→應(yīng)用→原理”高效技術(shù)學(xué)習(xí)模型進(jìn)行設(shè)計(jì),以便讓讀者知其然且知其所以然。在“原理”部分,筆者采用大量的源碼及圖形的方式來進(jìn)行分析,幫助讀者達(dá)到對(duì)技術(shù)組件深度學(xué)習(xí)和理解的目標(biāo)。

作者簡(jiǎn)介

  譚鋒(Mic) 咕泡學(xué)院聯(lián)合創(chuàng)始人,擁有12年Java開發(fā)及架構(gòu)經(jīng)驗(yàn),主要關(guān)注微服務(wù)、高并發(fā)及容器化等技術(shù)領(lǐng)域,純粹的技術(shù)愛好者。 曾就職于平安支付、挖財(cái),擔(dān)任業(yè)務(wù)架構(gòu)師。2013年參與并主導(dǎo)Dubbo服務(wù)化落地項(xiàng)目。2015年負(fù)責(zé)公司內(nèi)部Spring Boot集成Dubbo實(shí)現(xiàn)微服務(wù)化落地。2017年成立咕泡學(xué)院,目前主要負(fù)責(zé)咕泡學(xué)院Java架構(gòu)進(jìn)階課程的研發(fā)和設(shè)計(jì)。

圖書目錄

第1章 微服務(wù)的發(fā)展史... 1
1.1 從單體架構(gòu)到分布式架構(gòu)的演進(jìn)... 2
1.1.1 單體架構(gòu)... 2
1.1.2 集群及垂直化... 3
1.1.3 SOA.. 4
1.1.4 微服務(wù)架構(gòu)... 5
1.2 微服務(wù)架構(gòu)帶來的挑戰(zhàn)... 7
1.2.1 微服務(wù)架構(gòu)的優(yōu)點(diǎn)... 7
1.2.2 微服務(wù)架構(gòu)面臨的挑戰(zhàn)... 7
1.3 如何實(shí)現(xiàn)微服務(wù)架構(gòu)... 8
1.3.1 微服務(wù)架構(gòu)圖... 8
1.3.2 微服務(wù)架構(gòu)下的技術(shù)挑戰(zhàn)... 9
第2章 微服務(wù)解決方案之Spring Cloud.. 10
2.1 什么是Spring Cloud. 11
2.2 Spring Cloud版本簡(jiǎn)介... 12
2.3 Spring Cloud規(guī)范下的實(shí)現(xiàn)... 13
2.4 Spring Cloud Netflix. 14
2.5 Spring Cloud Alibaba. 15
2.5.1 Spring Cloud Alibaba的優(yōu)勢(shì)... 15
2.5.2 Spring Cloud Alibaba的版本... 16
第3章 Spring Cloud的核心之Spring Boot. 18
3.1 重新認(rèn)識(shí)Spring Boot. 18
3.1.1 Spring IoC/DI 19
3.1.2 Bean裝配方式的升級(jí)... 21
3.1.3 Spring Boot的價(jià)值... 23
3.2 快速構(gòu)建Spring Boot應(yīng)用... 25
3.3 Spring Boot自動(dòng)裝配的原理... 26
3.3.1 自動(dòng)裝配的實(shí)現(xiàn)... 27
3.3.2 EnableAutoConfiguration. 28
3.3.3 AutoConfigurationImportSelector 29
3.3.4 自動(dòng)裝配原理分析... 31
3.3.5 @Conditional條件裝配... 34
3.3.6 spring-autoconfigure-metadata. 37
3.4 手寫實(shí)現(xiàn)一個(gè)Starter. 38
3.4.1 Starter的命名規(guī)范... 38
3.4.2 實(shí)現(xiàn)基于Redis的Starter 38
3.5 本章小結(jié)... 41
第4章 微服務(wù)架構(gòu)下的服務(wù)治理... 42
4.1 如何理解Apache Dubbo. 43
4.2 Apache Dubbo實(shí)現(xiàn)遠(yuǎn)程通信... 44
4.3 Spring Boot集成Apache Dubbo. 48
4.4 快速上手ZooKeeper. 52
4.4.1 ZooKeeper的安裝... 52
4.4.2 ZooKeeper的數(shù)據(jù)結(jié)構(gòu)... 52
4.4.3 ZooKeeper的特性... 53
4.4.4 Watcher機(jī)制... 54
4.4.5 常見應(yīng)用場(chǎng)景分析... 54
4.5 Apache Dubbo集成ZooKeeper實(shí)現(xiàn)服務(wù)注冊(cè)... 56
4.5.1 Apache Dubbo集成ZooKeeper實(shí)現(xiàn)服務(wù)注冊(cè)的步驟... 57
4.5.2 ZooKeeper注冊(cè)中心的實(shí)現(xiàn)原理... 59
4.6 實(shí)戰(zhàn)Dubbo Spring Cloud. 60
4.6.1 實(shí)現(xiàn)Dubbo服務(wù)提供方... 60
4.6.2 實(shí)現(xiàn)Dubbo服務(wù)調(diào)用方... 63
4.7 Apache Dubbo的高級(jí)應(yīng)用... 65
4.7.1 集群容錯(cuò)... 66
4.7.2 負(fù)載均衡... 67
4.7.3 服務(wù)降級(jí)... 68
4.7.4 主機(jī)綁定規(guī)則... 69
4.8 Apache Dubbo核心源碼分析... 70
4.8.1 源碼構(gòu)建... 71
4.8.2 Dubbo的核心之SPI 71
4.8.3 無處不在的自適應(yīng)擴(kuò)展點(diǎn)... 81
4.8.4 Dubbo中的IoC和AOP. 85
4.8.5 Dubbo和Spring完美集成的原理... 89
4.9 本章小結(jié)... 95
第5章 服務(wù)注冊(cè)與發(fā)現(xiàn)... 97
5.1 什么是Alibaba Nacos. 98
5.2 Nacos的基本使用... 99
5.2.1 Nacos的安裝... 99
5.2.2 Nacos服務(wù)注冊(cè)發(fā)現(xiàn)相關(guān)API說明... 100
5.2.3 Nacos集成Spring Boot實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)... 101
5.3 Nacos的高可用部署... 103
5.3.1 安裝環(huán)境要求... 104
5.3.2 安裝包及環(huán)境準(zhǔn)備... 104
5.3.3 集群配置... 104
5.3.4 配置MySQL數(shù)據(jù)庫... 105
5.3.5 啟動(dòng)Nacos服務(wù)... 105
5.4 Dubbo使用Nacos實(shí)現(xiàn)注冊(cè)中心... 106
5.5 Spring Cloud Alibaba Nacos Discovery. 109
5.5.1 服務(wù)端開發(fā)... 109
5.5.2 消費(fèi)端開發(fā)... 113
5.6 Nacos實(shí)現(xiàn)原理分析... 115
5.6.1 Nacos架構(gòu)圖... 116
5.6.2 注冊(cè)中心的原理... 116
5.7 深入解讀Nacos源碼... 117
5.7.1 Spring Cloud什么時(shí)候完成服務(wù)注冊(cè)... 117
5.7.2 NacosServiceRegistry的實(shí)現(xiàn)... 122
5.7.3 從源碼層面分析Nacos服務(wù)注冊(cè)的原理... 123
5.7.4 揭秘服務(wù)提供者地址查詢... 127
5.7.5 分析Nacos服務(wù)地址動(dòng)態(tài)感知原理... 130
5.8 本章小結(jié)... 132
第6章 Nacos實(shí)現(xiàn)統(tǒng)一配置管理... 133
6.1 Nacos配置中心簡(jiǎn)介... 134
6.2 Nacos集成Spring Boot實(shí)現(xiàn)統(tǒng)一配置管理... 134
6.2.1 項(xiàng)目準(zhǔn)備... 134
6.2.2 啟動(dòng)Nacos Server 135
6.2.3 創(chuàng)建配置... 135
6.2.4 啟動(dòng)服務(wù)并測(cè)試... 137
6.3 Spring Cloud Alibaba Nacos Config. 137
6.3.1 Nacos Config的基本應(yīng)用... 137
6.3.2 動(dòng)態(tài)更新配置... 139
6.3.3 基于Data ID配置YAML的文件擴(kuò)展名... 140
6.3.4 不同環(huán)境的配置切換... 141
6.3.5 Nacos Config自定義Namespace和Group. 142
6.4 Nacos Config 實(shí)現(xiàn)原理解析... 145
6.4.1 配置的CRUD.. 145
6.4.2 動(dòng)態(tài)監(jiān)聽之Pull Or Push. 146
6.5 Spring Cloud如何實(shí)現(xiàn)配置的加載... 148
6.5.1 PropertySourceBootstrapConfiguration. 148
6.5.2 PropertySourceLocator 150
6.6 Nacos Config核心源碼解析... 152
6.6.1 NacosFactory.createConfigService. 154
6.6.2 NacosConfigService構(gòu)造... 155
6.6.3 ClientWorker 155
6.6.4 ClientWorker.checkConfigInfo. 157
6.6.5 LongPollingRunnable.run. 157
6.6.6 服務(wù)端長(zhǎng)輪詢處理機(jī)制... 161
6.6.7 ClientLongPolling. 164
6.7 本章小結(jié)... 167
第7章 基于Sentinel的微服務(wù)限流及熔斷... 168
7.1 服務(wù)限流的作用及實(shí)現(xiàn)... 168
7.1.1 計(jì)數(shù)器算法... 169
7.1.2 滑動(dòng)窗口算法... 170
7.1.3 令牌桶限流算法... 171
7.1.4 漏桶限流算法... 172
7.2 服務(wù)熔斷與降級(jí)... 172
7.3 分布式限流框架Sentinel. 174
7.3.1 Sentinel的特性... 174
7.3.2 Sentinel的組成... 175
7.3.3 Sentinel Dashboard的部署... 175
7.4 Sentinel的基本應(yīng)用... 176
7.4.1 Sentinel實(shí)現(xiàn)限流... 176
7.4.2 資源的定義方式... 178
7.4.3 Sentinel資源保護(hù)規(guī)則... 179
7.4.4 Sentinel實(shí)現(xiàn)服務(wù)熔斷... 183
7.5 Spring Cloud集成Sentinel實(shí)踐... 185
7.5.1 Sentinel接入Spring Cloud. 185
7.5.2 基于Sentinel Dashboard來實(shí)現(xiàn)流控配置... 187
7.5.3 自定義URL限流異常... 189
7.5.4 URL資源清洗... 189
7.6 Sentinel集成Nacos實(shí)現(xiàn)動(dòng)態(tài)流控規(guī)則... 190
7.7 Sentinel Dashboard集成Nacos實(shí)現(xiàn)規(guī)則同步... 194
7.7.1 Sentinel Dashboard源碼修改... 194
7.7.2 Sentinel Dashboard規(guī)則數(shù)據(jù)同步... 199
7.8 Dubbo集成Sentinel實(shí)現(xiàn)限流... 200
7.8.1 Dubbo服務(wù)接入Sentinel Dashboard. 200
7.8.2 Dubbo服務(wù)限流規(guī)則配置... 201
7.9 Sentinel熱點(diǎn)限流... 203
7.9.1 熱點(diǎn)參數(shù)限流的使用... 204
7.9.2 @SentinelResource熱點(diǎn)參數(shù)限流... 205
7.9.3 熱點(diǎn)參數(shù)規(guī)則說明... 206
7.10 Sentinel的工作原理... 206
7.11 Spring Cloud Sentinel工作原理分析... 207
7.12 Sentinel核心源碼分析... 210
7.12.1 限流的源碼實(shí)現(xiàn)... 210
7.12.2 實(shí)時(shí)指標(biāo)數(shù)據(jù)統(tǒng)計(jì)... 216
7.12.3 服務(wù)降級(jí)的實(shí)現(xiàn)原理... 225
7.13 本章小結(jié)... 229
第8章 分布式事務(wù)... 230
8.1 分布式事務(wù)問題的理論模型... 231
8.1.1 X/Open分布式事務(wù)模型... 231
8.1.2 兩階段提交協(xié)議... 233
8.1.3 三階段提交協(xié)議... 234
8.1.4 CAP定理和BASE理論... 236
8.2 分布式事務(wù)問題的常見解決方案... 238
8.2.1 TCC補(bǔ)償型方案... 238
8.2.2 基于可靠性消息的最終一致性方案... 239
8.2.3 最大努力通知型... 242
8.3 分布式事務(wù)框架Seata. 243
8.3.1 AT模式... 243
8.3.2 Saga模式... 244
8.4 Seata的安裝... 248
8.4.1 file存儲(chǔ)模式... 248
8.4.2 db存儲(chǔ)模式... 249
8.4.3 Seata服務(wù)端配置中心說明... 251
8.5 AT模式Dubbo集成Seata. 258
8.5.1 項(xiàng)目準(zhǔn)備... 259
8.5.2 數(shù)據(jù)庫準(zhǔn)備... 259
8.5.3 核心方法說明... 260
8.5.4 項(xiàng)目啟動(dòng)順序及訪問... 264
8.5.5 整合Seata實(shí)現(xiàn)分布式事務(wù)... 265
8.6 Spring Cloud Alibaba Seata. 269
8.6.1 Spring Cloud項(xiàng)目準(zhǔn)備... 270
8.6.2 集成Spring Cloud Alibaba Seata. 270
8.6.3 關(guān)于事務(wù)分組的說明... 275
8.7 Seata AT模式的實(shí)現(xiàn)原理... 276
8.7.1 AT模式第一階段的實(shí)現(xiàn)原理... 277
8.7.2 AT模式第二階段的原理分析... 279
8.7.3 關(guān)于事務(wù)的隔離性保證... 280
8.8 本章小結(jié)... 283
第9章 RocketMQ分布式消息通信... 285
9.1 什么是RocketMQ.. 285
9.1.1 RocketMQ的應(yīng)用場(chǎng)景... 286
9.1.2 RocketMQ的安裝... 286
9.1.3 RocketMQ如何發(fā)送消息... 287
9.1.4 RocketMQ如何消費(fèi)消息... 289
9.2 Spring Cloud Alibaba RocketMQ.. 291
9.2.1 Spring Cloud Alibaba RocketMQ架構(gòu)圖... 293
9.2.2 Spring Cloud Stream消息發(fā)送流程... 294
9.2.3 RocketMQ Binder集成消息發(fā)送... 299
9.2.4 RocketMQ Binder集成消息訂閱... 303
9.2.5 Spring Cloud Stream消息訂閱流程... 308
9.3 RocketMQ集群管理... 314
9.3.1 整體架構(gòu)設(shè)計(jì)... 314
9.3.2 基本概念... 315
9.3.3 為什么放棄ZooKeeper而選擇NameServer 316
9.4 如何實(shí)現(xiàn)順序消息... 318
9.4.1 順序消息的使用場(chǎng)景... 318
9.4.2 如何發(fā)送和消費(fèi)順序消息... 319
9.4.3 順序發(fā)送的技術(shù)原理... 321
9.4.4 普通發(fā)送的技術(shù)原理... 322
9.4.5 順序消費(fèi)的技術(shù)原理... 324
9.4.6 并發(fā)消費(fèi)的技術(shù)原理... 325
9.4.7 消息的冪等性... 325
9.5 如何實(shí)現(xiàn)事務(wù)消息... 326
9.5.1 事務(wù)消息的使用場(chǎng)景... 326
9.5.2 如何發(fā)送事務(wù)消息... 327
9.5.3 事務(wù)消息的技術(shù)原理... 330
9.6 高性能設(shè)計(jì)... 331
9.6.1 順序?qū)懕P... 333
9.6.2 消費(fèi)隊(duì)列設(shè)計(jì)... 334
9.6.3 消息跳躍讀取... 336
9.6.4 數(shù)據(jù)零拷貝... 336
9.6.5 動(dòng)態(tài)伸縮能力... 336
9.6.6 消息實(shí)時(shí)投遞... 337
9.7 高可用設(shè)計(jì)... 338
9.7.1 消息發(fā)送重試機(jī)制... 339
9.7.2 故障規(guī)避機(jī)制... 340
9.7.3 同步刷盤與異步刷盤... 343
9.7.4 主從復(fù)制... 350
9.7.5 讀寫分離... 351
9.7.6 消費(fèi)重試機(jī)制... 351
9.7.7 ACK機(jī)制... 352
9.7.8 Broker集群部署... 352
9.8 本章小結(jié)... 353
第10章 微服務(wù)網(wǎng)關(guān)之Spring Cloud Gateway. 354
10.1 API網(wǎng)關(guān)的作用... 355
10.1.1 統(tǒng)一認(rèn)證鑒權(quán)... 356
10.1.2 灰度發(fā)布... 357
10.2 網(wǎng)關(guān)的本質(zhì)及技術(shù)選型... 358
10.2.1 OpenResty. 358
10.2.2 Spring Cloud Zuul 360
10.2.3 Spring Cloud Gateway. 361
10.3 Spring Cloud Gateway網(wǎng)關(guān)實(shí)戰(zhàn)... 361
10.3.1 spring-cloud-gateway-service. 361
10.3.2 spring-cloud-gateway-sample. 362
10.4 Spring Cloud Gateway原理分析... 363
10.5 Route Predicate Factories. 364
10.5.1 指定時(shí)間規(guī)則匹配路由... 365
10.5.2 Cookie匹配路由... 365
10.5.3 Header匹配路由... 366
10.5.4 Host匹配路由... 366
10.5.5 請(qǐng)求方法匹配路由... 367
10.5.6 請(qǐng)求路徑匹配路由... 367
10.6 Gateway Filter Factories. 367
10.6.1 GatewayFilter 368
10.6.2 GlobalFilter 372
10.7 自定義過濾器... 375
10.7.1 自定義GatewayFilter 375
10.7.2 自定義GlobalFilter 377
10.8 Spring Cloud Gateway集成Nacos實(shí)現(xiàn)請(qǐng)求負(fù)載... 378
10.9 Spring Cloud Gateway集成Sentinel網(wǎng)關(guān)限流... 381
10.9.1 Route維度限流... 382
10.9.2 自定義API分組限流... 384
10.9.3 自定義異常... 386
10.9.4 網(wǎng)關(guān)流控控制臺(tái)... 387
10.9.5 網(wǎng)關(guān)限流原理... 388
10.10 本章小結(jié)... 389

本目錄推薦

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