注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信網(wǎng)絡(luò)服務(wù)分布式微服務(wù)架構(gòu):原理與實(shí)戰(zhàn)

分布式微服務(wù)架構(gòu):原理與實(shí)戰(zhàn)

分布式微服務(wù)架構(gòu):原理與實(shí)戰(zhàn)

定 價(jià):¥89.00

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

ISBN: 9787302537816 出版時(shí)間: 2019-10-01 包裝:
開本: 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,系統(tǒng)架構(gòu)由單體架構(gòu)、垂直MVC架構(gòu)、SOA服務(wù)化、分布式服務(wù)演變到分布式微服務(wù)架構(gòu),這是互聯(lián)網(wǎng)企業(yè)架構(gòu)的必經(jīng)之路。分布式微服務(wù)架構(gòu)涵蓋的技術(shù)面廣,知識點(diǎn)多。本書旨在讓更多計(jì)算機(jī)從業(yè)者熟悉一個(gè)完整的分布式微服務(wù)架構(gòu)所涉及的基礎(chǔ)概念、涵蓋的技術(shù)以及實(shí)戰(zhàn)開發(fā)。 本書蘊(yùn)含的知識體系甚廣,第1~2章主要講解架構(gòu)是如何向前演化發(fā)展的以及閱讀本書之前需要準(zhǔn)備的環(huán)境。第3~5章主要講解服務(wù)之間的RPC調(diào)用、通信協(xié)議等。第6~7章主要講解服務(wù)路由以及服務(wù)注冊中心的原理和實(shí)踐。第8章主要講解服務(wù)調(diào)用。第9章主要講解服務(wù)容器化以及如何部署和發(fā)布服務(wù)。第10~11章主要講解服務(wù)限流、降級、容錯(cuò)以及熔斷等技術(shù)。第12~13章主要講解如何搭建服務(wù)日志和監(jiān)控體系。第15章主要講解配置中心的原理以及如何搭建配置中心。第16章主要講解分布式數(shù)據(jù)庫、分布式緩存、分布式事務(wù)、分布式Session以及服務(wù)如何通過Kafka解耦。第17章主要講解微服務(wù)如何測試。第18章主要講解目前主流的分布式微服務(wù)架構(gòu)案例。 本書適用于所有Java編程語言開發(fā)人員、分布式微服務(wù)架構(gòu)愛好者以及計(jì)算機(jī)專業(yè)的學(xué)生等。

作者簡介

  黃文毅,CSDN博客專家,CSDN學(xué)院、網(wǎng)易學(xué)院和騰訊學(xué)院等網(wǎng)絡(luò)學(xué)院講師。曾就職于廈門星耀藍(lán)圖科技有限公司(為浦發(fā)銀行、興業(yè)銀行、南京銀行、湖南農(nóng)信銀行等銀行開發(fā)系統(tǒng))和上海美團(tuán)(從事美團(tuán)和大眾點(diǎn)評后端開發(fā)工作),目前就職于廈門美圖科技有限公司,從事美圖秀秀和美拍后端開發(fā)工作。

圖書目錄

