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

Go微服務(wù)實(shí)戰(zhàn)

Go微服務(wù)實(shí)戰(zhàn)

定 價(jià):¥89.00

作 者: 劉金亮 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111674122 出版時(shí)間: 2021-03-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 396 字?jǐn)?shù):  

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

  本書(shū)針對(duì)Go語(yǔ)言進(jìn)行微服務(wù)開(kāi)發(fā)做了全面細(xì)致的介紹,書(shū)中內(nèi)容包括四大部分。 第①部分為Go語(yǔ)言基礎(chǔ)(第1~7章),包括Go語(yǔ)言基礎(chǔ)語(yǔ)法、Go語(yǔ)言基本特性和Go語(yǔ)言實(shí)戰(zhàn)項(xiàng)目等內(nèi)容。第②部分為Go語(yǔ)言進(jìn)階(第8~10章),主要介紹Go語(yǔ)言的并發(fā)編程進(jìn)階、Go語(yǔ)言Web編程以及綜合實(shí)戰(zhàn)。第③部分為微服務(wù)理論(第11~18章),包括微服務(wù)模式的理論基礎(chǔ)、微服務(wù)的進(jìn)程間通信、微服務(wù)的分布式事務(wù)管理、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)、微服務(wù)測(cè)試、Docker及ES-CQRS策略。其中,微服務(wù)進(jìn)程間通信重點(diǎn)介紹了gRPC,ES-CQRS策略部分給出了Go語(yǔ)言的實(shí)現(xiàn)。第④部分為微服務(wù)實(shí)戰(zhàn)(第19~22章),這一部分通過(guò)實(shí)戰(zhàn)項(xiàng)目講解了微服務(wù)的生產(chǎn)環(huán)境、日志和監(jiān)控、持續(xù)部署等內(nèi)容。書(shū)中每一部分都提供了示例代碼或?qū)崙?zhàn)項(xiàng)目,供讀者邊學(xué)習(xí)邊動(dòng)手實(shí)踐,盡量做到讓有Go語(yǔ)言基礎(chǔ)的人盡快了解、掌握微服務(wù)模式。

作者簡(jiǎn)介

  劉金亮研究生畢業(yè)于北京大學(xué),現(xiàn)任用友集團(tuán)架構(gòu)師。曾經(jīng)參與IBM、Accenture、Capgemini的軟件系統(tǒng)咨詢(xún)和開(kāi)發(fā)項(xiàng)目,對(duì)復(fù)雜業(yè)務(wù)系統(tǒng)的架構(gòu)和設(shè)計(jì)有豐富的經(jīng)驗(yàn),著有《Odoo快速入門(mén)與實(shí)戰(zhàn)》。

圖書(shū)目錄

