Go語言微服務開發實踐

王德利

  • 出版商: 清華大學
  • 出版日期: 2024-09-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • ISBN: 7302669066
  • ISBN-13: 9787302669067
  • 相關分類: Microservices 微服務SOA
  • 立即出貨

  • Go語言微服務開發實踐-preview-1
  • Go語言微服務開發實踐-preview-2
  • Go語言微服務開發實踐-preview-3
Go語言微服務開發實踐-preview-1

相關主題

商品描述

"《Go語言微服務開發實踐》循序漸進、由淺入深地講解了Go語言微服務開發的核心知識,並通過具體實例的實現過程演練了開發Go語言微服務程序的方法和流程。全書共分15章,分別講解了微服務架構概述,服務註冊與發現,分佈式配置中心,日誌記錄與監控,容器化與部署,消息傳遞與異步通信,遠程過程調用,構建RESTful API,統一認證與授權,數據庫訪問與ORM,事件驅動架構,容錯處理與負載均衡,服務網關與API管理,DevOps與持續交付及高並發在線聊天室系統。本書內容簡潔、全面,且不失其技術深度,書中以簡練的文字介紹了復雜的案例,方便讀者學習使用。 《Go語言微服務開發實踐》適用於已經瞭解了Go語言基礎語法,並想進一步學Go Web開發、Go語言微服務開發、Go語言項目架構的讀者,還可以作為高等院校相關專業的師生用書和培訓機構的培訓教材。 "

目錄大綱

目錄 

第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