TOP
0
0
魅麗。花火原創小說66折起
微服務架構設計模式(簡體書)
滿額折
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)
微服務架構設計模式(簡體書)

微服務架構設計模式(簡體書)

人民幣定價:139 元
定  價:NT$ 834 元
優惠價:87726
領券後再享89折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:21 點
相關商品
商品簡介
作者簡介
目次

商品簡介

本書共13章,第1章引入了微服務架構模式語言的概述;第2章解釋了為什麼軟件架構很重要,並描述了可用于將應用程序分解為服務的模式;第3章介紹了微服務架構中強大的進程間通信的幾種模式;第4章介紹Saga模式;第5章介紹領域驅動設計(DDD)的聚合和領域事件等模式的使用;第6章介紹如何使用事件溯源模式;第7章介紹如何使用 API 組合模式或命令查詢責任隔離(CQRS)模式;第8章介紹外部 API 模式;第9章和第10章介紹微服務自動化測試技術;第11章介紹開發生產就緒服務的各個方面;第12章介紹部署模式;第13章介紹絞殺者模式。

作者簡介

克裡斯·理查森(ChrisRichardson),
世界著名的軟件大師,《POJOS in Action》等技術名著的作者,也是著名開源項目 Cloud Foundry 和 Eventuate 的創始人。他的研究領域包括微服務架構設計、分布式數據管理、事件驅動的應用架構、領域驅動設計、持續交付、Spring 框架、Scala、NoSQL 數據庫等。


喻勇,
在技術圈馳騁多年,曾擔任過微軟技術佈道師,VMwareCloudFoundry生態建設負責人,並有幸引領了國內容器技術的創業浪潮。目前定居加拿大,關注微服務架構、雲原生應用等領域。


Chris與喻勇曾在VMware全球開發者關係團隊共事多年,現在他們合作為國內企業客戶提供微服務相關的諮詢和培訓服務,他們的中文網站是:www.chrisrichardson.cn

目次

目錄

寫給中文版讀者的話

譯者序

中文版序一

中文版序二

前言

引言

第1章逃離單體地獄/1

1.1邁向單體地獄的漫長旅程/2

1.1.1FTGO應用程序的架構/3

1.1.2單體架構的好處/4

1.1.3什麼是單體地獄/4

1.2為什麼本書與你有關/7

1.3你會在本書中學到什麼/8

1.4拯救之道:微服務架構/8

1.4.1擴展立方體和服務/9

1.4.2微服務架構作為模塊化的一種形式/11

1.4.3每個服務都擁有自己的數據庫/12

1.4.4FTGO的微服務架構/12

1.4.5微服務架構與SOA的異同/14

1.5微服務架構的好處和弊端/15

1.5.1微服務架構的好處/15

1.5.2微服務架構的弊端/17

1.6微服務架構的模式語言/19

1.6.1微服務架構並不是“銀彈”/20

1.6.2模式和模式語言/21

1.6.3微服務架構的模式語言概述/24

1.7微服務之上:流程和組織/29

1.7.1進行軟件開發和交付的組織/30

1.7.2進行軟件開發和交付的流程/31

1.7.3採用微服務架構時的人為因素/32

第2章服務的拆分策略/34

2.1微服務架構到底是什麼/35

2.1.1軟件架構是什麼,為什麼它如此重要/35

2.1.2什麼是架構的風格/37

2.1.3微服務架構是一種架構風格/40

2.2為應用程序定義微服務架構/43

2.2.1識別系統操作/45

2.2.2根據業務能力進行服務拆分/50

2.2.3根據子域進行服務拆分/53

2.2.4拆分的指導原則/54

2.2.5拆分單體應用為服務的難點/56

2.2.6定義服務API/59

第3章微服務架構中的進程間通信/63

3.1微服務架構中的進程間通信概述/64

3.1.1交互方式/64

3.1.2在微服務架構中定義API/66

3.1.3API的演化/67

3.1.4消息的格式/69

3.2基於同步遠程過程調用模式的通信/70

3.2.1使用REST/71

3.2.2使用gRPC/74

3.2.3使用斷路器模式處理局部故障/75

3.2.4使用服務發現/78

3.3基於異步消息模式的通信/82

3.3.1什麼是消息傳遞/83

3.3.2使用消息機制實現交互方式/84

3.3.3為基於消息機制的服務API創建API規範/86

3.3.4使用消息代理/87

3.3.5處理併發和消息順序/91

3.3.6處理重複消息/92

3.3.7事務性消息/93