前言
第一部分 Go語(yǔ)言基礎(chǔ)
第1章 Go語(yǔ)言程序基礎(chǔ) 2
1.1 Hello,World! 2
1.2 變量、指針及賦值 5
1.2.1 變量和常量 5
1.2.2 指針 8
1.2.3 賦值 9
1.3 包及作用域 10
1.4 選擇和循環(huán) 12
1.5 垃圾回收 13
1.6 小結(jié) 15
第2章 基本數(shù)據(jù)類(lèi)型 16
2.1 整型 17
2.1.1 整型取值范圍 17
2.1.2 運(yùn)算符 18
2.2 浮點(diǎn)型 19
2.3 復(fù)數(shù)和布爾類(lèi)型 21
2.4 格式化說(shuō)明符 22
2.5 小結(jié) 22
第3章 字符串與復(fù)合數(shù)據(jù)類(lèi)型 23
3.1 字符串和數(shù)組 23
3.1.1 字符串 24
3.1.2 數(shù)組 26
3.2 slice 27
3.2.1 結(jié)構(gòu)定義 27
3.2.2 基本操作 28
3.2.3 append 30
3.2.4 copy 31
3.2.5 其他 32
3.3 map 33
3.3.1 定義 33
3.3.2 基本操作 33
3.4 struct 35
3.4.1 結(jié)構(gòu)定義 36
3.4.2 基本操作 37
3.4.3 組合 38
3.5 JSON 40
3.6 小結(jié) 40
第4章 函數(shù)、方法、接口和反射 41
4.1 函數(shù) 41
4.1.1 函數(shù)的定義 41
4.1.2 閉包 42
4.1.3 作用域 43
4.1.4 多返回值及變長(zhǎng)參數(shù) 45
4.1.5 defer關(guān)鍵字 46
4.2 方法 46
4.3 接口 50
4.4 反射 54
4.5 小結(jié) 57
第5章 并發(fā)編程 59
5.1 協(xié)程 59
5.1.1 核心概念 60
5.1.2 goroutine的基本使用 60
5.1.3 sync.WaitGroup 62
5.2 通道 64
5.2.1 channel寫(xiě)入數(shù)據(jù) 64
5.2.2 channel接收數(shù)據(jù) 65
5.2.3 以channel作為函數(shù)參數(shù) 66
5.2.4 緩存channel 67
5.2.5 select 70
5.2.6 超時(shí)檢查 71
5.3 pipeline 74
5.4 小結(jié) 76
第6章 包和代碼測(cè)試 77
6.1 包及Go工具 77
6.1.1 包導(dǎo)入 78
6.1.2 Go工具 79
6.2 代碼優(yōu)化 84
6.2.1 Go代碼的優(yōu)化 84
6.2.2 性能分析 84
6.3 測(cè)試 90
6.3.1 功能測(cè)試函數(shù) 91
6.3.2 基準(zhǔn)測(cè)試函數(shù) 93
6.3.3 示例函數(shù) 96
6.4 小結(jié) 98
第7章 綜合實(shí)戰(zhàn)案例 99
7.1 案例需求 99
7.2 通信協(xié)議 100
7.3 服務(wù)器端 104
7.4 客戶(hù)端 109
7.5 小結(jié) 116
第二部分 Go語(yǔ)言進(jìn)階
第8章 并發(fā)編程進(jìn)階 118
8.1 競(jìng)態(tài)與并發(fā)模式 118
8.1.1 數(shù)據(jù)競(jìng)態(tài) 118
8.1.2 并發(fā)原理 123
8.2 sync包 126
8.2.1 sync.Mutex互斥鎖 126
8.2.2 sync.RWMutex多讀寫(xiě)鎖 128
8.2.3 sync.Once 130
8.2.4 sync.Cond 131
8.2.5 sync.Pool 134
8.2.6 sync.Map 136
8.3 context包 138
8.3.1 應(yīng)用場(chǎng)景 138
8.3.2 定義 139
8.3.3 繼承 141
8.3.4 示例 142
8.4 工作池 145
8.5 小結(jié) 151
第9章 Go Web編程 152
9.1 net/http包 152
9.1.1 Go Web工作的基本原理 152
9.1.2 http詳解 156
9.2 Web框架 162
9.2.1 選擇框架 162
9.2.2 httprouter框架 163
9.3 Web底層服務(wù) 165
9.3.1 Scoket簡(jiǎn)介 165
9.3.2 TCP Socket 166
9.3.3 UDP Socket 169
9.3.4 WebSocket 171
9.4 中間件 174
9.4.1 基本用法 174
9.4.2 進(jìn)階用法 176
9.5 數(shù)據(jù)庫(kù)訪(fǎng)問(wèn) 179
9.5.1 database/sql接口 180
9.5.2 sqlx 182
9.6 小結(jié) 183
第10章 綜合案例 184
10.1 案例需求 184
10.2 項(xiàng)目代碼布局 186
10.3 配置和日志 187
10.3.1 配置 188
10.3.2 日志 190
10.4 模型 191
10.5 gin框架 193
10.6 小結(jié) 196
第三部分 微服務(wù)理論
第11章 微服務(wù) 198
11.1 微服務(wù)簡(jiǎn)介 198
11.1.1 什么是微服務(wù) 198
11.1.2 微服務(wù)的由來(lái) 198
11.1.3 微服務(wù)與微服務(wù)架構(gòu) 199
11.2 系統(tǒng)架構(gòu)的演進(jìn) 199
11.2.1 單體架構(gòu) 200
11.2.2 垂直架構(gòu) 201
11.2.3 SOA 201
11.2.4 微服務(wù)架構(gòu) 202
11.3 小結(jié) 205
第12章 微服務(wù)化策略 206
12.1 微服務(wù)架構(gòu)風(fēng)格 206
12.1.1 每個(gè)服務(wù)都擁有獨(dú)立的數(shù)據(jù)庫(kù) 206
12.1.2 基于API的模塊化 207
12.2 微服務(wù)化進(jìn)程中的重點(diǎn)問(wèn)題 207
12.2.1 微服務(wù)的通信 207
12.2.2 事務(wù)管理的一致性 208
12.2.3 微服務(wù)數(shù)據(jù)查詢(xún) 208
12.2.4 微服務(wù)部署 208
12.2.5 微服務(wù)生產(chǎn)環(huán)境監(jiān)控 209
12.2.6 微服務(wù)的自動(dòng)化測(cè)試 209
12.3 微服務(wù)的拆分 209
12.3.1 拆分的指導(dǎo)原則 210
12.3.2 依據(jù)業(yè)務(wù)能力拆分 210
12.3.3 依據(jù)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)拆分 211
12.3.4 服務(wù)API的定義 213
12.4 小結(jié) 214
第13章 微服務(wù)中的進(jìn)程間通信 215
13.1 微服務(wù)中的進(jìn)程間通信概述 215
13.1.1 交互模式 215
13.1.2 API定義 217
13.2 protobuf格式 217
13.2.1 protobuf簡(jiǎn)介 217
13.2.2 protobuf的簡(jiǎn)單使用 217
13.3 gRPC包 219
13.3.1 net/rpc包 219
13.3.2 gRPC簡(jiǎn)介 221
13.3.3 Go語(yǔ)言實(shí)現(xiàn)gRPC調(diào)用 222
13.4 微服務(wù)發(fā)現(xiàn):consul 224
13.5 小結(jié) 226
第14章 微服務(wù)中的分布式事務(wù)管理 227
14.1 微服務(wù)下的事務(wù)管理 227
14.1.1 面臨的難題 227
14.1.2 SRP的折衷 228
14.2 微服務(wù)中處理事務(wù)的幾種方式 229
14.2.1 避免跨微服務(wù)的事務(wù) 229
14.2.2 基于XA協(xié)議的兩階段提交協(xié)議 229
14.2.3 最終一致性和補(bǔ)償 231
14.3 Saga模式 234
14.3.1 Saga模式介紹 234
14.3.2 編排模式 235
14.3.3 編配模式 237
14.4 Saga模式的Go語(yǔ)言示例 238
14.4.1 Saga對(duì)象的Go語(yǔ)言實(shí)現(xiàn) 238
14.4.2 中央?yún)f(xié)調(diào)器的Go語(yǔ)言實(shí)現(xiàn) 239
14.5 小結(jié) 243
第15章 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的Go語(yǔ)言實(shí)現(xiàn) 244
15.1 聚合模式介紹 244
15.2 使用聚合模式 247
15.2.1 聚合擁有明確的邊界 247
15.2.2 聚合的規(guī)則 248
15.2.3 聚合顆粒度 250
15.2.4 使用聚合設(shè)計(jì)業(yè)務(wù)邏輯 250
15.3 領(lǐng)域事件 251
15.4 Go語(yǔ)言領(lǐng)域模型的模擬實(shí)現(xiàn) 252
15.4.1 聚合 253
15.4.2 實(shí)體和值對(duì)象 253
15.4.3 服務(wù) 255
15.5 小結(jié) 257
第16章 微服務(wù)中的測(cè)試 258
16.1 測(cè)試金字塔 258
16.2 單元測(cè)試 260
16.3 依賴(lài)注入和mock測(cè)試 263
16.4 行為驅(qū)動(dòng)開(kāi)發(fā) 266
16.5 使用Docker Compose測(cè)試 272
16.6 小結(jié) 275
第17章 微服務(wù)運(yùn)行環(huán)境:Docker 276
17.1 Docker介紹 276
17.1.1 Docker引擎 276
17.1.2 守護(hù)進(jìn)程 277
17.1.3 鏡像及容器 277
17.1.4 倉(cāng)庫(kù) 278
17.1.5 數(shù)據(jù)卷 278
17.2 運(yùn)行第一個(gè)Docker容器 279
17.2.1 Docker安裝 279
17.2.2 HelloWorld程序示例 279
17.2.3 運(yùn)行復(fù)雜一點(diǎn)的容器 280
17.3 Docker數(shù)據(jù)持久化 282
17.3.1 數(shù)據(jù)卷 282
17.3.2 bind mount 284
17.4 Docker網(wǎng)絡(luò) 285
17.4.1 橋接驅(qū)動(dòng)及自定義bridge 285
17.4.2 Host模式、Overlay模式及None模式 288
17.5 小結(jié) 289
第18章 Go語(yǔ)言基于ES-CQRS的微服務(wù)實(shí)踐 290
18.1 理論介紹 290
18.1.1 事件溯源 290
18.1.2 命令查詢(xún)職責(zé)分離 291
18.2 ES-CQRS在Go語(yǔ)言中的實(shí)現(xiàn)示例 292
18.2.1 需求 293
18.2.2 分析與設(shè)計(jì) 293
18.2.3 核心實(shí)現(xiàn) 296
18.3 小結(jié) 299
第四部分 微服務(wù)實(shí)戰(zhàn)
第19章 生產(chǎn)環(huán)境的微服務(wù)安全 302
19.1 加密和簽名 302
19.1.1 對(duì)稱(chēng)密鑰加密 302
19.1.2 公鑰密碼 303
19.1.3 X.509數(shù)字證書(shū) 303
19.1.4 TLS/SSL 304
19.2 外部安全 304
19.2.1 防火墻 304
19.2.2 頁(yè)面應(yīng)用的防火墻 305
19.2.3 API網(wǎng)關(guān) 305
19.2.4 DDoS保護(hù) 306
19.3 應(yīng)用安全 307
19.3.1 攻擊者如何繞過(guò)防火墻 308
19.3.2 輸入校驗(yàn) 308
19.3.3 TLS 310
19.3.4 在rest中進(jìn)行數(shù)據(jù)保護(hù) 313
19.3.5 JWT 314
19.3.6 大消息的非對(duì)稱(chēng)加密 315
19.4 運(yùn)維安全 316
19.4.1 修補(bǔ)容器 316
19.4.2 軟件更新 317
19.4.3 修補(bǔ)應(yīng)用程序代碼 317
19.4.4 日志 317
19.5 小結(jié) 317
第20章 日志和監(jiān)控 318
20.1 日志最佳實(shí)踐 319
20.2 指標(biāo) 319
20.2.1 指標(biāo)數(shù)據(jù)類(lèi)型 320
20.2.2 命名約定 320
20.2.3 存儲(chǔ)和查詢(xún) 322
20.2.4 Grafana 323
20.3 日志記錄 326
20.3.1 具有關(guān)聯(lián)ID的分布式跟蹤 326
20.3.2 ElasticSearch、Logstash和Kibana 327
20.3.3 Kibana 328
20.4 異常 330
20.5 小結(jié) 332
第21章 持續(xù)交付 333
21.1 持續(xù)交付簡(jiǎn)介 333
21.1.1 手動(dòng)部署 334
21.1.2 持續(xù)交付的好處 334
21.1.3 持續(xù)交付面面觀 335
21.1.4 持續(xù)交付的過(guò)程 337
21.2 容器編排的選項(xiàng)和基礎(chǔ)架構(gòu) 338
21.3 Terraform 339
21.3.1 提供者 340
21.3.2 Terraform配置入口點(diǎn) 341
21.3.3 VPC模塊 342
21.3.4 輸出變量 346
21.3.5 創(chuàng)建基礎(chǔ)架構(gòu) 348
21.4 應(yīng)用范例 348
21.4.1 持續(xù)部署的工作流程 349
21.4.2 構(gòu)建 352
21.4.3 測(cè)試 353
21.4.4 基準(zhǔn)測(cè)試 354
21.4.5 靜態(tài)代碼測(cè)試 354
21.4.6 集成測(cè)試 355
21.4.7 部署 356
21.4.8 冒煙測(cè)試 357
21.4.9 監(jiān)控和預(yù)警 357
21.5 小結(jié) 359
第22章 使用Go kit框架構(gòu)建微服務(wù) 360
22.1 創(chuàng)建服務(wù) 361
22.1.1 測(cè)試 361
22.1.2 Go語(yǔ)言中的構(gòu)造函數(shù) 362
22.1.3 使用bcrypt進(jìn)行Hash處理并驗(yàn)證密碼 363
22.2 使用請(qǐng)求和響應(yīng)對(duì)方法調(diào)用進(jìn)行建模 364
22.2.1 Go kit中的端點(diǎn) 365
22.2.2 為服務(wù)方法設(shè)定終點(diǎn) 366
22.2.3 不同級(jí)別的錯(cuò)誤 366
22.2.4 將端點(diǎn)包裝到服務(wù)實(shí)現(xiàn)中 367
22.3 使用Go kit實(shí)現(xiàn)一個(gè)HTTP服務(wù)器 368
22.4 Go kit中的gRPC服務(wù)器 368
22.5 創(chuàng)建服務(wù)器命令 371
22.5.1 使用Go kit端點(diǎn) 373
22.5.2 運(yùn)行HTTP服務(wù)器 373
22.5.3 運(yùn)行g(shù)RPC服務(wù)器 373
22.5.4 防止main函數(shù)突然終止 374
22.5.5 通過(guò)HTTP使用服務(wù) 374
22.6 構(gòu)建一個(gè)gRPC客戶(hù)端 375
22.6.1 使用服務(wù)的命令行工具 376
22.6.2 在CLI中解析參數(shù) 377
22.7 服務(wù)中間件的速率限制 378
22.7.1 Go kit中的中間件 378
22.7.2 速率限制 380
22.8 小結(jié) 380
附錄 Go語(yǔ)言中的關(guān)鍵字 381

本目錄推薦

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