分散式微服務架構:原理與實戰

《分散式微服務架構:原理與實戰》是清華大學出版社於2019年11月1日出版的圖書,作者是黃文毅。

基本介紹

  • 書名:分散式微服務架構:原理與實戰
  • 作者:黃文毅
  • 出版社:清華大學出版社
  • 出版時間:2019年11月01日
  • 定價:89 元
  • ISBN:9787302537816
  • 印刷日期:2019.09.26
出版信息,內容簡介,圖書目錄,

出版信息

分散式微服務架構:原理與實戰
出版日期:2019.11.01
印刷日期:2019.09.26

內容簡介

隨著網際網路技術的發展,系統架構由單體架構、垂直MVC架構、SOA服務化、分散式服務演變到分散式微服務架構,這是網際網路企業架構的必經之路。分散式微服務架構涵蓋的技術面廣,知識點多。本書旨在讓更多計算機從業者熟悉一個完整的分散式微服務架構所涉及的基礎概念、涵蓋的技術以及實戰開發。本書蘊含的知識體系甚廣,第1~2章主要講解架構是如何向前演化發糠組狼姜展的以及閱讀本書之前需要準備的環境。第3~5章主要講解服務之間的RPC調用、通信協定等。第6~7章主要講解服務路由以及服務註冊中心的原理和實踐。第8章主鞏詢探要講解服務調用。第9章主要講解服務容器化以及如何部署和發布服務。第10~11章主要講解服務限流、降級、容錯以及熔斷等技術。

圖書目錄

