Java 微服務 Java微服务

沙魯巴·夏爾馬 (Sourabh Sharma)

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

商品描述

<內容簡介>

微服務是利用雲平臺開發企業應用程序的最新技術,它是小型、輕量和過程驅動的組件。微服務適合設計可擴展、易於維護的應用程序。它可以使開發更容易,還能使資源得到最佳利用。本書幫助你用Java構建供企業使用的微服務架構,內容包括微服務核心概念和框架、大型軟件項目的高層次設計、開發環境設置和前期配置、對微服務架構持續集成的部署、實現微服務的安全性、有效地執行測試、微服務設計的最佳做法和一般原則,以及如何檢測和調試問題。本書適合想要瞭解微服務架構,以及想要深入瞭解如何有效地實施企業級微服務的Java開發人員。

 

<章節目錄>

前言XV
1一種解決方法1
微服務的演變2
整體式架構概述3
整體式架構的局限性與它的微服務解決方案的對比3
一維的可擴展性6
在出故障時回滾版本7
採用新技術時的問題7
與敏捷實踐的契合8
減輕開發工作量——可以做得更好9
微服務的構建管道10
使用諸如Docker的容器部署11
容器11
Docker 12
Docker的架構13
Docker容器14
部署14
小結14
2設置開發環境17
Spring Boot配置18
Spring Boot概述18
把Spring Boot添加至REST示例19
添加一個嵌入式Jetty服務器21
示例REST程序22
編寫REST控制器類24
@RestController 25
@RequestMapping 25
@RequestParam 25
@ PathVariable 26
製作一個示例REST可執行應用程序29
設置應用程序構建30
運行Maven工具30
用Java命令執行31
使用Postman Chrome擴展測試REST API 31
更多的正向測試場景34
反向的測試場景35
NetBeans IDE安裝和設置37
參考資料42
小結42
3領域驅動設計43
領域驅動設計基本原理44
組成部分45
普遍存在的語言45
多層架構45
表示層46
應用程序層46
領域層46
基礎架構層47
領域驅動設計的工件47
實體47
值對象48
服務49
聚合50
存儲庫52
工廠53
模塊54
戰略設計和原則55
有界上下文55
持續集成56
上下文映射57
共享內核模式58
客戶和供應商模式58
順從者模式59
反腐層59
獨立方法59
開放主機服務60
精餾60
示例領域服務60
實體的實現61
存儲庫的實現63
服務的實現66
小結67
4實現微服務69
OTRS概述70
開發和實現微服務71
餐館微服務72
控制器類73
服務類76
存儲庫類79
實體類82
預訂和用戶服務85
註冊和發現服務(Eureka服務) 85
執行87
測試87
參考資料92
小結92
5部署和測試93
使用Netflix OSS的微服務架構概述93
負載均衡95
客戶端的負載均衡95
服務器端的負載均衡98
電路斷路器與監控102
使用Hystrix的回退方法102
監控103
設置Hystrix儀表板105
設置Turbine 107
使用容器部署微服務109
安裝和配置109
具有4 GB內存的Docker機器110
使用Maven構建Docker映像110
使用Maven運行Docker 114
使用Docker執行集成測試115
把映像推送到註冊表118
管理Docker容器119
參考資料121
小結121
6實現微服務的安全性123
啟用安全套接字層123
身份驗證和授權127
OAuth 2.0 127
OAuth的用法128
OAuth 2.0規範——簡明詳細信息128
OAuth 2.0角色129
OAuth 2.0客戶端註冊131
OAuth 2.0協議端點135
OAuth 2.0授權類型137
使用Spring Security的OAuth實現144
授權碼許可150
隱式許可153
資源所有者密碼憑據許可154
客戶端憑據許可155
參考資料155
小結156
7利用微服務Web應用程序來使用服務157
AngularJS框架概述157
MVC 158
MVVM 158
模塊158
提供程序和服務160
作用域161
控制器161
過濾器161
指令162
UI-Router 162
OTRS功能的開發163
主頁/餐館列表頁163
index.html 164
app.js 169
restaurants.js 172
restaurants.html 179
搜索餐館180
餐館詳細信息與預訂選項181
restaurant.html 181
登錄頁面183
login.html 184
login.js 185
預訂確認186
設置web應用程序187
小結201
8最佳做法和一般原則203
概述和心態203
最佳做法和原則205
Nanoservice(不推薦)、規模和整體性205
持續集成和部署206
系統/端到端測試自動化207
自我監控和記錄207
每個微服務都使用獨立的數據存儲區209
事務邊界210
微服務框架和工具210
Netflix開放源碼軟件(OSS) 210
構建——Nebula 211
部署和交付——Spinnaker與Aminator 211
服務註冊和發現——Eureka 211
服務溝通——Ribbon 212
電路斷路器——Hystrix 212
邊緣(代理)服務器——Zuul 212
業務監控——Atlas 213
可靠性監控服務——Simian Army 213
AWS資源監控——Edda 214
主機性能監控——Vector 215
分佈式配置管理——Archaius 215
Apache Mesos調度器——Fenzo 215
成本和雲利用率——Ice 216
其他安全工具——Scumblr和FIDO 216
參考資料217
小結218
9故障排除指南219
日誌記錄和ELK環境219
簡要概述221
Elasticsearch 221
Logstash 221
Kibana 222
ELK環境安裝222
安裝Elasticsearch 223
安裝Logstash 224
安裝Kibana 225
服務調用關聯ID的使用226
讓我們看看怎樣解決這個問題226
依賴項和版本227
循環依賴關係及其影響227
設計系統時需要分析它227
維護不同版本227
讓我們瞭解更多228
參考資料228
小結228

目錄大綱