發表於2024-12-23
在本書中可以學到:
■ 使用領域驅動設計方法來設計和實現微服務
■ 使用Spring Security實現微服務的安全性
■ 部署和測試微服務
■ 檢測和調試開發過程齣現的問題
■ 利用JavaScript的Web應用程序來使用微服務
■ 學習關於微服務的*佳做法和一般原則
微服務是利用雲平颱開發企業應用程序的新技術,它是小型、輕量和過程驅動的組件。微服務適閤設計可擴展、易於維護的應用程序。它可以使開發更容易,還能使資源得到zui佳利用。《Java微服務》幫助你用Java構建供企業使用的微服務架構,內容包括微服務核心概念和框架、大型軟件項目的高層次設計、開發環境設置和前期配置、對微服務架構持續集成的部署、實現微服務的安全性、有效地執行測試、微服務設計的zui佳做法和一般原則,以及如何檢測和調試問題。
《Java微服務》適閤想要瞭解微服務架構,以及想要深入瞭解如何有效地實施企業級微服務的Java 開發人員。
譯者盧濤:ITPUB社區版主,20年IT從業經曆,先後從事c/c++軟件開發、係統分析及Oracle數據庫等工作,參加過多個全國性普查數據處理項目的開發和運維,目前主要從事統計報錶聯網填報係統的後颱支持。《劍破冰山―oracle開發的藝術》作者之一,譯有多部技術書籍。
Sourabh Sharmahas具有十年以上的産品/應用程序開發經驗。他的專長是開發、部署和測試多層web應用程序。他喜歡解決復雜的問題,並尋找*佳的解決方案。
在他的職業生涯中,他已成功地為財富500強的客戶開發和交付瞭各種獨立應用程序和雲應用程序,給他們帶來很多收益。
Sourabh還為他的總部設在美國的*尖企業産品公司發起並開發瞭一種基於微服務的産品。他在大學時代,即20世紀90年代後期,開始編寫Java程序,而且至今仍然熱愛這項工作。
審閱者簡介
Guido Grazioli擔任過種類繁多的業務應用程序的開發人員、軟件架構師和係統集成人員,他的工作跨越多個領域。他是一位復閤型軟件工程師,對Java平颱和工具,以及Linux係統管理都有深入瞭解;對SOA、EIP、持續集成和交付,以及在雲環境中的服務業務流程尤其感興趣。
前言XV
1 一種解決方法1
微服務的演變2
整體式架構概述3
整體式架構的局限性與它的微服務解決方案的對比3
一維的可擴展性6
在齣故障時迴滾版本7
采用新技術時的問題7
與敏捷實踐的契閤8
減輕開發工作量——可以做得更好9
微服務的構建管道10
使用諸如Docker的容器部署11
容器11
Docker12
Docker的架構13
Docker容器14
部署14
小結14
2 設置開發環境17
Spring Boot配置18
Spring Boot概述18
把Spring Boot添加至REST示例19
添加一個嵌入式Jetty服務器21
示例REST程序22
編寫REST控製器類24
@RestController25
@RequestMapping25
@RequestParam25
@PathVariable26
製作一個示例REST可執行應用程序29
設置應用程序構建30
運行Maven工具30
用Java命令執行31
使用Postman Chrome擴展測試REST API31
更多的正嚮測試場景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
設置Turbine107
使用容器部署微服務109
安裝和配置109
具有4 GB內存的Docker機器110
使用Maven構建Docker映像110
使用 Maven 運行Docker114
使用Docker執行集成測試115
把映像推送到注冊錶118
管理Docker容器119
參考資料121
小結121
6 實現微服務的安全性123
啓用安全套接字層123
身份驗證和授權127
OAuth 2.0127
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
MVC158
MVVM158
模塊158
提供程序和服務160
作用域161
控製器161
過濾器161
指令162
UI-Router162
OTRS 功能的開發163
主頁/餐館列錶頁163
index.html164
app.js169
restaurants.js172
restaurants.html179
搜索餐館180
餐館詳細信息與預訂選項181
restaurant.html181
登錄頁麵183
login.html184
login.js185
預訂確認186
設置web應用程序187
小結201
8 最佳做法和一般原則203
概述和心態203
最佳做法和原則205
Nanoservice(不推薦)、規模和整體性205
持續集成和部署206
係統/端到端測試自動化207
自我監控和記錄207
每個微服務都使用獨立的數據存儲區209
事務邊界210
微服務框架和工具210
Netflix開放源碼軟件(OSS)210
構建——Nebula211
部署和交付——Spinnaker與Aminator211
服務注冊和發現——Eureka211
服務溝通——Ribbon212
電路斷路器——Hystrix212
邊緣(代理)服務器——Zuul212
業務監控——Atlas213
可靠性監控服務——Simian Army213
AWS資源監控——Edda214
主機性能監控——Vector215
分布式配置管理——Archaius215
Apache Mesos調度器——Fenzo215
成本和雲利用率——Ice216
其他安全工具——Scumblr和FIDO216
參考資料217
小結218
9 故障排除指南219
日誌記錄和ELK環境219
簡要概述221
Elasticsearch221
Logstash221
Kibana222
ELK環境安裝222
安裝Elasticsearch223
安裝Logstash224
安裝Kibana225
服務調用關聯ID的使用226
讓我們看看怎樣解決這個問題226
依賴項和版本227
循環依賴關係及其影響227
設計係統時需要分析它227
維護不同版本227
讓我們瞭解更多228
參考資料228
小結228
微服務(Microservices)架構是軟件架構風格的一種。隨著雲平颱的采用,企業應用程序的開發從整體應用程序轉移到小型、輕量和過程驅動的組件,這種組件稱為微服務。顧名思義,微服務是指小型服務。它們是設計可擴展、易於維護的應用程序的下一個重大事件。它不但使應用程序開發起來更容易,而且還提供瞭極大的靈活性來以最佳方式利用各種資源。
本書是幫助你構建供企業使用的微服務實現的實踐指南。它還解釋瞭領域驅動設計及其在微服務中的采用。它講述瞭怎樣構建更小型、更輕量、更快速的服務,同時確保其可以很方便地在生産環境中實施。它也講述瞭企業應用程序開發從設計與開發,到部署、測試和實現安全性的完整生命周期。
本書包含的內容
第1章,一種解決方法,涉及大型軟件項目的高層次設計,在生産環境中所麵臨的共同問題和解決問題的方法。
第2章,設置開發環境,講述瞭如何設置開發環境,包括IDE和其他開發工具,以及不同的庫。本章涉及創建基本項目到設置spring引導配置,以建立和發展第一個微服務。
第3章,領域驅動設計,通過引用一個示例項目為其餘的章節設定基調。它使用此示例項目來驅動服務或應用程序的不同功能和領域組閤來解釋領域驅動設計。
第4章,實現微服務,講述示例項目從設計到實現的過程。本章不僅涉及編碼,還涉及微服務的不同方麵——構建、單元測試和包裝。在本章末尾,將完成一個可用於部署和使用的示例微服務項目。
第5章,部署和測試,講述瞭如何采用不同的形式,包括獨立部署和使用諸如Docker的容器來部署微服務。本章還將演示如何用Docker把我們的示例項目部署到諸如AWS的雲服務上麵。你還將掌握使用REST Java客戶端和其他工具來測試微服務的知識。
第6章,實現微服務的安全性,解釋如何利用身份驗證和授權來保證微服務的安全。身份驗證將使用基本身份驗證和身份驗證令牌來講述。同樣,授權將使用Spring Security來解釋。本章還將解釋常見的安全問題及對策。
第7章,利用微服務Web應用程序來使用服務,解釋瞭如何利用Knockout、Require和 Bootstrap JS庫開發web應用程序(UI),構建使用微服務來顯示數據的web應用程序的原型和一個小型實用程序項目(示例項目)的流程。
第8章,最佳做法和一般原則,講述微服務設計的最佳做法和一般原則。本章還提供瞭有關使用行業做法進行微服務開發的詳細信息和範例。本章還包含微服務實現會産生的錯誤,以及如何纔能避免這類問題的幾個例子。
第9章,故障排除指南,解釋瞭在微服務及其解決方案的開發過程中會遇到的常見問題。這將幫助你順利地掌握本書內容,並使學習過程輕鬆。
學習本書需要具備的條件
為瞭學習本書,可以使用至少具備2GB內存的安裝瞭任何操作係統(Linux、Windows或Mac)的計算機;還需要NetBeans with Java、Maven、Spring Boot、Spring Cloud、Eureka Server、Docker和CI/CD的應用程序。對於Docker容器,可能需要一個單獨的虛擬機或一個雲主機,最好擁有16GB或更大的內存。
本書的受眾
本書麵嚮熟悉微服務架構,並對核心要素和微服務應用程序有一個閤理的知識水平和理解,但現在想要深入瞭解如何有效地實施企業級微服務的Java開發人員。
版式約定
你會發現,本書采用瞭大量的文本樣式,用以區分不同種類的信息。下麵是這些樣式和解釋它們的含義的一些例子。
正文中的代碼、數據庫錶名稱、文件夾名稱、文件名、文件擴展名、路徑名、虛擬的URL、用戶輸入和Twitter句柄如下所示:“可以使用下麵的實現創建Table實體,並且可以根據自己的需要添加屬性”。
代碼塊的設置,如下所示︰
public class Table extends BaseEntity {
private int capacity;
public Table(String name, BigInteger id, int capacity) {
super(id, name);
this.capacity = capacity;
}
任何命令行輸入或輸齣采用的格式如下:
docker push localhost:5000/sourabhh/restaurant-service:PACKT-SNAPSHOT
docker-compose pull
下載示例代碼
從http://www.broadview.com.cn下載所有已購買的博文視點書籍的示例代碼文件。
勘誤錶
雖然我們已經盡力謹慎地確保內容的準確性,但錯誤仍然存在。如果你發現瞭書中的錯誤,包括正文和代碼中的錯誤,請告訴我們,我們會非常感激。這樣,你不僅幫助瞭其他讀者,也幫助我們改進後續的齣版。如發現任何勘誤,可以在博文視點網站相應圖書的頁麵提交勘誤信息。一旦你找到的錯誤被證實,你提交的信息就會被接受,我們的網站也會發布這些勘誤信息。你可以隨時瀏覽圖書頁麵,查看已發布的勘誤信息。
參與本書翻譯的人員有盧濤、李穎、盧林、陳剋非、李洪鞦、張慧珍、李又及、盧曉瑤、李陽、陳剋翠、劉雯、湯有四。
Java微服務 下載 mobi pdf epub txt 電子書 格式 2024
Java微服務 下載 mobi epub pdf 電子書看完瞭,太入門瞭,感覺看過的博客裏麵都講完瞭。。
評分很好很好很好很好很好
評分這本書不錯的,就是cloud發展太快瞭,版本有點老,適閤初學者
評分質量不錯,印刷也挺好的,送貨很快
評分我是做大數據架構的,通過這本書我可以從大型電商網站構建之外,學習到有用的技術、理論、技巧,也為後續提升自我架構視野,算是一個極好的補充,謝謝作者的好書。
評分好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書好書
評分一一評價,為瞭京豆,一山的書,評價到手軟,lg的書不好評價。買來收藏的!
評分還不錯,很厚實,隻適閤打摺的時候買
評分講瞭很多源碼,還沒看完,繼續努力加油看
Java微服務 mobi epub pdf txt 電子書 格式下載 2024