新到貨2本75折
Spring微服務實戰(第2版)

Spring微服務實戰(第2版)

  • 定價:659
  • 優惠價:87573
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

本書以一個名為O-stock的專案為主線,介紹雲、微服務等概念以及Spring Boot和Spring Cloud等諸多Spring項目,並介紹如何將O-stock項目一步一步地從單體架構重構成微服務架構,進而將這個專案拆分成眾多微服務,讓它們運行在各自的Docker容器中,實現持續集成/持續部署,並終自動部署到雲環境(AWS)的Kubernetes集群中。

針對在重構過程中遇到的各種微服務開發會面臨的典型問題(包括開發、測試和運維等問題),本書介紹了解決這些問題的核心模式,以及在實戰中如何選擇特定Spring Cloud子項目或其他工具(如KeyCloak、Zipkin、ELK技術棧)解決這些問題。本書適合擁有構建分散式應用程式的經驗、擁有Spring的知識背景以及對學習構建基於微服務的應用程式感興趣的Java開發人員閱讀。對於希望使用微服務構建基於雲的應用程式,以及希望瞭解如何將基於微服務的應用部署到雲上的開發人員,本書也具有很好的學習參考價值。
 

作者介紹

約翰·卡內爾(John Carnell)
 
是一位 雲工程師,擁有二十多年的Java開發經驗。他大部分時間都在使用AWS平臺構建基於電話的微服務。他的日常工作主要是設計和構建跨Java、Clojure和Go等多種技術平臺的微服務。
 
伊拉里·華盧波·桑切斯(Illary Huaylupo Sánchez)

是一名軟體工程師,擁有十多年的Oracle認證開發經驗,目前,Illary 在哥斯大黎加聖約瑟的微軟公司擔任 軟體工程師,在那裡她將大部分時間花在研究和開發各種流行的 項目上。
 

目錄

第1章 歡迎邁入雲世界,Spring 1
1.1 微服務架構的演進 1
1.1.1 n 層架構 2
1.1.2 什麼是單體架構 2
1.1.3 什麼是微服務 3
1.1.4 為什麼要改變構建應用的方式 5
1.2 使用Spring 開發微服務 6
1.3 我們在構建什麼 7
1.4 本書涵蓋什麼內容 8
1.4.1 在本書中你會學到什麼 8
1.4.2 為什麼本書與你有關 9
1.5 雲和基於微服務的應用程式 9
1.5.1 使用Spring Boot 來構建微服務 10
1.5.2 雲計算到底是什麼 14
1.5.3 為什麼是雲和微服務 16
1.6 微服務不只是編寫代碼 17
1.7 核心開發模式 18
1.8 路由模式 19
1.9 用戶端彈性模式 21
1.10 安全模式 22
1.11 日誌記錄和跟蹤模式 23
1.12 應用程式度量模式 24
1.13 構建/部署模式 25
1.14 小結 26

第2章 使用Spring Cloud 探索微服務世界 27
2.1 什麼是Spring Cloud 27
2.1.1 Spring Cloud Config 28
2.1.2 Spring Cloud 服務發現 29
2.1.3 Spring Cloud LoadBalancer和Resilience4j 29
2.1.4 Spring Cloud API Gateway 29
2.1.5 Spring Cloud Stream 29
2.1.6 Spring Cloud Sleuth 30
2.1.7 Spring Cloud Security 30
2.2 通過示例來介紹Spring Cloud 30
2.3 如何構建雲原生微服務 32
2.3.1 代碼庫 34
2.3.2 依賴 35
2.3.3 配置 35
2.3.4 後端服務 36
2.3.5 構建、發佈和運行 37
2.3.6 進程 37
2.3.7 埠綁定 38
2.3.8 併發 38
2.3.9 可任意處置 38
2.3.10 開發環境/生產環境等同 38
2.3.11 日誌 39
2.3.12 管理進程 39
2.4 確保本書的示例是有意義的 40
2.5 使用Spring Boot和Java來構建微服務 40
2.5.1 設置環境 41
2.5.2 從骨架專案開始 41
2.5.3 引導Spring Boot 應用程式:編寫引導類 45
2.6 小結 46

第3章 使用Spring Boot 構建微服務 48
3.1 架構師的故事:設計微服務架構 49
3.1.1 分解業務問題 49
3.1.2 建立服務細微性 51
3.1.3 定義服務介面 53
3.2 何時不要使用微服務 53
3.2.1 構建分散式系統時的複雜性 54
3.2.2 伺服器或容器散亂 54
3.2.3 應用程式的類型 54
3.2.4 資料事務和一致性 54
3.3 開發人員的故事:用Spring Boot和Java構建微服務 55
3.3.1 構建微服務的入口:Spring Boot 控制器 55
3.3.2 將 化添加到許可證服務 64
3.3.3 實現Spring HATEOAS 來顯示相關的連結 68
3.4 DevOps 故事:構建運行時的嚴謹性 71
3.4.1 服務裝配:打包和部署微服務 72
3.4.2 服務引導:管理微服務的配置 73
3.4.3 服務註冊和發現:用戶端如何與微服務通信 74
3.4.4 傳達微服務的健康狀況 75
3.5 將視角綜合起來 77
3.6 小結 77