第1章  從架構(gòu)演進(jìn)啟程 1
1.1  水平分層架構(gòu) 1
1.1.1  應(yīng)用架構(gòu)概述 1
1.1.2  MVC架構(gòu)/水平分層架構(gòu) 2
1.2   SOA服務(wù)化架構(gòu) 3
1.2.1  SOA概述 4
1.2.2  SOA的特征 4
1.2.3  SOA面臨的問題 5
1.3  分布式微服務(wù)架構(gòu) 5
1.3.1  微服務(wù)概述 5
1.3.2  SOA與微服務(wù) 5
1.3.3  微服務(wù)架構(gòu)的特點(diǎn) 6
1.3.4  微服務(wù)架構(gòu)的缺點(diǎn) 6
1.3.5  微服務(wù)架構(gòu)全景圖 7
1.3.6  微服務(wù)類型 8
1.3.7  微服務(wù)拆分原則與步驟 9
第2章  微服務(wù)開發(fā)框架 11
2.1  環(huán)境準(zhǔn)備 11
2.1.1  安裝JDK 11
2.1.2  安裝 Intellij IDEA 14
2.1.3  安裝 Apache Maven 14
2.2  一分鐘快速搭建Spring Boot項(xiàng)目 15
2.2.1  使用Spring Initializr新建項(xiàng)目 15
2.2.2  測試 18
2.3  Spring Boot簡單介紹 18
2.3.1  Spring Boot核心功能及特性 19
2.3.2  Spring Boot的缺點(diǎn) 20
2.4  Spring Boot目錄介紹 20
2.4.1  Spring Boot工程目錄 20
2.4.2  Spring Boot入口類 21
2.4.3  Spring Boot測試類 22
2.4.4  pom文件 23
2.5  Spring Boot生產(chǎn)級特性 24
2.5.1  應(yīng)用監(jiān)控 24
2.5.2  健康檢查 28
2.5.3  跨域訪問 29
2.5.4  外部配置 30
第3章  分布式RPC框架 31
3.1  RPC框架概述 31
3.1.1  RPC的定義 31
3.1.2  RPC核心組件 31
3.1.3  RPC調(diào)用過程 32
3.1.4  RPC框架調(diào)用分類 33
3.1.5  RPC框架性能 35
3.1.6  RPC框架與分布式服務(wù)框架 35
3.2  RPC框架 36
3.2.1  RMI遠(yuǎn)程方法調(diào)用 36
3.2.2  Thrift 37
3.2.3  Hessian 38
3.2.4  Avro-RPC 38
3.2.5  gRPC 38
3.2.6  其他RPC框架 39
第4章  序列化與反序列化 40
4.1  序列化與反序列化 40
4.1.1  序列化/反序列化概念 40
4.1.2  序列化/反序列化特性 41
4.2  常用序列化框架 41
4.2.1  Java默認(rèn)序列化 41
4.2.2  XML序列化框架 46
4.2.3  JSON序列化框架 48
4.2.4  ProtoBuf序列化框架 50
第5章  微服務(wù)底層通信與協(xié)議 54
5.1  Java網(wǎng)絡(luò)通信 54
5.1.1  傳統(tǒng)BIO編程 54
5.1.2  偽異步I/O編程 60
5.1.3  NIO編程 62
5.2  Netty框架 78
5.2.1  Netty概述 78
5.2.2  個(gè)Netty應(yīng)用程序 78
5.2.3  Netty架構(gòu)設(shè)計(jì) 84
5.3  分布式服務(wù)框架協(xié)議 89
5.3.1  主流公有協(xié)議 89
5.3.2  私有協(xié)議設(shè)計(jì) 90
第6章  服務(wù)路由與負(fù)載均衡 94
6.1  服務(wù)路由概述 94
6.1.1  服務(wù)路由的定義 94
6.1.2  服務(wù)信息存放方式 94
6.2  負(fù)載均衡概述 95
6.2.1  Nginx的定義 95
6.2.2  負(fù)載均衡的實(shí)現(xiàn) 95
6.2.3  負(fù)載均衡算法 98
第7章  微服務(wù)注冊中心 103
7.1  了解微服務(wù)注冊中心 103
7.1.1  注冊中心幾個(gè)概念 103
7.1.2  注冊中心 104
7.2  ZooKeeper實(shí)現(xiàn)服務(wù)注冊中心 104
7.2.1  ZooKeeper概述 104
7.2.2  ZooKeeper的原理 105
7.2.3  ZooKeeper的安裝 106
7.2.4  ZooKeeper搭建集群環(huán)境 109
7.2.5  ZooKeeper集群總體架構(gòu) 110
7.2.6  命令行客戶端zkCli.sh 112
7.2.7  ZkClient連接ZooKeeper 116
7.2.8  ZooKeeper實(shí)現(xiàn)服務(wù)注冊與發(fā)現(xiàn) 120
第8章  微服務(wù)框架服務(wù)調(diào)用與容錯(cuò) 122
8.1  服務(wù)調(diào)用概述 122
8.2  服務(wù)調(diào)用方式 123
8.2.1  同步服務(wù)調(diào)用 123
8.2.2  異步服務(wù)調(diào)用 125
8.2.3  并行服務(wù)調(diào)用 130
8.2.4  泛化調(diào)用 132
第9章  分布式微服務(wù)封裝與部署 133
9.1  微服務(wù)封裝技術(shù) 133
9.1.1  Docker概述 133
9.1.2  Docker的基本概念 135
9.1.3  Docker架構(gòu) 135
9.1.4  Docker的安裝 137
9.1.5  Docker的常用命令 138
9.1.6  制作鏡像 142
9.1.7  使用Dockerfile構(gòu)建鏡像 144
9.1.8  Spring Boot集成Docker 147
9.2  微服務(wù)部署概述 150
9.2.1  藍(lán)綠部署 150
9.2.2  滾動(dòng)發(fā)布 152
9.2.3  灰度發(fā)布/金絲雀部署 154
第10章  分布式服務(wù)限流 155
10.1  服務(wù)限流概述 155
10.1.1  限流定義 155
10.1.2  限流算法 155
10.2  限流設(shè)計(jì) 157
10.2.1  限流設(shè)計(jì)原理 157
10.2.2  分級限流 158
第11章  服務(wù)降級、熔斷、調(diào)度 159
11.1  服務(wù)降級概述 159
11.2  服務(wù)降級方式 159
11.2.1  服務(wù)降級開關(guān) 159
11.2.2  自動(dòng)降級 160
11.2.3  讀服務(wù)降級 161
11.2.4  寫服務(wù)降級 161
11.3  服務(wù)容錯(cuò)策略 161
11.3.1  失敗轉(zhuǎn)移(Failover) 162
11.3.2  失敗自動(dòng)恢復(fù)(Failback) 162
11.3.3  快速失?。‵ailfast) 162
11.3.4  失敗緩存(FailCache) 162
11.4  Hystrix降級、熔斷 162
11.4.1  Hystrix簡介 162
11.4.2  Hystrix實(shí)現(xiàn)降級/熔斷 164
11.5  服務(wù)優(yōu)先級設(shè)計(jì) 165
11.5.1  服務(wù)實(shí)例數(shù)量調(diào)整 165
11.5.2  加權(quán)優(yōu)先級隊(duì)列 166
11.5.3  線程調(diào)度器 167
第12章  服務(wù)版本與服務(wù)發(fā)布 168
12.1  服務(wù)概述 168
12.2  服務(wù)版本 168
12.2.1  服務(wù)版本概述 168
12.2.2  Snapshot和Release 169
12.3  服務(wù)發(fā)布 169
12.3.1  服務(wù)發(fā)布概述 169
12.3.2  服務(wù)發(fā)布方式 170
第13章  分布式微服務(wù)日志中心 173
13.1  分布式日志概述 173
13.1.1  結(jié)構(gòu)化日志/非結(jié)構(gòu)化日志 173
13.1.2  日志類型 175
13.2  日志框架 175
13.2.1  JDK Logger 175
13.2.2  Apache Commons Logging 177
13.2.3  Log4j/Log4j 2 177
13.2.4  Spring Boot集成Log4j 179
13.2.5  Docker日志框架 181
13.2.6  Linux系統(tǒng)Syslog 183
13.3  搭建日志中心 183
13.3.1  ELK概述 183
13.3.2  Elasticsearch日志存儲(chǔ) 184
13.3.3  Logstash日志收集 189
13.3.4  Fluentd日志收集 191
13.3.5  Kibana日志查詢 193
13.3.6  ELK架構(gòu)與Docker整合 194
13.3.7  ELK架構(gòu)原理 195
第14章  分布式微服務(wù)監(jiān)控 197
14.1  分布式服務(wù)架構(gòu)監(jiān)控 197
14.1.1  監(jiān)控的價(jià)值 197
14.1.2  監(jiān)控的完整體系 197
14.1.3  微服務(wù)監(jiān)控類型 198
14.1.4  Spring Boot應(yīng)用監(jiān)控 198
14.1.5  Spring Boot Admin監(jiān)控系統(tǒng) 201
14.2  搭建系統(tǒng)監(jiān)控中心 206
14.2.1  概述 206
14.2.2  時(shí)序數(shù)據(jù)收集系統(tǒng):cAdvisor 206
14.2.3  時(shí)序數(shù)據(jù)存儲(chǔ)系統(tǒng):InfluxDB 209
14.2.4  時(shí)序數(shù)據(jù)分析系統(tǒng):Grafana 212
14.2.5  集成InfluxDB cAdvisor Grafana 214
第15章  分布式微服務(wù)配置中心 218
15.1  配置中心概述 218
15.1.1  配置概述 218
15.1.2  配置中心解決問題 218
15.1.3  全局配置 219
15.1.4  配置中心 221
15.2  Spring Cloud Config 223
15.2.1  Spring Cloud Config概述 223
15.2.2  Spring Cloud Config快速入門 224
第16章  分布式微服務(wù)存儲(chǔ)與解耦 232
16.1  分布式數(shù)據(jù)庫架構(gòu) 232
16.1.1  分庫 232
16.1.2  分表 233
16.1.3  水平切分的方式 233
16.1.4  垂直切分的方式 235
16.1.5  分組 235
16.1.6  Mycat分庫分表實(shí)戰(zhàn) 236
16.1.7  Spring MyBatis Mycat快速體驗(yàn) 240
16.2  分布式事務(wù) 249
16.2.1  數(shù)據(jù)庫事務(wù) 249
16.2.2  分布式事務(wù) 249
16.2.3  CAP定理 250
16.2.4  BASE理論 251
16.2.5  兩階段提交(2PC) 252
16.2.6  補(bǔ)償事務(wù)(TCC) 252
16.2.7  后置提交 254
16.2.8  本地消息表(異步確保) 255
16.3  分布式緩存架構(gòu) 256
16.3.1  Memcache與Redis 256
16.3.2  進(jìn)程內(nèi)緩存 257
16.3.3  Redis單節(jié)點(diǎn)安裝 259
16.3.4  Redis持久化策略 260
16.3.5  Redis主從復(fù)制模式 263
16.3.6  Redis哨兵模式 266
16.3.7  Redis哨兵模式安裝部署 271
16.3.8  Redis集群模式 277
16.3.9  Redis集群環(huán)境搭建 280
16.3.10  Redis緩存穿透和雪崩 288
16.4  微服務(wù)解耦 294
16.4.1  服務(wù)解耦概述 294
16.4.2  Kafka介紹 295
16.4.3  Kafka安裝 299
16.4.4  Kafka搭建集群環(huán)境 300
16.4.5  Kafka Manager的安裝 301
16.4.6  Kafka常用命令 301
16.4.7  Spring Boot集成Kafka 311
16.5  分布式服務(wù)Session 315
16.5.1  Session與Cookie 315
16.5.2  Session一致性問題 315
16.5.3  Session同步 316
第17章  分布式微服務(wù)測試 318
17.1  分布式微服務(wù)測試 318
17.1.1  微服務(wù)測試概述 318
17.1.2  微服務(wù)測試 319
17.2  Spring Boot單元測試 321
17.3  Mockito/PowerMockito測試框架 323
17.3.1  Mockito概述 323
17.3.2  Mockito簡單實(shí)例 324
17.3.3  PowerMock概述 327
17.3.4  PowerMockito簡單實(shí)例 327
17.4  H2內(nèi)存型數(shù)據(jù)庫 330
17.4.1  H2概述 330
17.4.2  Spring Boot集成H2 330
17.5  REST API測試 333
17.5.1  Postman概述 333
17.5.2  Postman簡單使用 333
17.6  性能測試 336
17.6.1  ab概述 336
17.6.2  ab測試 336
17.6.3  其他性能測試工具 338
第18章  分布式微服務(wù)架構(gòu)經(jīng)典案例 341
18.1  微服務(wù)架構(gòu)案例 341
18.1.1  微服務(wù)架構(gòu)概述 341
18.1.2  微服務(wù)架構(gòu)平臺(tái)選擇 342
18.1.3  微服務(wù)接口類型 342
18.2  分布式服務(wù)框架Dubbo 343
18.2.1  Dubbo概述 343
18.2.2  Dubbo原理 344
18.3  Spring Boot Spring Cloud解決方案 345
18.3.1  Spring Boot概述 345
18.3.2  Spring Cloud概述 345
18.3.3  微服務(wù)、Spring Boot、Spring Cloud的關(guān)系 347
18.3.4  Spring Cloud與Dubbo的優(yōu)劣 347
18.4   Spring Boot Kubernetes Docker解決方案 348
18.4.1  Docker概述 348
18.4.2  Kubernetes概述 349
18.4.3  Kubernetes的基本概念 349
18.4.4  Kubernetes的使用 351
18.4.5  Kubernetes的架構(gòu) 356
18.4.6  Kubernetes集群監(jiān)控 359
18.4.7  Kubernetes集群日志管理 359
18.4.8  Kubernetes解決方案 359
參考文獻(xiàn) 361

本目錄推薦

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