微服務將代碼分解為小型的、分布式的獨立服務,這些服務需要深謀遠慮和仔細設計。Spring Boot和Spring Cloud簡化瞭微服務應用程序。就像Spring框架簡化瞭企業級Java開發一樣,Spring Boot移除瞭與編寫基於REST的服務有關的樣闆代碼。Spring Cloud提供瞭一套工具,用於微服務發現、路由以及將微服務部署到企業和雲中。
本書教讀者如何使用Java和Spring平颱構建基於微服務的應用程序。在構建和部署第1個Spring Cloud應用程序時,讀者將學習如何進行微服務設計。在本書中,精心挑選的真實案例展示瞭基於微服務的各種模式,這些模式用於配置、路由、擴展和部署服務。讀者將瞭解Spring易於使用的工具,並看到其如何助力用微服務來增強和重構現有的應用程序。
本書主要內容
● 核心微服務設計原則。
● 使用Spring Cloud Config管理配置。
● 使用Spring、Hystrix和Ribbon實現客戶端彈性。
● 使用Netflix Zuul進行智能路由。
● 部署Spring Cloud應用程序。
本書是為具有Java和Spring經驗的開發人員編寫的。
本書以一個名為EagleEye的項目為主綫,介紹雲、微服務等概念以及Spring Boot和Spring Cloud等諸多Spring項目,並介紹如何將EagleEye項目一步一步地從單體架構重構成微服務架構,進而將這個項目拆分成眾多微服務,讓它們運行在各自的Docker容器中,實現持續集成/持續部署,並最終自動部署到雲環境(美亞)中。針對在重構過程中遇到的各種微服務開發會麵臨的典型問題(包括開發、測試和運維等問題),本書介紹瞭解決這些問題的核心模式,以及在實戰中如何選擇特定Spring Cloud子項目或其他工具解決這些問題。
本書適閤擁有構建分布式應用程序的經驗、擁有Spring的知識背景以及對學習構建基於微服務的應用程序感興趣的Java開發人員閱讀。對於希望使用微服務構建基於雲的應用程序,以及希望瞭解如何將基於微服務的應用部署到雲上的開發人員,本書也具有很好的學習參考價值。
約翰·卡內爾(John Carnell)是一位知名雲工程師,擁有20 年的Java 開發經驗。他大部分時間都在使用AWS 平颱構建基於電話的微服務。他的日常工作主要是設計和構建跨Java、Clojure 和Go 等多種技術平颱的微服務。
目錄
第 1章 歡迎邁入雲世界,Spring 1
1.1 什麼是微服務 1
1.2 什麼是Spring,為什麼它與微服務有關 4
1.3 在本書中讀者會學到什麼 5
1.4 為什麼本書與你有關 6
1.5 使用Spring Boot來構建微服務 6
1.6 為什麼要改變構建應用的方式 10
1.7 雲到底是什麼 11
1.8 為什麼是雲和微服務 13
1.9 微服務不隻是編寫代碼 14
1.9.1 核心微服務開發模式 15
1.9.2 微服務路由模式 16
1.9.3 微服務客戶端彈性模式 17
1.9.4 微服務安全模式 18
1.9.5 微服務日誌記錄和跟蹤模式 19
1.9.6 微服務構建和部署模式 20
1.10 使用Spring Cloud構建微服務 22
1.10.1 Spring Boot 23
1.10.2 Spring Cloud Config 23
1.10.3 Spring Cloud服務發現 24
1.10.4 Spring Cloud與Netflix Hystrix和Netflix Ribbon 24
1.10.5 Spring Cloud與Netflix Zuul 24
1.10.6 Spring Cloud Stream 24
1.10.7 Spring Cloud Sleuth 24
1.10.8 Spring Cloud Security 25
1.10.9 代碼供應 25
1.11 通過示例來介紹Spring Cloud 25
1.12 確保本書的示例是有意義的 27
1.13 小結 28
第 2章 使用Spring Boot構建微服務 29
2.1 架構師的故事:設計微服務架構 31
2.1.1 分解業務問題 31
2.1.2 建立服務粒度 32
2.1.3 互相交流:定義服務接口 35
2.2 何時不應該使用微服務 36
2.2.1 構建分布式係統的復雜性 36
2.2.2 服務器散亂 36
2.2.3 應用程序的類型 36
2.2.4 數據事務和一緻性 37
2.3 開發人員的故事:用SpringBoot和Java構建微服務 37
2.3.1 從骨架項目開始 37
2.3.2 引導Spring Boot應用程序:編寫引導類 39
2.3.3 構建微服務的入口:Spring Boot控製器 40
2.4 DevOps工程師的故事:構建運行時的嚴謹性 44
2.4.1 服務裝配:打包和部署微服務 46
2.4.2 服務引導:管理微服務的配置 47
2.4.3 服務注冊和發現:客戶端如何與微服務通信 48
2.4.4 傳達微服務的“健康狀況” 49
2.5 將視角綜閤起來 51
2.6 小結 52
第3章 使用Spring Cloud配置服務器控製配置 53
3.1 管理配置(和復雜性) 54
3.1.1 配置管理架構 55
3.1.2 實施選擇 56
3.2 構建Spring Cloud配置服務器 58
3.2.1 創建Spring Cloud Config引導類 61
3.2.2 使用帶有文件係統的Spring Cloud配置服務器 62
3.3 將Spring Cloud Config與Spring Boot客戶端集成 64
3.3.1 建立許可證服務對Spring Cloud Config服務器的依賴 65
3.3.2 配置許可證服務以使用Spring Cloud Config 66
3.3.3 使用Spring Cloud配置服務器連接數據源 69
3.3.4 使用@Value注解直接讀取屬性 72
3.3.5 使用Spring Cloud配置服務器和Git 73
3.3.6 使用Spring Cloud配置服務器刷新屬性 73
3.4 保護敏感的配置信息 75
3.4.1 下載並安裝加密所需的Oracle JCE jar 75
3.4.2 創建加密密鑰 76
3.4.3 加密和解密屬性 76
3.4.4 配置微服務以在客戶端使用加密 78
3.5 最後的想法 79
3.6 小結 80
第4章 服務發現 81
4.1 我的服務在哪裏 82
4.2 雲中的服務發現 84
4.2.1 服務發現架構 84
4.2.2 使用Spring和Netflix Eureka進行服務發現實戰 87
4.3 構建Spring Eureka服務 88
4.4 通過Spring Eureka注冊服務 90
4.5 使用服務發現來查找服務 93
4.5.1 使用Spring DiscoveryClient查找服務實例 95
4.5.2 使用帶有Ribbon功能的Spring RestTemplate調用服務 97
4.5.3 使用Netflix Feign客戶端調用服務 98
4.6 小結 100
第5章 使用Spring Cloud和NetflixHystrix的客戶端彈性模式 101
5.1 什麼是客戶端彈性模式 102
5.1.1 客戶端負載均衡模式 103
5.1.2 斷路器模式 103
5.1.3 後備模式 103
5.1.4 艙壁模式 104
5.2 為什麼客戶端彈性很重要 104
5.3 進入Hystrix 107
5.4 搭建許可服務器以使用Spring Cloud和Hystrix 107
5.5 使用Hystrix實現斷路器 109
5.5.1 對組織微服務的調用超時 111
5.5.2 定製斷路器的超時時間 112
5.6 後備處理 113
5.7 實現艙壁模式 115
5.8 基礎進階—微調Hystrix 118
5.9 綫程上下文和Hystrix 122
5.9.1 ThreadLocal與Hystrix 122
5.9.2 HystrixConcurrencyStrategy實戰 125
5.10 小結 129
第6章 使用Spring Cloud和Zuul進行服務路由 131
6.1 什麼是服務網關 132
6.2 Spring Cloud和Netflix Zuul簡介 133
6.2.1 建立一個Zuul Spring Boot項目 134
6.2.2 為Zuul服務使用Spring Cloud注解 134
6.2.3 配置Zuul與Eureka進行通信 135
6.3 在Zuul中配置路由 135
6.3.1 通過服務發現自動映射路由 136
6.3.2 使用服務發現手動映射路由 137
6.3.3 使用靜態URL手動映射路由 140
6.3.4 動態重新加載路由配置 142
6.3.5 Zuul和服務超時 143
6.4 Zuul的真正威力:過濾器 144
6.5 構建第 一個生成關聯ID的Zuul前置過濾器 147
6.6 構建接收關聯ID的後置過濾器 155
6.7 構建動態路由過濾器 157
6.7.1 構建路由過濾器的骨架 159
6.7.2 實現run()方法 159
6.7.3 轉發路由 161
6.7.4 整閤 162
6.8 小結 163
第7章 保護微服務 164
7.1 OAuth2簡介 165
7.2 從小事做起:使用Spring和OAuth2來保護單個端點 167
7.2.1 建立EagleEye OAuth2驗證服務 167
7.2.2 使用OAuth2服務注冊客戶端應用程序 168
7.2.3 配置EagleEye用戶 171
7.2.4 驗證用戶 172
7.3 使用OAuth2保護組織服務 175
7.3.1 將Spring Security和OAuth2 jar添加到各個服務 176
7.3.2 配置服務以指嚮OAuth2驗證服務 176
7.3.3 定義誰可以訪問服務 177
7.3.4 傳播OAuth2訪問令牌 180
7.4 JSON Web Token與OAuth2 183
7.4.1 修改驗證服務以頒發JWT令牌 184
7.4.2 在微服務中使用JWT 188
7.4.3 擴展JWT令牌 189
7.4.4 從JWT令牌中解析自定義字段 191
7.5 關於微服務安全的總結 193
7.6 小結 195
第8章 使用Spring Cloud Stream的事件驅動架構 196
8.1 為什麼使用消息傳遞、EDA和微服務 197
8.1.1 使用同步請求-響應方式來傳達狀態變化 198
8.1.2 使用消息傳遞在服務之間傳達狀態更改 199
8.1.3 消息傳遞架構的缺點 201
8.2 Spring Cloud Stream簡介 202
8.3 編寫簡單的消息生産者和消費者 205
8.3.1 在組織服務中編寫消息生産者 205
8.3.2 在許可證服務中編寫消息消費者 210
8.3.3 在實際操作中查看消息服務 213
8.4 Spring Cloud Stream用例:分布式緩存 214
8.4.1 使用Redis來緩存查找 215
8.4.2 定義自定義通道 221
8.4.3 將其全部匯集在一起:在收到消息時清除緩存 222
8.5 小結 223
第9章 使用Spring Cloud Sleuth和Zipkin進行分布式跟蹤 224
9.1 Spring Cloud Sleuth與關聯ID 225
9.1.1 將Spring Cloud Sleuth添加到許可證服務和組織服務中 226
9.1.2 剖析Spring Cloud Sleuth跟蹤 226
9.2 日誌聚閤與Spring Cloud Sleuth 227
9.2.1 Spring Cloud Sleuth與Papertrail實現實戰 229
9.2.2 創建Papertrail賬戶並配置syslog連接器 230
9.2.3 將Docker輸齣重定嚮到Papertrail 232
9.2.4 在Papertrail中搜索Spring Cloud Sleuth的跟蹤ID 234
9.2.5 使用Zuul將關聯ID添加到HTTP響應 235
9.3 使用Open Zipkin進行分布式跟蹤 237
9.3.1 添加Spring Cloud Sleuth和Zipkin依賴項 238
9.3.2 配置服務以指嚮Zipkin 238
9.3.3 安裝和配置Zipkin服務器 239
9.3.4 設置跟蹤級彆 240
9.3.5 使用Zipkin跟蹤事務 241
9.3.6 可視化更復雜的事務 243
9.3.7 捕獲消息傳遞跟蹤 244
9.3.8 添加自定義跨度 246
9.4 小結 248
第 10章 部署微服務 250
10.1 EagleEye:在雲中建立核心基礎設施 251
10.1.1 使用亞馬遜的RDS創建PostgreSQL數據庫 253
10.1.2 在AWS中創建Redis集群 257
10.1.3 創建ECS集群 258
10.2 超越基礎設施:部署EagleEye 262
10.3 構建和部署管道的架構 265
10.4 構建和部署管道實戰 268
10.5 開始構建和部署管道:GitHub和Travis CI 270
10.6 使服務能夠在Travis CI中構建 270
10.6.1 構建的核心運行時配置 273
10.6.2 安裝預構建工具 275
10.6.3 執行構建 277
10.6.4 標記源代碼 277
10.6.5 構建微服務並創建Docker鏡像 279
10.6.6 將鏡像推送到Docker Hub 279
10.6.7 在Amazon ECS中啓動服務 280
10.6.8 啓動平颱測試 280
10.7 關於構建和部署管道的總結 282
10.8 小結 282
附錄A 在桌麵運行雲服務 283
附錄B OAuth2授權類型 291
這本關於 Spring 微服務的書,簡直是我技術生涯中的一筆寶貴財富!我一直以來都對微服務架構充滿興趣,但總覺得入門門檻有點高,特彆是涉及到分布式係統的一些核心挑戰,比如如何保證數據的一緻性、如何處理分布式事務、如何進行係統的容錯和降級等等,這些問題讓我望而卻步。然而,這本書以一種非常務實的方式,將這些復雜的問題一一剖析,並且提供瞭切實可行的解決方案。書中對 Spring Boot 的集成以及 Spring Cloud 組件的運用講解得非常深入,從最基礎的 Eureka 服務注冊中心,到 Hystrix 的熔斷機製,再到 Zuul 的 API 網關,每個部分都講解得細緻入微,並且提供瞭大量的代碼片段,可以直接拿來參考和實踐。最讓我印象深刻的是,書中並沒有止步於理論講解,而是非常注重實際操作,通過構建一個完整的微服務應用案例,將書中的知識點串聯起來,讓我能夠更清晰地理解微服務架構的設計理念和實現細節。而且,書中的一些高級話題,比如容器化部署、持續集成和持續交付等,也都有所涉及,這對於我全麵掌握微服務技術棧非常有幫助。
評分天呐,我最近偶然間翻到一本關於 Spring 微服務的書,簡直是我的救星!我之前一直被那些微服務架構搞得焦頭爛額,概念多得像天上的星星數不清,各種組件、協議、模式讓人眼花繚亂。每次嘗試搭建一個簡單的微服務係統,都要花費大量的時間去查資料、填坑,效率低得讓人抓狂。尤其是當涉及到服務發現、負載均衡、熔斷降級這些核心概念的時候,更是感到力不從心。這本書就像為我量身定做的一樣,它的講解方式非常直觀,沒有那些晦澀難懂的理論堆砌,而是通過大量的代碼示例和實際案例,一步步地展示如何構建一個健壯、可擴展的微服務係統。我特彆喜歡書中對 Spring Cloud 生態的梳理,各種組件之間的關係和使用場景都解釋得清清楚楚,讓我茅塞頓開。之前我總是把各個組件當成獨立的點,現在總算能把它們串聯成一條完整的綫瞭。而且,書中還涵蓋瞭許多實用的技巧和最佳實踐,比如如何進行服務間的通信、如何實現數據的最終一緻性、如何進行監控和日誌收集等等。讀完這本書,我感覺自己對微服務的理解上升瞭一個新的高度,再也不怕麵對那些復雜的微服務挑戰瞭。
評分不得不說,這本書對於我這樣一個在微服務領域摸爬滾打多年的開發者來說,依然帶來瞭很多驚喜和啓發。我之前雖然有接觸過一些微服務相關的技術,但總感覺像是碎片化的知識,不成體係。這本書的齣現,徹底改變瞭我的認知。它不僅僅是對 Spring Cloud 組件的簡單羅列和使用介紹,更是深入剖析瞭微服務架構的設計原則和演進思路。書中對不同場景下微服務組件的選擇和搭配,提供瞭非常獨到的見解。例如,在討論服務間通信時,書中不僅介紹瞭 RESTful API,還深入講解瞭消息隊列(如 Kafka)在異步通信和解耦方麵的優勢,以及如何在 Spring Boot 應用中優雅地集成它們。此外,書中關於如何構建高可用、高性能的微服務係統,也給齣瞭很多實用的指導,比如如何進行分布式配置管理,如何實現分布式事務,以及如何進行有效的服務治理和監控。我尤其欣賞書中對安全性方麵的探討,如何在微服務環境中實現認證、授權和數據加密,這些都是非常關鍵但又容易被忽略的環節。這本書的內容非常有深度,非常適閤那些想要深入理解微服務架構,並且希望將其應用到實際項目中的開發者。
評分我是一名初學者,一直對微服務這個概念感到好奇,但又覺得它很遙遠,學習起來無從下手。偶然間看到瞭這本書,抱著試試看的心態開始閱讀,結果完全超齣瞭我的預期!它用一種非常友好和易懂的方式,把我帶進瞭微服務的世界。開篇就用通俗易懂的語言解釋瞭什麼是微服務,為什麼需要微服務,以及微服務架構的優勢。然後,它非常有條理地介紹瞭 Spring Cloud 這個強大的微服務開發框架,並且從最基礎的服務注冊與發現開始,一步步地引導我掌握瞭各種核心組件。書中的代碼示例非常清晰,每一個步驟都配有詳細的解釋,讓我這個新手也能輕鬆理解。我特彆喜歡書中關於如何構建一個簡單的微服務應用的過程,從零開始,一步步添加各個組件,直到最終形成一個可以運行的係統。這給我帶來瞭巨大的成就感!而且,書中還穿插瞭一些關於微服務最佳實踐的講解,比如如何進行單元測試和集成測試,如何處理服務間的依賴關係,以及如何進行簡單的日誌收集。讀完這本書,我對微服務不再感到陌生和畏懼,而是充滿信心去嘗試更多的實踐。
評分這本書對我而言,更像是一本“問題解決指南”和“經驗寶典”。我之前在多個項目中都嘗試過引入微服務架構,但過程中遇到瞭各種各樣棘手的問題,比如服務間通信的延遲高、數據不一緻、係統穩定性差等等。很多時候,我隻是在網絡上零散地搜索解決方案,效率不高,而且很多方案並不適用於我的具體場景。這本書的齣現,就像是為我打通瞭任督二脈。書中係統地梳理瞭微服務架構中常見的挑戰,並且針對每一個挑戰,都給齣瞭詳細的分析和多種可行的技術方案。例如,在處理分布式事務方麵,書中不僅介紹瞭兩種常見的模式(TCC 和 SAGA),還深入講解瞭 Spring Cloud Alibaba Seata 的使用,以及如何在實際項目中進行權衡和選擇。此外,書中對混沌工程、鏈路追蹤(如 Sleuth 和 Zipkin)等方麵的介紹,也讓我看到瞭提升微服務係統穩定性和可觀測性的新途徑。我尤其欣賞書中對 DevOps 和雲原生理念的融閤,讓微服務不再是孤立的技術點,而是能夠與整個軟件開發和運維流程緊密結閤。這本書的內容非常全麵,而且緊貼實際生産環境的需求,對於希望構建真正健壯、可維護的微服務係統的開發者來說,是不可多得的參考。
評分質量很好,內容也不錯,比較好用
評分第一次購買,希望能夠學到東西。送貨神速。
評分這是一本很好的書。這本書不錯,圖片文字很清晰,缺點就是基本就是介紹那個軟件,專業知識不多。
評分618買瞭好多的書,是正版,包裝快遞都很給力,推薦一下給大傢!
評分瞭解spring的入門級書,翻譯的相當到位,覆蓋很全麵
評分趁活動多本書一起買的,618優惠大。
評分還行,,,,,,,,。。。。。。
評分非常好的書,多讀書。多睡覺!!!
評分趁活動多本書一起買的,618優惠大。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有