Spring Boot微服務實戰 使用RabbitMQ、Eureka、Ribbon、Zu ( 簡體 字) |
作者: [美] 莫伊塞斯·馬塞羅(Moises Macero)著 | 類別:1. -> 程式設計 -> JAVA -> Spring |
譯者:張淵 和堅 譯 |
出版社:清華大學出版社 | 3dWoo書號: 51883 詢問書籍請說出此書號!【有庫存】 NT售價: 300 元 |
出版日:9/1/2019 |
頁數:230 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302535652 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:譯 者 序 雖然市面上已經有了很多講解Spring Boot的圖書,但是《Spring Boot微服務實戰》絕對會給你帶來不一樣的體驗。Moises Macero沒有把《Spring Boot微服務實戰》寫得像一本使用手冊一樣面面俱到,也沒有一上來就直接給出一個完整的微服務架構設計,然后把這個架構設計實現出來,而是像一本微服務開發者的旅行小說,帶著讀者一起探索微服務世界,在旅途中一起面臨問題,然后一起解決問題,這樣一步步用演進方式給讀者呈現出最終的微服務架構設計。 這個旅途從一個業務基本需求開始,作者按照敏捷開發的方式寫出了第一個用戶故事并拆分出具體任務,然后使用測試驅動開發(Test-Driven Development,TDD)的方法實現了基本業務邏輯。緊接著用了一章篇幅詳細介紹了一個Spring Boot應用的三層架構體系,并基于這個架構實現了從界面到數據庫的一個完整功能。隨著需求的不斷增加,發現新需求不適合放在原來的應用中,于是介紹了解決這種問題的方案:多個微服務架構。實現了多個微服務以后又發現了新問題,于是開始一個個地介紹解決這些問題的工具,并把這些工具實現到系統中。最后針對復雜的微服務架構系統,發現很難進行端到端測試,因此又帶著讀者一起使用業務驅動開發(Business-Driven Development,BDD)的方法實現了微服務系統的端到端測試。在整個旅途中,作者在每次解決問題之前,都會深入淺出地解釋為什么要這樣解決。這好像在旅游時一位經驗豐富的導游在給你講解每個景點背后的故事,以及到達景點為什么要走這條路。 希望讀者不僅從《Spring Boot微服務實戰》學到如何使用Spring Boot實現微服務,而能夠通過《Spring Boot微服務實戰》更深入地理解很多微服務的底層邏輯,掌握了這套邏輯就能夠使用其他開發語言或者框架實現微服務架構系統。這些年大部分公司都在把傳統IT系統的單體架構轉型成微服務架構。而基于越來越多的微服務,數字化中臺這個概念開始越來越火,很多公司都提出要建設中臺。構建中臺的一個個微服務,每個微服務都代表企業的某種業務能力,這些業務能力通過微服務改造變成數字化服務后,企業就可以很容易地復用這些業務能力來響應業務訴求,并通過擴展微服務的方式來支持業務規模的迅速擴張。不論是微服務架構還是數字化中臺,都不僅是專有的技術概念,而是一個企業在數字化時代需要具備的新技能。 下面這個圖是譯者提出的數字化中臺全景,在《Spring Boot微服務實戰》中作者提到的服務發現、API網關、負載均衡、服務容錯等概念都能夠在這個全景圖中找到對應的位置。 《Spring Boot微服務實戰》全部章節由張淵與和堅翻譯,在這里要感謝清華大學出版社的編輯,他們為《Spring Boot微服務實戰》的翻譯投入了巨大的熱情并付出了很多心血。沒有他們的幫助和嚴謹的要求,《Spring Boot微服務實戰》不可能順利付梓。還要感謝譯者的家人們,他們給予的支持保證了譯者在工作之余能投入足夠的時間和精力進行翻譯和校對。 《Spring Boot微服務實戰》涉及了大量的實踐和專業術語,譯者力求翻譯得準確易懂。但畢竟水平有限,錯誤和失誤在所難免,如有任何意見和建議,請不吝指正。感激不盡! 譯 者 |
內容簡介:主要內容: ◇ 使用Spring Boot 構建微服務 ◇ 使用事件驅動架構,通過RabbitMQ實現消息機制 ◇ 使用Spring創建RESTful服務 ◇ 使用Eureka掌握服務發現,使用Ribbon掌握負載均衡 ◇ 使用Zuul路由請求并將其作為API網關 ◇ 使用Cucumber為事件驅動架構編寫端到端測試 ◇ 進行持續集成和部署 |
目錄:第1章介紹1 1.1設置場景1 1.2讀者對象2 1.3本書與其他圖書和指南有何區別2 1.3.1工具背后的論證2 1.3.2學習:漸進的過程3 1.3.3這是一本指南還是一本圖書3 1.4本書內容3 1.4.1從基礎知識到高級話題3 1.4.2搭建SpringBoot骨架的專業方式4 1.4.3測試驅動開發4 1.4.4連接微服務4 1.4.5事件驅動的系統5 1.4.6端到端測試5 1.5本章小結5 第2章一個基本的SpringBoot應用7 2.1業務需求7 2.2骨架應用8 2.2.1輕薄應用與真實應用8 2.2.2創建應用骨架8 2.3熱身:一些TDD的實戰10 2.4本章小結16 第3章一個真實的三層SpringBoot應用17 3.1簡介17 3.2完成基本功能18 3.3領域設計24 3.4業務邏輯層28 3.5展示層(RESTAPI)30 3.5.1MultiplicationController31 3.5.2Results控制器35 3.6前端(Web客戶端)38 3.7試玩(第1部分)42 3.8數據持久化的新需求43 3.9重構代碼45 3.10數據層50 3.10.1數據模型51 3.10.2資源庫56 3.11完成第二個用戶故事:串聯所有層63 3.12暢玩應用(第2部分)69 3.13本章小結71 第4章初識微服務73 4.1小單體之路73 4.1.1單體分析75 4.1.2繼續前進76 4.2游戲化基礎77 4.2.1分數、徽章和排行榜77 4.2.2應用游戲化技術78 4.3轉向微服務架構78 4.3.1職責分離和松耦合78 4.3.2獨立變更79 4.3.3伸縮性79 4.4連接不同的微服務80 4.5事件驅動架構81 4.5.1相關技術81 4.5.2事件驅動架構的優缺點82 4.5.3深入閱讀84 4.5.4應用事件驅動架構84 4.6使用RabbitMQ和SpringAMQP實現事件驅動85 4.6.1在系統中使用RabbitMQ86 4.6.2SpringAMQP86 4.7從乘法微服務發送事件87 4.7.1RabbitMQ配置87 4.7.2對事件建模89 4.7.3發送事件:分發器模式91 4.7.4深入新游戲化微服務95 4.8使用RabbitMQ接收事件111 4.8.1訂閱者111 4.8.2RabbitMQ配置111 4.8.3事件處理程序114 4.9在微服務之間請求數據115 4.9.1結合反應式模式和REST115 4.9.2保持領域隔離117 4.9.3實現REST客戶端119 4.9.4更新游戲化業務邏輯123 4.10使用微服務126 4.11本章小結128 第5章使用工具的微服務架構131 5.1介紹131 5.2抽取UI部分,并連接游戲化服務132 5.2.1移動靜態內容133 5.2.2連接UI和游戲化服務134 5.2.3改變現有服務136 5.2.4全新的、更好的UI,而且(幾乎)不需要額外的代價139 5.3當前架構146 5.4服務發現和負載均衡147 5.4.1服務發現147 5.4.2負載均衡149 5.4.3多語言系統、Eureka以及Ribbon151 5.5通過API網關路由153 5.5.1API網關模式153 5.5.2讓Zuul、Eureka和Ribbon一起工作156 5.6動手準則158 5.6.1使用Zuul實現API網關158 5.6.2使用服務發現172 5.6.3微服務準備好擴展了嗎174 5.6.4通過Ribbon實現負載均衡176 5.7斷路器和REST客戶端183 5.7.1Hystrix斷路器183 5.7.2Hystrix和Zuul183 5.7.3來自REST客戶端的Hystrix186 5.7.4使用Feign的REST消費者189 5.8微服務模式和PaaS189 5.9本章小結190 第6章測試分布式系統193 6.1介紹193 6.2設置場景194 6.3Cucumber的工作方式195 6.4動手準則197 6.4.1創建一個空項目并選擇工具197 6.4.2讓系統可測試200 6.4.3編寫第一個Cucumber測試207 6.4.4把功能測試連接到Java代碼210 6.4.5支持類218 6.4.6在feature之間重用步驟223 6.4.7運行測試并檢查報告225 6.5本章小結226 附錄A升級到SpringBoot2.0229 A.1介紹229 A.2升級依賴項229 A.3修復已破壞的變化232 A.3.1CrudRepository接口不包含findOne()方法232 A.3.2actuator端點被移動233 A.4應用可選的更新234 A.5使用SpringBoot2.0234 后記235 |
序: |