3.3.8消息相關的類庫和框架/97

3.4使用異步消息提高可用性/99

3.4.1同步消息會降低可用性/99

3.4.2消除同步交互/101

第4章使用Saga管理事務/106

4.1微服務架構下的事務管理/107

4.1.1微服務架構對分布式事務的需求/108

4.1.2分布式事務的挑戰/109

4.1.3使用Saga模式維護數據一致性/109

4.2Saga的協調模式/113

4.2.1協同式Saga/113

4.2.2編排式Saga/117

4.3解決隔離問題/121

4.3.1缺乏隔離導致的問題/122

4.3.2Saga模式下實現隔離的對策/123

4.4OrderService和CreateOrderSaga的設計/127

4.4.1OrderService類/128

4.4.2CreateOrderSaga的實現/129

4.4.3OrderCommandHandlers類/136

4.4.4OrderServiceConfiguration類/138

第5章微服務架構中的業務邏輯設計/141

5.1業務邏輯組織模式/142

5.1.1使用事務腳本模式設計業務邏輯/143

5.1.2使用領域模型模式設計業務邏輯/144

5.1.3關於領域驅動設計/146

5.2使用聚合模式設計領域模型/146

5.2.1模糊邊界所帶來的問題/147

5.2.2聚合擁有明確的邊界/149

5.2.3聚合的規則/150

5.2.4聚合的顆粒度/152

5.2.5使用聚合設計業務邏輯/153

5.3發佈領域事件/154

5.3.1為什麼需要發佈變更事件/154

5.3.2什麼是領域事件/155

5.3.3事件增強/155

5.3.4識別領域事件/156

5.3.5生成和發佈領域事件/157

5.3.6消費領域事件/161

5.4KitchenService的業務邏輯/162

5.5OrderService的業務邏輯/167

5.5.1Order聚合/169

5.5.2OrderService類/173

第6章使用事件溯源開發業務邏輯/176

6.1使用事件溯源開發業務邏輯概述/177

6.1.1傳統持久化技術的問題/177

6.1.2什麼是事件溯源/179

6.1.3使用樂觀鎖處理併發更新/186

6.1.4事件溯源和發佈事件/186

6.1.5使用快照提升性能/188

6.1.6冪等方式的消息處理/189

6.1.7領域事件的演化/190

6.1.8事件溯源的好處/192

6.1.9事件溯源的弊端/193

6.2實現事件存儲庫/194

6.2.1EventuateLocal事件存儲庫的工作原理/195

6.2.2Eventuate的Java客戶端框架/198

6.3同時使用Saga和事件溯源/201

6.3.1使用事件溯源實現協同式Saga/203

6.3.2創建編排式Saga/203

6.3.3實現基於事件溯源的Saga參與方/205

6.3.4實現基於事件溯源的Saga編排器/208

第7章在微服務架構中實現查詢/212

7.1使用API組合模式進行查詢/213

7.1.1findOrder()查詢操作/213

7.1.2什麼是API組合模式/214

7.1.3使用API組合模式實現findOrder()查詢操作/215

7.1.4API組合模式的設計缺陷/216

7.1.5API組合模式的好處和弊端/219

7.2使用CQRS模式/220

7.2.1為什麼要使用CQRS/220

7.2.2什麼是CQRS/223

7.2.3CQRS的好處/226

7.2.4CQRS的弊端/227

7.3設計CQRS視圖/228

7.3.1選擇視圖存儲庫/229

7.3.2設計數據訪問模塊/230

7.3.3添加和更新CQRS視圖/232

7.4實現基於AWSDynamoDB的CQRS視圖/233

7.4.1OrderHistoryEventHandlers模塊/234

7.4.2DynamoDB中的數據建模和查詢設計/235

7.4.3OrderHistoryDaoDynamoDb類/239

第8章外部API模式/244

8.1外部API的設計難題/245

8.1.1FTGO移動客戶端API的設計難題/246

8.1.2其他類型客戶端API的設計難題/248

8.2APIGateway模式/250

8.2.1什麼是APIGateway模式/250

8.2.2APIGateway模式的好處和弊端/256

8.2.3以Netflix為例的APIGateway/257

8.2.4APIGateway的設計難題/258

8.3實現一個APIGateway/260

8.3.1使用現成的APIGateway產品或服務/261

8.3.2開發自己的APIGateway/262

8.3.3使用GraphQL實現APIGateway/269

第9章微服務架構中的測試策略(上)/282

