Go語言微服務開發實踐
王德利
- 出版商: 清華大學
- 出版日期: 2024-09-01
- 售價: $594
- 貴賓價: 9.5 折 $564
- 語言: 簡體中文
- ISBN: 7302669066
- ISBN-13: 9787302669067
-
相關分類:
Microservices 微服務、SOA
立即出貨
相關主題
商品描述
目錄大綱
目錄
第1章 微服務架構概述 1
1.1 微服務基礎 2
1.1.1 發展背景 2
1.1.2 微服務架構與傳統架構的區別 3
1.1.3 微服務架構的優勢 4
1.1.4 雲計算 5
1.1.5 雲原生 6
1.2 微服務的設計原則 7
1.3 常用微服務開發語言 8
1.3.1 Java微服務和Spring Cloud 8
1.3.2 Go語言 9
1.3.3 Python語言 10
第2章 服務註冊與發現 13
2.1 服務註冊與發現的基本概念 14
2.1.1 服務註冊與發現的基本原理 14
2.1.2 常見的服務發現模式 15
2.2 服務註冊與發現工具 16
2.2.1 基於DNS的服務發現工具 16
2.2.2 專用的服務註冊與發現工具 17
2.3 實現微服務架構中的服務註冊與發現 18
2.3.1 使用服務註冊與發現庫 18
2.3.2 與容器編排工具的集成 22
2.3.3 ZooKeeper客戶端庫 25
第3章 分佈式配置中心 27
3.1 配置管理的問題和挑戰 28
3.2 分佈式配置中心的基本概念 29
3.2.1 配置中心的基本架構 29
3.2.2 配置的存儲方式和獲取方式 30
3.3 常見的分佈式配置中心工具 31
3.3.1 ZooKeeper 31
3.3.2 Consul 32
3.3.3 Etcd 33
3.4 在微服務架構中使用分佈式配置中心 34
3.4.1 配置中心的集成方式 34
3.4.2 動態刷新配置實戰 36
3.4.3 配置熱更新實戰 39
第4章 日誌記錄與監控 41
4.1 日誌記錄的基本概念 42
4.1.1 日誌級別和日誌格式 42
4.1.2 日誌記錄框架和庫 43
4.1.3 日誌聚合和分析工具 44
4.2 監控的基本概念 44
4.2.1 健康檢查和指標收集 45
4.2.2 實時監控和告警 46
4.2.3 分佈式跟蹤和性能監控 47
4.2.4 常用的監控工具 47
4.3 在微服務架構中實現日誌記錄和監控實踐 48
4.3.1 集中式日誌記錄實戰 48
4.3.2 分佈式追蹤實戰 53
4.3.3 監控指標的收集和展示實戰 62
第5章 容器化與部署 67
5.1 容器化的概念和優勢 68
5.1.1 容器化的原理 68
5.1.2 容器化的優勢 68
5.2 常用的容器化技術 69
5.2.1 Docker 69
5.2.2 Kubernetes 70
5.2.3 Apache Mesos 71
5.2.4 Amazon ECS 72
5.3 構建容器鏡像 73
5.3.1 Dockerfile的使用和最佳實踐 73
5.3.2 鏡像倉庫和版本管理 76
5.4 容器編排與部署 77
5.4.1 常用的容器編排與部署工具 78
5.4.2 使用YAML進行配置與部署 78
5.5 容器監控和調度 80
5.5.1 容器監控指標的收集和展示 81
5.5.2 水平擴展和自動調度 82
5.5.3 容器網絡和服務發現 83
第6章 消息傳遞與異步通信 91
6.1 消息傳遞的基本概念 92
6.2 消息傳遞的編解碼和協議 93
6.3 異步通信的基本概念 94
6.4 常用的消息傳遞中間件 95
6.4.1 Apache Kafka 95
6.4.2 RabbitMQ 96
6.4.3 Apache ActiveMQ 96
6.4.4 NATS 97
6.5 異步通信模式 98
6.5.1 異步通信模式的常見形式 98
6.5.2 發布/訂閱模式 99
6.5.3 請求/響應模式 99
6.6 微服務消息傳遞和異步通信實戰 100
6.6.1 系統配置 100
6.6.2 消息處理 102
6.6.3 入口文件 106
第7章 遠程過程調用 113
7.1 遠程過程調用的概念和原理 114
7.1.1 遠程過程調用的基本工作流程 114
7.1.2 遠程對象和遠程方法調用 114
7.1.3 常見的RPC框架和協議 115
7.2 RPC的序列化和傳輸 116
7.2.1 序列化和反序列化的概念 116
7.2.2 常用的序列化協議 117
7.3 在微服務架構中使用RPC 117
7.3.1 Go語言原生RPC實戰 118
7.3.2 gRPC高性能遠程過程調用實戰 120
7.3.3 使用Go-kit實現 RPC實戰 126
第8章 構建RESTful API 131
8.1 RESTful API介紹 132
8.1.1 REST的基本概念 132
8.1.2 RESTful架構的優點和約束 133
8.2 設計RESTful API 134
8.2.1 資源的定義和命名 134
8.2.2 HTTP方法和狀態碼的使用 135
8.2.3 請求和響應的數據格式 136
8.3 數據驗證和輸入校驗 138
8.4 RESTful API的版本控制 140
8.4.1 版本控制的需求和策略 140
8.4.2 URI和請求頭的版本控制 141
8.4.3 URL重寫和命名空間 142
8.5 RESTful API實戰:雲原生圖書管理系統 143
8.5.1 系統配置 143
8.5.2 數據庫遷移 145
8.5.3 實現RESTful API 147
8.5.4 驗證處理 150
8.5.5 總結 152
第9章 統一認證與授權 155
9.1 認證與授權的基本概念 156
9.1.1 認證的定義和作用 156
9.1.2 授權的定義和作用 156
9.1.3 認證與授權的關系和流程 157
9.1.4 常見的身份認證協議與技術 157
9.2 統一認證的架構與實現 159
9.2.1 單點登錄 159
9.2.2 統一認證的架構和組件 160
9.2.3 用戶身份管理和存儲 160
9.3 授權與權限管理 162
9.3.1 授權模型 162
9.3.2 授權策略 162
9.4 在微服務架構中使用統一認證與授權 163
9.4.1 微服務單點登錄實戰 163
9.4.2 微服務OAuth 2.0認證實戰 173
第10章 數據庫訪問與ORM 179
10.1 數據訪問層 180
10.1.1 數據訪問層的職責和重要性 180
10.1.2 數據訪問層的設計原則 181
10.2 ORM基礎 182
10.2.1 關系映射 182
10.2.2 ORM的定義和作用 182
10.3 常見的Go語言ORM框架 183
10.3.1 GORM 183
10.3.2 XORM 187
10.3.3 SQLBoiler 191
10.3.4 Gorp 196
第11章 事件驅動架構 201
11.1 事件驅動架構的基本概念 202
11.1.1 事件驅動架構的定義和特點 202
11.1.2 事件與事件流 203
11.2 事件發布與訂閱模式 204
11.2.1 發布者—訂閱者模式 204
11.2.2 事件通道和消息代理 205
11.2.3 基於主題的訂閱和過濾 205
11.3 事件溯源和CQRS模式 206
11.3.1 事件溯源的概念 206
11.3.2 事件存儲和事件日誌 207
11.3.3 命令查詢職責分離 208
11.4 事件驅動的微服務架構 209
11.4.1 事件驅動與微服務的關系 209
11.4.2 事件驅動架構的組件和通信模式 210
11.5 Go語言微服務事件驅動架構實戰 211
11.5.1 項目介紹 211
11.5.2 技術棧 213
11.5.3 具體實現 213
11.5.4 總結 222
第12章 容錯處理與負載均衡 223
12.1 容錯處理的基本概念 224
12.1.1 微服務的容錯處理策略和技術 224
12.1.2 常用的容錯處理工具 225
12.2 微服務的負載均衡 230
12.2.1 負載均衡的作用 231
12.2.2 負載均衡原理和算法 231
12.2.3 常用的負載均衡器和工具 232
12.3 服務註冊與服務發現 238
12.3.1 服務註冊的概念和流程 238
12.3.2 服務發現的原理和機制 239
12.3.3 常用的服務註冊與發現工具 240
12.4 容器編排與彈性伸縮 254
12.4.1 容器編排的概念和作用 254
12.4.2 彈性伸縮的原理和策略 255
12.4.3 常用的容器編排工具和平臺 256
第13章 服務網關與API管理 261
13.1 服務網關基礎 262
13.1.1 服務網關的定義和角色 262
13.1.2 服務網關與微服務架構的關系 263
13.1.3 常用的服務網關框架和工具 263
13.2 API管理與開放平臺 264
13.2.1 API管理與開放平臺相關概念 264
13.2.2 API設計和文檔管理 265
13.2.3 API授權與訪問控制 267
13.3 服務發現與動態路由 268
13.3.1 服務發現的概念和實現 268
13.3.2 動態路由的實現和配置 269
13.3.3 服務註冊與發現的工具和框架 270
13.4 安全與監控 271
13.4.1 服務網關的安全機制 271
13.4.2 API的安全性與防護措施 272
13.4.3 服務網關的監控與日誌管理 273
13.5 性能優化與緩存 274
13.5.1 服務網關的性能瓶頸 274
13.5.2 緩存策略與機制 275
13.5.3 CDN與內容分發 276
13.6 服務網關與API管理實戰 277
13.6.1 項目功能 277
13.6.2 核心代碼 277
13.6.3 使用框架 290
第14章 DevOps與持續交付 295
14.1 DevOps概述 296
14.1.1 DevOps的原則 296
14.1.2 DevOps的核心價值和優勢 296
14.2 DevOps工具與技術 297
14.2.1 持續集成與持續交付工具 297
14.2.2 配置管理與自動化工具 298
14.3 DevOps實踐與流程 299
14.3.1 持續集成與持續交付流程 299
14.3.2 基礎設施即代碼和自動化測試 300
14.3.3 監控和日誌管理 301
14.4 DevOps與雲計算 302
14.4.1 雲原生應用開發與部署 302
14.4.2 雲平臺的彈性和自動化特性 303
14.4.3 DevOps在多雲環境中的挑戰與解決方案 304
14.5 DevSecOps和持續安全 305
14.5.1 安全文化和安全自動化 306
14.5.2 安全測試和漏洞修復 307
14.5.3 安全監控和響應機制 308
14.6 持續交付與業務價值 309
14.6.1 快速交付和敏捷創新 309
14.6.2 用戶反饋和持續改進 310
14.6.3 DevOps對組織和團隊的影響 311
14.7 基於DevOps環境的Go語言微服務實戰 312
14.7.1 項目設置和版本控制 312
14.7.2 自動化構建 313
14.7.3 持續集成 314
14.7.4 自動化測試 316
14.7.5 容器化 317
14.7.6 持續交付 318
14.7.7 環境管理 321
14.7.8 部署自動化 322
14.7.9 監控和日誌 324
14.7.10 持續改進 325
第15章 高並發在線聊天室系統 327
15.1 背景介紹 328
15.2 系統分析 328
15.2.1 需求分析 329
15.2.2 系統設計 329
15.2.3 系統模塊架構分析 331
15.3 系統配置文件 331
15.3.1 讀取配置文件 331
15.3.2 實現系統配置文件 333
15.4 數據庫設計 333
15.4.1 數據庫表設計 333
15.4.2 數據庫連接 334
15.4.3 model層 337
15.5 具體實現 342
15.5.1 URL路由 342
15.5.2 中間件層 345
15.5.3 Service業務層 349
15.5.4 Controller層 353
15.6 調試運行 359