第1章 從架構演進啟程 1
1.1 水平分層架構 1
1.1.1 套用架構概述 1
1.1.2 MVC架構/水平分層架構 2
1.2 SOA服務化架構 3
1.2.1 SOA概述 4
1.2.2 SOA的特徵 4
1.2.3 SOA面臨的問題 5
1.3 分散式微服務架構 5
1.3.1 微服務概述 5
1.3.2 SOA與微服務 5
1.3.3 微服務架構的特點 6
1.3.4 微霉臘頌服務架構的缺點 6
1.3.5 微服務腳少腿架構全景圖 7
1.3.6 微服務類型 8
1.3.7 微服務拆分原則籃笑拒擔與步驟 9
第2章 微服務開發框架 11
2.1 環境準備 11
2.1.1 安裝JDK 11
2.1.2 安裝 Intellij IDEA 14
2.1.3 安裝 Apache Maven 14
2.2 一分鐘快速搭建Spring Boot項尋墊目 15
2.2.1 使用Spring Initializr新建項目 15
2.2.2 測試 18
2.3 Spring Boot簡單介紹 18
2.3.1 Spring Boot核心功能及特性 19
2.3.2 Spring Boot的缺點 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生產級特性...
2.5.1套用監控 24
2.5.2健康檢查 28
2.5.3跨域訪問 29
2.5.4外部配置 30
第3章分散式RPC框架 31
3.1RPC框架概述 31
3.1.1RPC的定義 31
3.1.2RPC核心組件 31
3.1.3RPC調用過程 32
3.1.4RPC框架調用分類 33
3.1.5RPC框架性能 35
3.1.6RPC框架與分散式服務框架 35
3.2RPC框架 36
3.2.1RMI遠程方法調用 36
3.2.2Thrift 37
3.2.3Hessian 38
3.2.4Avro-RPC 38
3.2.5gRPC 38
3.2.6其他RPC框架 39
第4章序列化與反序列化 40
4.1序列化與反序列化 40
4.1.1序列化/反序列化概念 40
4.1.2序列化/反序列化特性 41
4.2常用序列化框架 41
4.2.1Java默認序列化 41
4.2.2XML序列化框架 46
4.2.3JSON序列化框架 48
4.2.4ProtoBuf序列化框架 50
第5章微服務底層通信與協定 54
5.1Java網路通信 54
5.1.1傳統BIO編程 54
5.1.2偽異步I/O編程 60
5.1.3NIO編程 62
5.2Netty框架凝匪承 78
5.2.1Netty概述 78
5.2.2第一個Netty應用程式 78
5.2.3Netty架構設計 84
5.3分散式服務框架協定 89
5.3.1主流公有協定 89
5.3.2私有協定設計 90
第6章服務路由與負載均衡 94
6.1服務路由概述 94
6.1.1服務路由的定義 94
6.1.2服務信息存放方式 94
6.2負載均衡概述 95
6.2.1Nginx的定義 95
6.2.2負載均衡的實現 95
6.2.3負載均衡算法 98
第7章微服務註冊中心 103
7.1了解微服務註冊中心 103
7.1.1註冊中心幾個概念 103
7.1.2註冊中心 104
7.2ZooKeeper實現服務註冊中心 104
7.2.1ZooKeeper概述 104
7.2.2ZooKeeper的原理 105
7.2.3ZooKeeper的安裝 106
7.2.4ZooKeeper搭建集群環境 109
7.2.5ZooKeeper集群總體架構 110
7.2.6命令行客戶端zkCli.sh 112
7.2.7ZkClient連線ZooKeeper 116
7.2.8ZooKeeper實現服務註冊與發現 120
第8章微服務框架服務調用與容錯 122
8.1服務調用概述 122
8.2服務調用方式 123
8.2.1同步服務調用 123
8.2.2異步服務調用 125
8.2.3並行服務調用 130
8.2.4泛化調用 132
第9章分散式微服務封裝與部署 133
9.1微服務封裝技術 133
9.1.1Docker概述 133
9.1.2Docker的基本概念 135
9.1.3Docker架構 135
9.1.4Docker的安裝 137
9.1.5Docker的常用命令 138
9.1.6製作鏡像 142
9.1.7使用Dockerfile構建鏡像 144
9.1.8SpringBoot集成Docker 147
9.2微服務部署概述 150
9.2.1藍綠部署 150
9.2.2滾動發布 152
9.2.3灰度發布/金絲雀部署 154
第10章分散式服務限流 155
10.1服務限流概述 155
10.1.1限流定義 155
10.1.2限流算法 155
10.2限流設計 157
10.2.1限流設計原理 157
10.2.2分級限流 158
第11章服務降級、熔斷、調度 159
11.1服務降級概述 159
11.2服務降級方式 159
11.2.1服務降級開關 159
11.2.2自動降級 160
11.2.3讀服務降級 161
11.2.4寫服務降級 161
11.3服務容錯策略 161
11.3.1失敗轉移(Failover) 162
11.3.2失敗自動恢復(Failback) 162
11.3.3快速失敗(Failfast) 162
11.3.4失敗快取(FailCache) 162
11.4Hystrix降級、熔斷 162
11.4.1Hystrix簡介 162
11.4.2Hystrix實現降級/熔斷 164
11.5服務優先權設計 165
11.5.1服務實例數量調整 165
11.5.2加權優先權佇列 166
11.5.3執行緒調度器 167
第12章服務版本與服務發布 168
12.1服務概述 168
12.2服務版本 168
12.2.1服務版本概述 168
12.2.2Snapshot和Release 169
12.3服務發布 169
12.3.1服務發布概述 169
12.3.2服務發布方式 170
第13章分散式微服務日誌中心 173
13.1分散式日誌概述 173
13.1.1結構化日誌/非結構化日誌 173
13.1.2日誌類型 175
13.2日誌框架 175
13.2.1JDKLogger 175
13.2.2ApacheCommonsLogging 177
13.2.3Log4j/Log4j2 177
13.2.4SpringBoot集成Log4j 179
13.2.5Docker日誌框架 181
13.2.6Linux系統Syslog 183
13.3搭建日誌中心 183
13.3.1ELK概述 183
13.3.2Elasticsearch日誌存儲 184
13.3.3Logstash日誌收集 189
13.3.4Fluentd日誌收集 191
13.3.5Kibana日誌查詢 193
13.3.6ELK架構與Docker整合 194
13.3.7ELK架構原理 195
第14章分散式微服務監控 197
14.1分散式服務架構監控 197
14.1.1監控的價值 197
14.1.2監控的完整體系 197
14.1.3微服務監控類型 198
14.1.4SpringBoot套用監控 198
14.1.5SpringBootAdmin監控系統 201
14.2搭建系統監控中心 206
14.2.1概述 206
14.2.2時序數據收集系統:cAdvisor 206
14.2.3時序數據存儲系統:InfluxDB 209
14.2.4時序數據分析系統:Grafana 212
14.2.5集成InfluxDB+cAdvisor+Grafana 214
第15章分散式微服務配置中心 218
15.1配置中心概述 218
15.1.1配置概述 218
15.1.2配置中心解決問題 218
15.1.3全局配置 219
15.1.4配置中心 221
15.2SpringCloudConfig 223
15.2.1SpringCloudConfig概述 223
15.2.2SpringCloudConfig快速入門 224
第16章分散式微服務存儲與解耦 232
16.1分散式資料庫架構 232
16.1.1分庫 232
16.1.2分表 233
16.1.3水平切分的方式 233
16.1.4垂直切分的方式 235
16.1.5分組 235
16.1.6Mycat分庫分表實戰 236
16.1.7Spring+MyBatis+Mycat快速體驗 240
16.2分散式事務 249
16.2.1資料庫事務 249
16.2.2分散式事務 249
16.2.3CAP定理 250
16.2.4BASE理論 251
16.2.5兩階段提交(2PC) 252
16.2.6補償事務(TCC) 252
16.2.7後置提交 254
16.2.8本地訊息表(異步確保) 255
16.3分散式快取架構 256
16.3.1Memcache與Redis 256
16.3.2進程內快取 257
16.3.3Redis單節點安裝 259
16.3.4Redis持久化策略 260
16.3.5Redis主從複製模式 263
16.3.6Redis哨兵模式 266
16.3.7 Redis哨兵模式安裝部署 271
16.3.8 Redis集群模式 277
16.3.9 Redis集群環境搭建 280
16.3.10 Redis快取穿透和雪崩 288
16.4 微服務解耦 294
16.4.1 服務解耦概述 294
16.4.2 Kafka介紹 295
16.4.3 Kafka安裝 299
3.1.2RPC核心組件 31
3.1.3RPC調用過程 32
3.1.4RPC框架調用分類 33
3.1.5RPC框架性能 35
3.1.6RPC框架與分散式服務框架 35
3.2RPC框架 36
3.2.1RMI遠程方法調用 36
3.2.2Thrift 37
3.2.3Hessian 38
3.2.4Avro-RPC 38
3.2.5gRPC 38
3.2.6其他RPC框架 39
第4章序列化與反序列化 40
4.1序列化與反序列化 40
4.1.1序列化/反序列化概念 40
4.1.2序列化/反序列化特性 41
4.2常用序列化框架 41
4.2.1Java默認序列化 41
4.2.2XML序列化框架 46
4.2.3JSON序列化框架 48
4.2.4ProtoBuf序列化框架 50
第5章微服務底層通信與協定 54
5.1Java網路通信 54
5.1.1傳統BIO編程 54
5.1.2偽異步I/O編程 60
5.1.3NIO編程 62
5.2Netty框架 78
5.2.1Netty概述 78
5.2.2第一個Netty應用程式 78
5.2.3Netty架構設計 84
5.3分散式服務框架協定 89
5.3.1主流公有協定 89
5.3.2私有協定設計 90
第6章服務路由與負載均衡 94
6.1服務路由概述 94
6.1.1服務路由的定義 94
6.1.2服務信息存放方式 94
6.2負載均衡概述 95
6.2.1Nginx的定義 95
6.2.2負載均衡的實現 95
6.2.3負載均衡算法 98
第7章微服務註冊中心 103
7.1了解微服務註冊中心 103
7.1.1註冊中心幾個概念 103
7.1.2註冊中心 104
7.2ZooKeeper實現服務註冊中心 104
7.2.1ZooKeeper概述 104
7.2.2ZooKeeper的原理 105
7.2.3ZooKeeper的安裝 106
7.2.4ZooKeeper搭建集群環境 109
7.2.5ZooKeeper集群總體架構 110
7.2.6命令行客戶端zkCli.sh 112
7.2.7ZkClient連線ZooKeeper 116
7.2.8ZooKeeper實現服務註冊與發現 120
第8章微服務框架服務調用與容錯 122
8.1服務調用概述 122
8.2服務調用方式 123
8.2.1同步服務調用 123
8.2.2異步服務調用 125
8.2.3並行服務調用 130
8.2.4泛化調用 132
第9章分散式微服務封裝與部署 133
9.1微服務封裝技術 133
9.1.1Docker概述 133
9.1.2Docker的基本概念 135
9.1.3Docker架構 135
9.1.4Docker的安裝 137
9.1.5Docker的常用命令 138
9.1.6製作鏡像 142
9.1.7使用Dockerfile構建鏡像 144
9.1.8SpringBoot集成Docker 147
9.2微服務部署概述 150
9.2.1藍綠部署 150
9.2.2滾動發布 152
9.2.3灰度發布/金絲雀部署 154
第10章分散式服務限流 155
10.1服務限流概述 155
10.1.1限流定義 155
10.1.2限流算法 155
10.2限流設計 157
10.2.1限流設計原理 157
10.2.2分級限流 158
第11章服務降級、熔斷、調度 159
11.1服務降級概述 159
11.2服務降級方式 159
11.2.1服務降級開關 159
11.2.2自動降級 160
11.2.3讀服務降級 161
11.2.4寫服務降級 161
11.3服務容錯策略 161
11.3.1失敗轉移(Failover) 162
11.3.2失敗自動恢復(Failback) 162
11.3.3快速失敗(Failfast) 162
11.3.4失敗快取(FailCache) 162
11.4Hystrix降級、熔斷 162
11.4.1Hystrix簡介 162
11.4.2Hystrix實現降級/熔斷 164
11.5服務優先權設計 165
11.5.1服務實例數量調整 165
11.5.2加權優先權佇列 166
11.5.3執行緒調度器 167
第12章服務版本與服務發布 168
12.1服務概述 168
12.2服務版本 168
12.2.1服務版本概述 168
12.2.2Snapshot和Release 169
12.3服務發布 169
12.3.1服務發布概述 169
12.3.2服務發布方式 170
第13章分散式微服務日誌中心 173
13.1分散式日誌概述 173
13.1.1結構化日誌/非結構化日誌 173
13.1.2日誌類型 175
13.2日誌框架 175
13.2.1JDKLogger 175
13.2.2ApacheCommonsLogging 177
13.2.3Log4j/Log4j2 177
13.2.4SpringBoot集成Log4j 179
13.2.5Docker日誌框架 181
13.2.6Linux系統Syslog 183
13.3搭建日誌中心 183
13.3.1ELK概述 183
13.3.2Elasticsearch日誌存儲 184
13.3.3Logstash日誌收集 189
13.3.4Fluentd日誌收集 191
13.3.5Kibana日誌查詢 193
13.3.6ELK架構與Docker整合 194
13.3.7ELK架構原理 195
第14章分散式微服務監控 197
14.1分散式服務架構監控 197
14.1.1監控的價值 197
14.1.2監控的完整體系 197
14.1.3微服務監控類型 198
14.1.4SpringBoot套用監控 198
14.1.5SpringBootAdmin監控系統 201
14.2搭建系統監控中心 206
14.2.1概述 206
14.2.2時序數據收集系統:cAdvisor 206
14.2.3時序數據存儲系統:InfluxDB 209
14.2.4時序數據分析系統:Grafana 212
14.2.5集成InfluxDB+cAdvisor+Grafana 214
第15章分散式微服務配置中心 218
15.1配置中心概述 218
15.1.1配置概述 218
15.1.2配置中心解決問題 218
15.1.3全局配置 219
15.1.4配置中心 221
15.2SpringCloudConfig 223
15.2.1SpringCloudConfig概述 223
15.2.2SpringCloudConfig快速入門 224
第16章分散式微服務存儲與解耦 232
16.1分散式資料庫架構 232
16.1.1分庫 232
16.1.2分表 233
16.1.3水平切分的方式 233
16.1.4垂直切分的方式 235
16.1.5分組 235
16.1.6Mycat分庫分表實戰 236
16.1.7Spring+MyBatis+Mycat快速體驗 240
16.2分散式事務 249
16.2.1資料庫事務 249
16.2.2分散式事務 249
16.2.3CAP定理 250
16.2.4BASE理論 251
16.2.5兩階段提交(2PC) 252
16.2.6補償事務(TCC) 252
16.2.7後置提交 254
16.2.8本地訊息表(異步確保) 255
16.3分散式快取架構 256
16.3.1Memcache與Redis 256
16.3.2進程內快取 257
16.3.3Redis單節點安裝 259
16.3.4Redis持久化策略 260
16.3.5Redis主從複製模式 263
16.3.6Redis哨兵模式 266
16.3.7 Redis哨兵模式安裝部署 271
16.3.8 Redis集群模式 277
16.3.9 Redis集群環境搭建 280
16.3.10 Redis快取穿透和雪崩 288
16.4 微服務解耦 294
16.4.1 服務解耦概述 294
16.4.2 Kafka介紹 295
16.4.3 Kafka安裝 299

相關詞條

熱門詞條

聯絡我們