Spring Boot 微服務實戰, 2/e Learn Microservices with Spring Boot: A Practical Approach to Restful Services Using an Event-Driven Architecture, Cloud-Native Patterns, and Containe

[美]莫伊塞斯·馬塞羅·加西亞(Moisés Macero García) 著 甘明 王超 莊曉敏 石瑤 譯

  • Spring Boot 微服務實戰, 2/e-preview-1
  • Spring Boot 微服務實戰, 2/e-preview-2
  • Spring Boot 微服務實戰, 2/e-preview-3
Spring Boot 微服務實戰, 2/e-preview-1

買這商品的人也買了...

商品描述

使用Spring Boot框架構建基於Java的微服務架構,將應用程序從小型單體架構蛻變為由多個服務組成的事件驅動架構。這個**版本圍繞服務發現、負載均衡、路由、集中式日誌、按環境配置和容器化等知識點,循序漸進地講述微服務架構、測試驅動的開發和分佈式系統中的常見模式。   本書介紹Spring Boot**版本新增的功能,包括支持**版本的Java SE、使用JUnit 5進行測試、更新用於服務發現和負載均衡的Spring Cloud工具、使用雲原生構建包構建Docker映像、提供基本的集中式日誌解決方案、使用Sleuth實現E2E可追溯性、使用Consul進行集中式配置、依賴項升級、支持Spring Data Neumann等。   作者Moisés使用緊貼實用的方法來解釋使用這種軟件架構的好處,而不是只偏重理論概念,介紹了電腦編程中的一些**進技術。你將專註於學習關鍵技術,從開發最小可行性產品入手,並保持演進的靈活性。 主要內容 ?使用Spring Boot構建微服務 ?發現分佈式系統的架構模式,如異步處理、最終一致性、彈性、可擴展性等 ?在RabbitMQ中使用事件驅動的架構和消息傳遞 ?使用Consul進行服務發現,使用Spring Cloud Load Balancer進行負載均衡 ?使用Spring Cloud Gateway路由請求 ?使用Spring Cloud Consul按環境進行靈活配置 ?使用Sleuth和集中式日誌記錄從頭到尾跟蹤每個請求 ?將微服務作為Docker容器部署到任何需要之處 ? 使用Docker Compose啟動微服務架構中的所有組件

目錄大綱

第1章  設置場景 1

1.1  讀者對象 2

1.2  本書與其他書籍和指南的

區別 2

1.2.1  學習:一個增量過程 2

1.2.2  本書是指南還是圖書 3

1.3  從基礎到高級主題 3

1.3.1  以Spring Boot為框架是

更專業的方式 4

1.3.2  測試驅動的開發 4

1.3.3  微服務 4

1.3.4  由事件驅動的系統 5

1.3.5  非功能性需求 5

1.4  在線內容 5

1.5  本章小結 5

第2章  基本概念 7

2.1  Spring 7

2.2  Spring Boot 8

2.3  Lombok和Java 9

2.4  測試的基礎知識 11

2.4.1  測試驅動的開發 12

2.4.2  行為驅動的開發 12

2.4.3  JUnit 13

2.4.4  Mockito 13

2.4.5  AssertJ 16

2.4.6  在Spring Boot中進行測試 16

2.5  日誌記錄 17

2.6  本章小結 18

第3章  一個基礎的Spring Boot

應用程序 20

3.1  搭建開發環境 21

3.2  Web應用的框架 21

3.3  Spring Boot自動配置 24

3.4  三層架構 28

3.5  域建模 30

3.5.1  域定義和域驅動設計 30

3.5.2  域類 31

3.6  業務邏輯 33

3.6.1  功能 33

3.6.2  隨機的Challenge 33

3.6.3  驗證Attempt 37

3.7  表示層 40

3.7.1  REST 40

3.7.2  Spring Boot和REST API 41

3.7.3  設計API 42

3.7.4  第一個控制器 43

3.7.5  自動序列化的工作方式 44

3.7.6  使用Spring Boot測試控制器 47

3.8  本章小結 56

第4章  用React構建微前端 58

4.1  快速瞭解React和Node 59

4.2  搭建開發環境 59

4.3  React框架 60

4.4  JavaScript客戶端 61

4.5  Challenge組件 63

4.5.1  組件的主要結構 65

4.5.2  渲染 67

4.5.3  與應用程序集成 69

4.6  第一次運行前端 69

4.7  調試 70

4.8  將CORS配置添加到

Spring Boot應用 71

4.9  使用應用程序 72

4.10  部署React 應用程序 73

4.11  本章小結 75

第5章  數據層 77

5.1  數據模型 78

5.2  選擇數據庫 80

5.2.1  SQL與NoSQL 80

5.2.2  H2、Hibernate和JPA 81

5.3  Spring Boot Data JPA 81