9.1微服務架構中的測試策略概述/284

9.1.1什麼是測試/284

9.1.2微服務架構中的測試挑戰/289

9.1.3部署流水線/295

9.2為服務編寫單元測試/296

9.2.1為實體編寫單元測試/298

9.2.2為值對象編寫單元測試/299

9.2.3為Saga編寫單元測試/300

9.2.4為領域服務編寫單元測試/302

9.2.5為控制器編寫單元測試/303

9.2.6為事件和消息處理程序編寫單元測試/305

第10章微服務架構中的測試策略(下)/308

10.1編寫集成測試/308

10.1.1針對持久化層的集成測試/311

10.1.2針對基於REST的請求/響應式交互的集成測試/312

10.1.3針對發佈/訂閱式交互的集成測試/316

10.1.4針對異步請求/響應式交互的集成契約測試/320

10.2編寫組件測試/324

10.2.1定義驗收測試/325

10.2.2使用Gherkin編寫驗收測試/326

10.2.3設計組件測試/328

10.2.4為FTGO的OrderService編寫組件測試/330

10.3端到端測試/334

10.3.1設計端到端測試/335

10.3.2編寫端到端測試/335

10.3.3運行端到端測試/336

第11章開發面向生產環境的微服務應用/338

11.1開發安全的服務/339

11.1.1傳統單體應用程序的安全性/340

11.1.2在微服務架構中實現安全性/343

11.2設計可配置的服務/349

11.2.1使用基於推送的外部化配置/350

11.2.2使用基於拉取的外部化配置/352

11.3設計可觀測的服務/353

11.3.1使用健康檢查API模式/355

11.3.2使用日誌聚合模式/357

11.3.3使用分布式追蹤模式/358

11.3.4使用應用程序指標模式/361

11.3.5使用異常追蹤模式/364

11.3.6使用審計日誌模式/365

11.4使用微服務基底模式開發服務/367

11.4.1使用微服務基底/368

11.4.2從微服務基底到服務網格/368

第12章部署微服務應用/371

12.1部署模式:編程語言特定的發佈包格式/374

12.1.1使用編程語言特定的發佈包格式進行部署的好處/376

12.1.2使用編程語言特定的發佈包格式進行部署的弊端/377

12.2部署模式:將服務部署為虛擬機/378

12.2.1將服務部署為虛擬機的好處/380

12.2.2將服務部署為虛擬機的弊端/380

12.3部署模式:將服務部署為容器/381

12.3.1使用Docker部署服務/383

12.3.2將服務部署為容器的好處/385

12.3.3將服務部署為容器的弊端/386

12.4使用Kubernetes部署FTGO應用程序/386

12.4.1什麼是Kubernetes/386

12.4.2在Kubernetes上部署RestaurantService/389

12.4.3部署APIGateway/392

12.4.4零停機部署/393

12.4.5使用服務網格分隔部署與發佈流程/394

12.5部署模式:Serverless部署/402

12.5.1使用AWSLambda進行Serverless部署/403

12.5.2開發Lambda函數/404

12.5.3調用Lambda函數/404

12.5.4使用Lambda函數的好處/405

12.5.5使用Lambda函數的弊端/406

12.6使用AWSLambda和AWSGateway部署RESTful服務/406

12.6.1AWSLambda版本的RestaurantService/407

12.6.2把服務打包為ZIP文件/411

12.6.3使用Serverless框架部署Lambda函數/412

第13章微服務架構的重構策略/415

13.1重構到微服務需要考慮的問題/416

13.1.1為什麼要重構單體應用/416

13.1.2絞殺單體應用/417

13.2將單體應用重構為微服務架構的若干策略/420

13.2.1將新功能實現為服務/420

13.2.2隔離表現層與後端/422

13.2.3提取業務能力到服務中/423

13.3設計服務與單體的協作方式/429

13.3.1設計集成膠水/430

13.3.2在服務和單體之間維持數據一致性/434

13.3.3處理身份驗證和訪問授權/438

13.4將新功能實現為服務:處理錯誤配送訂單/440

13.4.1DelayedDeliveryService的設計/441

13.4.2為DelayedDeliveryService設計集成膠水/442

13.5從單體中提取送餐管理功能/444

13.5.1現有的送餐管理功能/444

13.5.2DeliveryService概覽/446

13.5.3設計DeliveryService的領域模型/447

13.5.4DeliveryService集成膠水的設計/450

13.5.5修改FTGO單體使其能夠與DeliveryService交互/451

......

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 726
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區