第4章 歡迎來到Docker 79
4.1 容器還是虛擬機器 80
4.2 Docker 是什麼 81
4.3 Dockerfile 83
4.4 Docker Compose 84
4.5 集成Docker 與微服務 86
4.5.1 構建Docker 鏡像 86
4.5.2 使用Spring Boot 創建Docker鏡像 91
4.5.3 使用Docker Compose 啟動服務 93
4.6 小結 94

第5章 使用Spring Cloud Config伺服器端控制配置 96
5.1 關於管理配置(和複雜性) 97
5.1.1 配置管理架構 97
5.1.2 實施選擇 99
5.2 構建Spring Cloud Config伺服器端 100
5.2.1 創建Spring Cloud Config引導類 104
5.2.2 使用帶有檔案系統的Spring Cloud Config 伺服器端 105
5.2.3 創建服務的設定檔 106
5.3 將Spring Cloud Config與Spring Boot用戶端集成 110
5.3.1 建立許可證服務的Spring Cloud Config 服務依賴項 111
5.3.2 配置許可證服務以使用Spring Cloud Config 112
5.3.3 使用Spring Cloud Config伺服器端連接資料來源 115
5.3.4 使用@ConfigurationProperties直接讀取屬性 118
5.3.5 使用Spring Cloud Config伺服器端刷新屬性 119
5.3.6 使用Spring Cloud Config伺服器端和Git 120
5.3.7 使用Spring Cloud Config服務集成Vault 122
5.3.8 Vault UI 122
5.4 保護敏感配置資訊 125
5.4.1 創建對稱加密金鑰 125
5.4.2 加密和解密屬性 126
5.5 的想法 128
5.6 小結 128

第6章 關於服務發現 129
6.1 我的服務在哪裡 130
6.2 雲中的服務發現 132
6.2.1 服務發現架構 132
6.2.2 使用Spring 和Netflix Eureka進行服務發現實戰 135
6.3 構建Spring Eureka服務 136
6.4 通過Spring Eureka註冊服務 141
6.4.1 Eureka 的REST API 144
6.4.2 Eureka 儀錶板 145
6.5 使用服務發現來查找服務 146
6.5.1 使用Spring Discovery Client查找服務實例 148
6.5.2 使用帶有Load Balancer功能的Spring Rest範本調用服務 150
6.5.3 使用Netflix Feign 用戶端調用服務 152
6.6 小結 153

第7章 當糟糕的事情發生時:使用Spring Cloud和Resilience4j的彈性模式 154
7.1 什麼是用戶端彈性模式 155
7.1.1 用戶端負載均衡模式 156
7.1.2 斷路器模式 156
7.1.3 後備模式 156
7.1.4 艙壁模式 156
7.2 為什麼用戶端彈性很重要 157
7.3 實現Resilience4j 160
7.4 設置許可證服務以使用Spring Cloud和Resilience4j 160
7.5 實現斷路器 162
7.5.1 向組織服務添加斷路器 166
7.5.2 定制斷路器 166
7.6 後備處理 168
7.7 實現艙壁模式 169
7.8 實現重試模式 172
7.9 實現限流器模式 174
7.10 ThreadLocal和Resilience4j 176
7.11 小結 180

第8章 使用Spring Cloud Gateway進行服務路由 182
8.1 什麼是服務閘道 183
8.2 Spring Cloud Gateway簡介 184
8.2.1 建立Spring Cloud Gateway專案 185
8.2.2 配置Spring Cloud Gateway與Eureka 進行通信 188
8.3 在Spring Cloud Gateway 中配置路由 189
8.3.1 通過服務發現自動映射路由 189
8.3.2 使用服務發現手動映射路由 191
8.3.3 動態重新載入路由配置 194
8.4 Spring Cloud Gateway 的真正威力:斷言和篩檢程式工廠 194
8.4.1 內置的斷言工廠 195
8.4.2 內置的篩檢程式工廠 196
8.4.3 自訂篩檢程式 197
8.5 構建前置篩檢程式 200
8.6 在服務中使用關聯ID 203
8.6.1 UserContextFilter:攔截傳入的HTTP請求 205
8.6.2 UserContext:使服務易於訪問HTTP首部 206
8.6.3 自訂RestTemplate和UserContextInteceptor:確保關聯ID被傳播 207
8.7 構建接收關聯ID的後置篩檢程式 208
8.8 小結 210