5.3.1  依賴關系和自動配置 81

5.3.2  Spring Boot Data JPA技術棧 84

5.3.3  數據源(自動)配置 85

5.4  實體 86

5.5  存儲庫 90

5.6  存儲用戶和嘗試 92

5.7  顯示最近的嘗試 96

5.7.1  服務層 97

5.7.2  控制器層 98

5.7.3  用戶界面 102

5.8  體驗新功能 107

5.9  本章小結 109

第6章  從微服務開始 110

6.1  小型單體系統 110

 

6.2  為什麽選擇小型單體

系統 110

6.2.1  微服務與生俱來的問題 111

6.2.2  小型單體系統適用於小團隊 111

6.2.3  擁抱重構 112

6.3  規劃未來拆分的小型單體

應用程序 112

6.4  新需求和游戲化 113

6.5  轉向微服務 115

6.5.1  獨立的工作流程 116

6.5.2  水平可伸縮性 116

6.5.3  細粒度的非功能需求 117

6.5.4  其他優勢 118

6.5.5  劣勢 118

6.6  架構概述 119

6.7  設計和實現新服務 121

6.7.1  界面 121

6.7.2  Gamification的Spring Boot

框架 121

6.7.3  域 122

6.7.4  服務 126

6.7.5  數據 135

6.7.6  控制器 137

6.7.7  配置 138

6.7.8  微服務Multiplication的

變動 140

6.7.9  用戶界面 144

6.8  玩轉系統 149

6.9  容錯能力 150

6.10  未來的挑戰 151

6.10.1  緊密耦合 152

6.10.2  同步接口與最終一致性 152

6.10.3  事務 156

6.10.4  公開API 157

6.11  本章小結 157

第7章  事件驅動的架構 159

7.1  核心概念 159

7.1.1  消息代理 159

7.1.2  事件和消息 161

7.1.3  探討事件 162

7.1.4  異步消息傳遞 164

7.1.5  反應式系統 166

7.2  事件驅動的利弊 167

7.3  消息傳遞模式 168

7.3.1  發布-訂閱 169

7.3.2  工作隊列 169

7.3.3  過濾器 170

7.3.4  數據持久性 170

7.4  消息傳遞代理協議、標準

和工具 170

7.5  AMQP和RabbitMQ 171

7.5.1  總體描述 171

7.5.2  交換類型和路由 172

7.5.3  消息確認和拒絕 174

7.6  設置RabbitMQ 174

7.7  Spring AMQP和

Spring Boot 176

7.8  解決方案設計 176

7.8.1  添加AMQP啟動程序 178

7.8.2  Multiplication中的事件發布 179

7.8.3  Gamification作為訂閱者 184

7.9  場景分析 191

7.9.1  快樂流 191

7.9.2  Gamification變得不可用 196

7.9.3  消息代理變得不可用 198

7.9.4  事務性 199

7.9.5  擴展微服務 201

7.10  本章小結 205

 

第8章  微服務架構中的常見

模式 207

8.1  網關 207

8.1.1  Spring Cloud網關 209

8.1.2  網關微服務 211

8.1.3  其他項目的變更 214

8.1.4  運行Gateway微服務 216

8.1.5  下一步 217

8.2  運行狀況 217

8.2.1  Spring Boot Actuator 218

8.2.2  在微服務中包含Actuator 220

8.3  服務發現和負載均衡 222

8.3.1  Consul 226

8.3.2  Spring Cloud Consul 227

8.3.3  Spring Cloud負載均衡器 233

8.3.4  網關中的服務發現和

負載均衡 235

8.3.5  使用服務發現和負載均衡 239

8.4  每種環境的配置 245

8.4.1  Consul中的配置 247

8.4.2  Spring Cloud Consul Config 248

8.4.3  實現集中配置 250

8.4.4  集中配置實踐 253

8.5  集中式日誌 259

8.5.1  日誌聚合模式 259

8.5.2  日誌集中化的簡單解決方案 260

8.5.3  使用日誌並輸出 264

8.6  分佈式跟蹤 268

8.6.1  Spring Cloud Sleuth 269

8.6.2  實現分佈式跟蹤 270

8.7  容器化 272

8.7.1  Docker 274

8.7.2  Spring Boot和Buildpacks 277

8.7.3  在Docker中運行系統 278

8.7.4  Docker化微服務 279

8.7.5  Docker化UI 280

8.7.6  Docker化配置導入器 280

8.7.7  Docker Compose 282

8.7.8  使用Docker擴展系統 293

8.7.9  共享Docker映像 295

8.8  平臺和雲原生微服務 298

8.8.1  容器平臺 299

8.8.2  應用程序平臺 300

8.8.3  雲提供商 300

8.8.4  做出決定 301

8.8.5  雲原生微服務 302

8.9  本章小結 302

後記 304