定 價:¥128.00
作 者: | (美)Josh Long(喬西-朗), Kenny Bastani(肯尼-巴斯塔尼) |
出版社: | 電子工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121342516 | 出版時間: | 2018-07-01 | 包裝: | |
開本: | 頁數(shù): | 字?jǐn)?shù): |
"目錄
前言(James Watters).......................................................xv
前言(Rod Johnson)........................................................ xvii
前言................................................................................ xix
第Ⅰ部分 基礎(chǔ)知識
第1 章 云原生應(yīng)用程序.......................................................... 3
亞馬遜的故事 ............................................................................................................... 3
平臺的承諾 ................................................................................................................... 5
模式 .............................................................................................................................. 7
可擴(kuò)展性 ....................................................................................................................... 7
可靠性 ........................................................................................................................... 8
敏捷性 ........................................................................................................................... 8
Netflix 的故事 ............................................................................................................... 9
微服務(wù) ................................................................................................................. 11
拆分單體系統(tǒng) ...................................................................................................... 12
Netflix OSS ......................................................................................................... 13
云原生Java ......................................................................................................... 14
十二要素原則 ............................................................................................................. 14
代碼庫 ................................................................................................................. 15
依賴 ..................................................................................................................... 15
配置 ..................................................................................................................... 16
x | 目錄
后端服務(wù) ............................................................................................................. 17
構(gòu)建、發(fā)布、運(yùn)行 .............................................................................................. 17
進(jìn)程 ..................................................................................................................... 17
端口綁定 ............................................................................................................. 18
并發(fā) ..................................................................................................................... 18
易處理 ................................................................................................................. 18
開發(fā)/ 生產(chǎn)環(huán)境一致 ........................................................................................... 19
日志 ..................................................................................................................... 19
管理進(jìn)程 ............................................................................................................. 19
總結(jié) ............................................................................................................................ 20
第2 章 訓(xùn)練營:Spring Boot 和Cloud Foundry......................21
什么是Spring Boot ..................................................................................................... 21
Spring Initializr 入門 ................................................................................................... 21
Spring Tool Suite 入門 ................................................................................................ 30
安裝Spring Tool Suite(STS)............................................................................. 30
使用Spring Initializr 創(chuàng)建一個新項(xiàng)目 ................................................................ 31
Spring 指南大全 .......................................................................................................... 36
遵循STS 中的指南 ............................................................................................. 38
配置 ............................................................................................................................ 40
Cloud Foundry 平臺 .................................................................................................... 52
總結(jié) ............................................................................................................................ 66
第3 章 符合十二要素程序風(fēng)格的配置....................................... 67
令人迷惑的“配置”合并 ........................................................................................... 67
Spring 框架對配置的支持 ........................................................................................... 67
PropertyPlaceholderConfigurer ............................................................................ 68
Environment 接口和@Value 注解 ....................................................................... 69
Profile .................................................................................................................. 71
啟動配置 ..................................................................................................................... 73
使用Spring Cloud Config Server 進(jìn)行中心化、日志型的配置................................... 76
Spring Cloud Config Server ................................................................................. 76
Spring Cloud Config 客戶端 ................................................................................ 78
安全 ..................................................................................................................... 79
目錄 | xi
可刷新的配置 ............................................................................................................. 79
總結(jié) ............................................................................................................................ 83
第4章 測試..................................................................... 85
測試的構(gòu)成 ................................................................................................................. 86
在Spring Boot 中進(jìn)行測試 ......................................................................................... 86
集成測試 ..................................................................................................................... 88
測試切片 ............................................................................................................. 89
測試中的Mock ................................................................................................... 89
使用@SpringBootTest 中的Servlet 容器 ............................................................ 93
測試分片 ............................................................................................................. 94
端到端測試 ............................................................................................................... 102
測試分布式系統(tǒng) ................................................................................................ 102
消費(fèi)者驅(qū)動的契約測試 ..................................................................................... 104
Spring Cloud Contract ....................................................................................... 105
總結(jié) .......................................................................................................................... 113
第5 章 遷移遺留的應(yīng)用程序................................................. 115
契約 .......................................................................................................................... 115
遷移應(yīng)用程序環(huán)境 .................................................................................................... 116
開箱即用的構(gòu)建包(Buildpacks) ..................................................................... 116
自定義的構(gòu)建包 ................................................................................................ 117
容器化的應(yīng)用程序 ............................................................................................ 118
將應(yīng)用程序遷移到云上的微重構(gòu) .............................................................................. 119
連接后端服務(wù) .................................................................................................... 120
用Spring 實(shí)現(xiàn)服務(wù)平等 .................................................................................... 121
總結(jié) .......................................................................................................................... 133
第Ⅱ部分 Web 服務(wù)
第6 章 REST API........................................................... 137
倫納德· 理查森的成熟模型 ...................................................................................... 137
使用Spring MVC 實(shí)現(xiàn)簡單的REST API ................................................................. 139
內(nèi)容協(xié)商 ................................................................................................................... 142
xii | 目錄
讀寫二進(jìn)制數(shù)據(jù) ................................................................................................ 142
Google Protocol Buffers .................................................................................... 145
錯誤處理 ................................................................................................................... 150
超媒體 ....................................................................................................................... 152
媒體類型和模式 ................................................................................................ 158
API 版本 ................................................................................................................... 159
編寫REST API 文檔 ................................................................................................. 162
客戶端 ....................................................................................................................... 167
用于臨時瀏覽和交互的REST 客戶端 ............................................................... 167
RestTemplate ..................................................................................................... 171
總結(jié) .......................................................................................................................... 177
第7 章 路由.................................................................... 179
DiscoveryClient 接口 ................................................................................................ 180
Cloud Foundry Route 服務(wù) ........................................................................................ 190
總結(jié) .......................................................................................................................... 195
第8 章 邊緣服務(wù)............................................................... 197
Greetings 服務(wù) .......................................................................................................... 198
一個簡單的邊緣服務(wù) ................................................................................................ 200
Netflix Feign ............................................................................................................. 202
使用Netflix Zuul 進(jìn)行過濾和代理 ........................................................................... 204
自定義Zuul 過濾器 ........................................................................................... 214
邊緣服務(wù)的安全 ........................................................................................................ 218
OAuth ....................................................................................................................... 219
服務(wù)端應(yīng)用程序 ................................................................................................ 220
HTML5 和JavaScript 單頁面應(yīng)用程序 ............................................................. 221
沒有用戶的應(yīng)用 ................................................................................................ 221
受信任的客戶端 ................................................................................................ 221
Spring Security .......................................................................................................... 222
Spring Cloud Security ............................................................................................... 227
一個Spring Security OAuth 授權(quán)服務(wù)器 ........................................................... 227
保護(hù)Greetings 資源服務(wù)器的安全 .................................................................... 232
創(chuàng)建一個受OAuth 保護(hù)的單頁面應(yīng)用程序 ...................................................... 238
總結(jié) .......................................................................................................................... 247
目錄 | xiii
第Ⅲ部分 數(shù)據(jù)整合
第9 章 數(shù)據(jù)管理............................................................... 251
數(shù)據(jù)建模 ................................................................................................................... 251
關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ...................................................................... 252
NoSQL............................................................................................................... 253
Spring Data ............................................................................................................... 253
Spring Data 應(yīng)用程序的結(jié)構(gòu) ............................................................................. 254
域類 ................................................................................................................... 254
庫 ...................................................................................................................... 254
為領(lǐng)域數(shù)據(jù)組織Java 包 .................................................................................... 255
使用JDBC 訪問RDBMS 數(shù)據(jù) ................................................................................. 258
Spring 的JDBC 支持 ................................................................................................ 259
Spring Data 示例 ....................................................................................................... 261
Spring Data JPA......................................................................................................... 264
Account Service ................................................................................................. 264
集成測試 ........................................................................................................... 274
Spring Data MongoDB .............................................................................................. 275
Order Service ..................................................................................................... 275
集成測試 ........................................................................................................... 282
Spring Data Neo4j ..................................................................................................... 284
Inventory Service ............................................................................................... 284
集成測試 ........................................................................................................... 294
Spring Data Redis ...................................................................................................... 297
高速緩存 ........................................................................................................... 298
總結(jié) .......................................................................................................................... 302
第10 章 消息系統(tǒng)............................................................. 303
Spring Integration 的事件驅(qū)動架構(gòu) ........................................................................... 304
消息端點(diǎn) ........................................................................................................... 305
使用簡單的組件構(gòu)建復(fù)雜的系統(tǒng) ...................................................................... 306
消息代理、橋接、競爭消費(fèi)者模式和事件溯源 ....................................................... 314
發(fā)布—訂閱目的地 ............................................................................................ 314
點(diǎn)對點(diǎn)目的地 .................................................................................................... 315
xiv | 目錄
Spring Cloud Stream ................................................................................................. 315
流生產(chǎn)者 ........................................................................................................... 316
流消費(fèi)者 ........................................................................................................... 321
總結(jié) .......................................................................................................................... 323
第11 章 批處理和任務(wù)........................................................ 325
批處理工作 ............................................................................................................... 325
Spring Batch .............................................................................................................. 326
我們的第一個批處理作業(yè) ................................................................................. 327
調(diào)度 .......................................................................................................................... 336
通過消息傳遞遠(yuǎn)程分區(qū)Spring 批處理作業(yè) .............................................................. 337
任務(wù)管理 ................................................................................................................... 346
通過Workflow 進(jìn)行的以工作流為中心的整合 ......................................................... 348
使用消息傳遞的分布式............................................................................................. 362
總結(jié) .......................................................................................................................... 362
第12 章 數(shù)據(jù)集成............................................................. 363
分布式事務(wù) ............................................................................................................... 364
故障隔離和優(yōu)雅的降級............................................................................................. 364
saga 模式 ................................................................................................................... 369
CQRS(命令查詢責(zé)任分離) .................................................................................... 369
投訴API ............................................................................................................ 371
投訴統(tǒng)計(jì)API .................................................................................................... 383
Spring Cloud Data Flow ............................................................................................ 385
Stream ............................................................................................................... 387
任務(wù) ................................................................................................................... 390
REST API .......................................................................................................... 391
實(shí)現(xiàn)Data Flow 客戶端 ...................................................................................... 392
總結(jié) .......................................................................................................................... 407
第IV 部分 生產(chǎn)
第13 章 可觀測的系統(tǒng)....................................................... 411
你構(gòu)建,你運(yùn)行 ........................................................................................................ 412
目錄 | xv
謀殺神秘微服務(wù) ........................................................................................................ 413
十二要素運(yùn)維 ........................................................................................................... 413
新方式 ....................................................................................................................... 414
可觀測性 ................................................................................................................... 416
推與拉的可觀測性和解析率 ..................................................................................... 416
使用Spring Boot Actuator 捕獲應(yīng)用程序的當(dāng)前狀態(tài) ............................................... 417
度量 .......................................................................................................................... 418
通過/info 端點(diǎn)識別服務(wù) ........................................................................................... 431
健康檢查 ................................................................................................................... 432
審計(jì)事件 ................................................................................................................... 436
應(yīng)用程序日志 ........................................................................................................... 439
指定日志輸出 .................................................................................................... 440
指定日志級別 .................................................................................................... 441
分布式跟蹤 ............................................................................................................... 445
用Spring Cloud Sleuth 尋找線索 ...................................................................... 446
多少數(shù)據(jù)是足夠的 ............................................................................................ 447
OpenZipkin :一張圖片勝過千絲萬縷 ............................................................... 448
跟蹤其他平臺和技術(shù) ......................................................................................... 454
儀表板 ....................................................................................................................... 455
使用Hystrix 儀表板監(jiān)控下游服務(wù) .................................................................... 455
Codecentric 的Spring Boot Admin .................................................................... 459
Ordina Microservices 儀表板 ............................................................................. 462
Pivotal Cloud Foundry 的AppsManager ............................................................ 463
修復(fù) .......................................................................................................................... 465
總結(jié) .......................................................................................................................... 467
第14 章 服務(wù)代理.............................................................469
創(chuàng)建后臺服務(wù) ........................................................................................................... 470
平臺視圖 ................................................................................................................... 472
使用Spring Cloud Cloud Foundry Service Broker 實(shí)現(xiàn)服務(wù)代理 ............................... 473
簡單的Amazon S3 服務(wù)代理 ............................................................................ 473
服務(wù)目錄 ........................................................................................................... 474
管理服務(wù)實(shí)例 .................................................................................................... 476
服務(wù)綁定 ........................................................................................................... 482
保護(hù)服務(wù)代理 .................................................................................................... 486
xvi | 目錄
部署 .......................................................................................................................... 487
使用BOSH 發(fā)布 ............................................................................................... 487
使用Cloud Foundry 發(fā)布 .................................................................................. 488
注冊Amazon S3 Service Broker ............................................................................... 489
創(chuàng)建Amazon S3 服務(wù)實(shí)例 ........................................................................................ 490
消費(fèi)服務(wù)實(shí)例 .................................................................................................... 491
S3 客戶端應(yīng)用程序 ................................................................................................... 493
運(yùn)行測試 ................................................................................................................... 496
總結(jié) .......................................................................................................................... 496
第15 章 持續(xù)交付.............................................................497
持續(xù)集成之外 ........................................................................................................... 497
John Allspaw 在Flickr 以及后來的Etsy ........................................................... 498
Netflix 的Adrian Cockroft ................................................................................ 499
亞馬遜的持續(xù)交付 ............................................................................................ 500
流水線 ....................................................................................................................... 500
測試 .......................................................................................................................... 501
持續(xù)交付微服務(wù) ........................................................................................................ 502
工具 .......................................................................................................................... 503
Concourse ................................................................................................................. 503
容器 ................................................................................................................... 504
持續(xù)交付微服務(wù) ........................................................................................................ 504
安裝Concourse ................................................................................................. 505
基本的管道設(shè)計(jì) ................................................................................................ 506
持續(xù)集成 ........................................................................................................... 518
消費(fèi)者驅(qū)動的協(xié)約測試............................................................................................. 518
User 微服務(wù)流水線 ............................................................................................ 519
數(shù)據(jù) .......................................................................................................................... 522
生產(chǎn) .......................................................................................................................... 523
第V 部分 附錄
附錄A 在Java EE 中使用Spring Boot................................527
索引............................................................................... 552"