第9章 保護微服務 211
9.1 OAuth2是什麼 212
9.2 Keycloak簡介 213
9.3 從小事做起:使用Spring和Keycloak來保護單個端點 214
9.3.1 將Keycloak服務添加到Docker 214
9.3.2 設置Keycloak 215
9.3.3 註冊用戶端應用程式 218
9.3.4 配置O-stock使用者 222
9.3.5 對O-stock用戶進行身份認證 224
9.4 使用Keycloak保護組織服務 227
9.4.1 將Spring Security和Keycloak JAR添加到各個服務 228
9.4.2 配置服務以指向Keycloak服務 228
9.4.3 定義什麼和誰可以訪問服務 229
9.4.4 傳播訪問權杖 233
9.4.5 從JWT 中解析自訂欄位 239
9.5 關於微服務安全的一些總結 240
9.5.1 對所有業務通信使用HTTPS/安全通訊端層(SSL) 241
9.5.2 使用服務閘道訪問微服務 241
9.5.3 將服務劃分到公共API和私有API 241
9.5.4 通過封鎖不需要的網路埠來限制微服務的攻擊面 241
9.6 小結 242

第10章 使用Spring Cloud Stream的事件驅動架構 243
10.1 消息傳遞、EDA和微服務的案例 244
10.1.1 使用同步請求-回應方式來傳達狀態變化 244
10.1.2 使用消息傳遞在服務之間傳達狀態 改 246
10.1.3 消息傳遞架構的缺點 248
10.2 Spring Cloud Stream簡介 249
10.3 編寫簡單的消息生產者和消費者 251
10.3.1 在Docker中配置Apache Kafka和Redis 252
10.3.2 在組織服務中編寫消息生產者 252
10.3.3 在許可證服務中編寫消息消費者 258
10.3.4 在實際操作中查看消息服務 261
10.4 Spring Cloud Stream用例:分散式緩存 262
10.4.1 使用Redis來緩存查找 263
10.4.2 定義自訂通道 269
10.5 小結 271

第11 章 使用Spring Cloud Sleuth和Zipkin進行分散式跟蹤 272
11.1 Spring Cloud Sleuth與關聯ID 273
11.1.1 將Spring Cloud Sleuth添加到許可證服務和組織服務中 274
11.1.2 剖析Spring Cloud Sleuth跟蹤 274
11.2 日誌聚合與Spring Cloud Sleuth 275
11.2.1 Spring Cloud Sleuth/ELK技術棧實現實戰 277
11.2.2 在服務中配置Logback 278
11.2.3 在Docker中定義和運行ELK技術棧應用程式 281
11.2.4 配置Kibana 284
11.2.5 在Kibana 中搜索Spring Cloud Sleuth的跟蹤ID 287
11.2.6 使用Spring Cloud Gateway將關聯ID添加到HTTP回應 288
11.3 使用Zipkin 進行分散式跟蹤 290
11.3.1 設置Spring Cloud Sleuth和Zipkin依賴項 291
11.3.2 配置服務以指向Zipkin 291
11.3.3 配置Zipkin伺服器端 292
11.3.4 設置跟蹤級別 293
11.3.5 使用Zipkin跟蹤事務 293
11.3.6 視覺化 複雜的事務 296
11.3.7 捕獲消息傳遞蹤跡 297
11.3.8 添加自訂跨度 299
11.4 小結 301

第12章 部署微服務 303
12.1 構建/部署管道的架構 304
12.2 在雲中設置O-stock的核心基礎設施 307
12.2.1 使用 的RDS創建PostgreSQL資料庫 309
12.2.2 在AWS中創建Redis集群 312
12.3 基礎設施:部署O-stock和ELK 313
12.3.1 創建運行EKL的EC2實例 313
12.3.2 在EC2實例中部署ELK技術棧 316
12.3.3 創建一個EKS集群 317
12.4 構建/部署管道實戰 323
12.5 創建構建/部署管道 324
12.5.1 設置GitHub 325
12.5.2 使服務能夠在Jenkins中構建 326
12.5.3 理解並生成管道腳本 330
12.5.4 創建Kubernetes管道腳本 332
12.6 關於構建/部署管道的總結 333
12.7 小結 334

附錄A 微服務架構 實踐 335
A.1 Richardson成熟度模型 335
A.2 Spring HATEOAS 337
A.3 外部化配置 337
A.4 持續集成和持續交付 338
A.5 監控 339
A.6 日誌記錄 339
A.7 API閘道 340
附錄B OAuth2授權類型 341
B.1 密碼授權類型 341
B.2 用戶端憑據授權類型 343
B.3 授權碼授權類型 344
B.4 隱式授權類型 345
B.5 如何刷新權杖 347
附錄C 監控微服務 349
C.1 引入Spring Boot Actuator進行監控 349
C.1.1 添加Spring Boot Actuator 349
C.1.2 啟用Actuator端點 350
C.2 設置Micrometer和Prometheus 351
C.2.1 瞭解Micrometer和Prometheus 351
C.2.2 實現Micrometer和Prometheus 352
C.3 配置Grafana 354
C.4 小結 358
 

詳細資料

  • ISBN:9787115587480
  • 規格:平裝 / 358頁 / 16k / 19 x 26 x 1.79 cm / 普通級 / 單色印刷 / 2-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 【其他】2024采實電子書全書系:春暖花開‧享閱讀,參展書單書85折起、任選3本79折
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

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

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 翦商作者新作79折
  • 針灸匠張寶旬
  • 浪漫小說精選3本72折