企業級Java微服務實戰

企業級Java微服務實戰

《企業級Java微服務實戰》是2020年1月清華大學出版社出版的圖書,作者是[美]肯·芬尼根(Ken Finnigan)。

基本介紹

  • 書名:企業級Java微服務實戰
  • 作者:[美]肯·芬尼根(Ken Finnigan)
  • ISBN:9787302542681
  • 定價:79.80元
  • 出版社:清華大學出版社
  • 出版時間:2020年1月
內容簡介,圖書目錄,

內容簡介

● 微服務的心智模型
● 雲原生開發
● 容錯和監控的策略
● 保護已完成套用的安全

圖書目錄

第Ⅰ部分 微服務基礎
第1章 企業級Java微服務 3
1.1 企業級Java 簡史 3
1.1.1 什麼是企業級Java 4
1.1.2 典型的企業級Java架構 4
1.1.3 什麼是單體 7
1.1.4 與單體相關的問題有哪些 8
1.2 微服務和分散式架構 9
1.2.1 只做好一件事 9
1.2.2 什麼是分散式架構 10
1.2.3 為什麼要關心分散式 11
1.2.4 可以做些什麼幫助開發微服務 13
1.2.5 項目產品 13
1.2.6 持續集成和持續交付 13
1.3 遷移至微服務的模式 14
1.3.1 領域驅動模式 14
1.3.2 大爆炸模式 16
1.3.3 絞殺者模式 16
1.3.4 混合模式 17
1.4 什麼是企業級Java微服務 18
1.5 本章小結 20
第2章 開發一個簡單的RESTful微服務 21
2.1 Cayambe單體 21
2.2 新管理站點 23
2.2.1 用例 25
2.2.2 套用的架構 25
2.2.3 使用JAX-RS創建RESTful端點 27
2.2.4 運行 30
2.3 本章小結 32
第3章 恰如其分的微服務套用伺服器 33
3.1 恰如其分的套用伺服器 33
3.1.1 什麼是JeAS 34
3.1.2 JeAS的優點 37
3.1.3 Eclipse MicroProfile 39
3.2 選擇恰如其分的套用伺服器 40
3.2.1 海灘度假示例套用 40
3.2.2 Dropwizard——原始的有主見的微服務運行時 42
3.2.3 Payara Micro ——精簡到JAR中的Java EE套用伺服器 45
3.2.4 Spring Boot——有主見的Spring微服務 48
3.2.5 Thorntail——最靈活的JeAS運行時 51
3.2.6 如何比較它們 53
3.3 本章小結 54
第4章 微服務的測試 55
4.1 需要哪些類型的測試 55
4.2 單元測試 56
4.3 什麼是不可變性 59
4.4 集成測試 60
4.5 消費者驅動的契約測試 68
4.6 額外的閱讀 75
4.7 額外的練習 76
4.8 本章小結 76
第5章 雲原生開發 77
5.1 雲到底是什麼 77
5.2 服務模型 78
5.3 雲原生開發 80
5.4 部署到雲 81
5.5 開始使用Minishift 82
5.6 微服務的雲部署 83
5.7 在雲中測試 87
5.8 額外練習 90
5.9 本章小結 91
第Ⅱ部分 實現企業級Java微服務
第6章 消費微服務 95
6.1 使用Java客戶端庫消費微服務 99
6.1.1 java.NET 99
6.1.2 Apache HttpClient 102
6.2 使用JAX-RS客戶端庫消費微服務 103
6.2.1 JAX-RS客戶端 103
6.2.2 RESTEasy客戶端 106
6.3 本章小結 109
第7章 服務發現 111
7.1 為什麼微服務需要被發現 111
7.1.1 什麼是服務發現 112
7.1.2 服務發現和服務註冊中心有什麼好處 114
7.1.3 無狀態與有狀態的微服務 116
7.1.4 什麼是Netflix Ribbon 116
7.2 使用Thorntail註冊微服務 118
7.2.1 Thorntail的拓撲 118
7.2.2 使用拓撲註冊微服務 120
7.3 使用Thorntail消費已註冊的微服務 123
7.3.1 使用Netflix Ribbon進行服務查找 123
7.3.2 使用RESTEasy客戶端進行服務查找 127
7.4 本章小結 130
第8章 容錯和監控的策略 131
8.1 分散式架構中的微服務故障 131
8.2 網路故障 134
8.3 緩解故障 134
8.3.1 Hystrix是什麼 134
8.3.2 斷路器 137
8.3.3 隔艙 140
8.3.4 回退 142
8.3.5 請求快取 143
8.3.6 綜合運用 144
8.3.7 Hystrix儀錶盤 146
8.4 把Hystrix添加到Payment微服務 148
8.4.1 使用Hystrix與RESTEasy客戶端 149
8.4.2 使用Hystrix與Ribbon客戶端 152
8.5 本章小結 153
第9章 微服務的安全 155
9.1 保護微服務的重要性 155
9.1.1 為什麼安全性很重要 155
9.1.2 安全性需要解決哪些問題 157
9.2 使用Keycloak 159
9.2.1 理解Keycloak的特性 159
9.2.2 設定Keycloak 159
9.3 保護Stripe微服務 163
9.3.1 配置Keycloak 163
9.3.2 保護Stripe資源 165
9.3.3 在Payment資源中進行身份驗證 167
9.3.4 測試受保護的微服務 168
9.4 捕獲用戶身份驗證 170
9.4.1 配置Keycloak 171
9.4.2 保護類別刪除 172
9.4.3 在UI中對用戶進行身份驗證 173
9.4.4 測試新UI和服務 176
9.5 本章小結 177
第10章 構建微服務混合體 179
10.1 Cayambe單體 179
10.2 運行Cayambe單體 181
10.2.1 配置資料庫 182
10.2.2 配置WildFly 182
10.2.3 運行Cayambe 184
10.3 Cayambe混合體 185
10.3.1 與Payment微服務集成 187
10.3.2 集成Admin微服務 192
10.3.3 新的管理UI 193
10.3.4 Cayambe混合體小結 193
10.4 部署到混合雲中 193
10.4.1 資料庫 194
10.4.2 安全性 196
10.4.3 微服務 197
10.4.4 Cayambe混合體 197
10.4.5 Cayambe EAR 199
10.4.6 管理UI 199
10.5 本章小結 199
第11章 使用Apache Kafka 201
11.1 Apache Kafka能做什麼 201
11.1.1 數據流 201
11.1.2 Apache Kafka 202
11.2 用數據流簡化單體架構 206
11.3 部署並使用Kafka來實現數據流 208
11.3.1 Openshift中的Kafka 208
11.3.2 Admin微服務 210
11.3.3 Kafka消費者 212
11.4 額外練習 216
11.5 本章小結 216
附錄A Spring Boot微服務 217
A.1 剖析Spring Boot項目 217
A.1.1 查看一個新初始化的Spring Boot項目 217
A.1.2 啟動Spring 218
A.1.3 測試Spring Boot套用 219
A.1.4 配置套用的屬性 220
A.2 Spring Boot啟動器依賴項 221
A.2.1 使用啟動器依賴項 221
A.2.2 指定基於方面的依賴項 222
A.2.3 重寫啟動器傳遞的依賴項 223
A.3 開發Spring Boot套用 225
A.3.1 專注於套用的功能 225
A.3.2 定義領域 225
A.3.3 定義資源庫接口 226
A.3.4 創建Web接口 227
A.4 Spring Boot測試 230
A.5 本附錄小結 233

相關詞條

熱門詞條

聯絡我們