百人牛牛棋牌
Spring響應式微服務:Spring Boot 2+Spring 5+Spring Cloud實戰
  • 推薦0
  • 收藏1
  • 瀏覽1.6K

Spring響應式微服務:Spring Boot 2+Spring 5+Spring Cloud實戰

鄭天民 (作者)  李利健 (責任編輯)

  • 書  號:978-7-121-36383-2
  • 出版日期:2019-06-01
  • 頁  數:276
  • 開  本:16(185*235)
  • 出版狀態:上市銷售
  • 維護人:張春雨
《Spring響應式微服務:Spring Boot 2+Spring 5+Spring Cloud實戰》主要包含構建響應式微服務架構過程中所應具備的技術體系和工程實踐。圍繞響應式編程和微服務 架構的整合,我們將討論如何使用 Reactor 響應式編程框架、如何構建響應式 RESTful 服務、如何構建響應式數據訪問組件、如何構建響應式消息通信組件、如何構建響應式微服務架構,以及如何測試響應式微服務 架構等核心主題,并基于這些核心主題給出具體的案例分析。

《Spring響應式微服務:Spring Boot 2+Spring 5+Spring Cloud實戰》面向立志于成為微服務架構師(尤其是響應式微服務架構師)的后端服務開發人員,讀者不需要有 很高的技術水平,也不限于特定的開發語言,但熟悉 Java EE 常見技術并掌握一定異步編程模型和分布式架構的基本概念有助于更好地理解書中的內容。同時,本書也可以供具備不同技術體系的架構師同行參考,希 望能給日常研發和管理工作帶來啟發和幫助。
本書介紹了響應式微服務架構的核心技術和案例分析,是國內第一本響應式微服務架構領域的專著。本書結合作者多年微服務架構設計和實現的工程經驗,基于最新的工具框架和編程方法,全面描述響應式微服務架構的核心組件和實現細節。同時,本書也在一定程度上從架構設計維度給出如何設計高性能、高擴展性服務化體系的方法論和總結。
鄭天民,網名天涯蘭,日本足利工業大學信息工程學碩士,研究方向為人工智能在大規模調度系統中的應用,在SCI、EI等國際三大索引上發表學術論文4篇。10年軟件行業從業經驗,前后擔任系統分析架構師、技術總監和CTO等職務。目前在一家大健康領域的創新性科技公司擔任CTO,負責產品研發與技術團隊管理工作。主持過十余個面向研發人員的技術和管理類培訓課程,對架構設計和技術管理有豐富的經驗和深入的理解。著有《系統架構設計:程序員向架構師轉型之路》、《向技術管理者轉型:軟件開發人員跨越行業、技術、管理的轉型思維與實踐》、《微服務設計原理與架構》、《微服務架構實戰》等書籍。
當下互聯網行業飛速發展,快速的業務更新和產品迭代也給系統開發過程和模式帶來新的挑戰。在這個時代背景下,以Spring Cloud為代表的微服務架構實現技術應運而生。微服務架構是一種分布式系統,在具備業務、技術和組織等方面具備相應優勢的同時,也不得不面臨分布式系統所固有的問題。如何確保微服務系統的即時響應性和服務彈性是我們構建微服務架構的一大挑戰。幸運的是,Spring 框架的開發人員已經創建了一個嶄新的、支持響應式的項目版本用來支持響應式微服務架構的設計和開發。通過構建響應式微服務架構,我們將在傳統微服務架構的基礎上提供即時響應性和服務彈性。
  本書從響應式編程和微服務架構的基本概念開始展開。你將了解響應式的基本原理,以及Spring 5框架所集成的Project Reactor響應式開發框架。同時,你將進一步學習如何構建響應式RESTful服務、如何構建響應式數據訪問組件、如何構建響應式消息通信組件、如何構建響應式微服務架構,以及如何測試響應式微服務架構等核心主題。所有這些內容都將應用于一個精簡而又完整的示例項目,確保你能夠將所學到的技能付諸于實踐。
  本書主要包含響應式微服務架構實現過程中所應具備的技術體系和工程實踐,在組織結構上分如下8章內容。
  第1章“直面響應式微服務架構”。作為全書的開篇,圍繞響應式微服務架構的概念和構建方式展開討論。通過對比傳統編程方法和響應式編程方法引出響應式編程的核心概念,并引用響應式宣言來闡述響應式系統所應具備的基本系統特性和維度。同時,本章在介紹傳統微服務架構的基礎上,分析了響應式微服務架構的設計原則,然后對響應式編程和微服務架構進行了整合。
  第2章“響應式編程模型與Reactor框架”。本章全面介紹響應式編程模型并引出了響應式流規范,Reactor框架為我們提供了一整套實現該規范的具體實現。我們在介紹Reactor框架中Mono和Flux這兩個核心組件的基礎上,進一步提供了一系列強大的操作符來操作這些組件。本章最后還對Reactor框架中的背壓機制做了簡單介紹,Reactor框架為我們提供了四種背壓處理策略以滿足不同場景需求。
  第3章“構建響應式RESTful服務”。要想構建響應式微服務架構,首先需要構建單個響應式微服務。在Spring 5中引入了全新的響應式服務構建框架Spring WebFlux,支持使用注解編程模型和函數式編程模型兩種方式來構建響應式RESTful服務。本章基于Spring Boot,對Spring WebFlux框架做了全面介紹。
  第4章“構建響應式數據訪問組件”。對于響應式微服務架構而言,數據訪問也是構建全棧響應式系統的重要一環。為此,Spring Data框架也專門提供了Spring Reactive Data組件用來創建響應式數據訪問層組件。在本章中,我們重點就Mongodb和Redis這兩個支持響應式特性的Nosql數據庫分別給出了如何使用Spring Reactive Data來實現響應式數據訪問的基本步驟和代碼示例。
  第5章“構建響應式消息通信組件”。本章內容圍繞構建響應式微服務架構的另一個重要主題展開討論,即響應式消息通信。我們使用Reactive Spring Cloud Stream框架來實現響應式消息通信組件。本章先從事件驅動架構和模型出發,引出了Spring Cloud家族中實現消息通信的Spring Cloud Stream框架。然后對Spring Cloud Stream進行升級,結合響應式編程模型全面介紹Reactive Spring Cloud Stream框架的使用方法。
  第6章“構建響應式微服務架構”。本章是全書的重點章節,我們通過使用Spring Cloud框架來實現響應式微服務架構。我們從服務治理、負載均衡、服務容錯、服務網關、服務配置和服務監控等六大主題出發全面討論了響應式微服務架構的核心組件及其實現方案。對于每個組件的介紹,我們都包含了使用該組件的具體方法以及相應的代碼示例。同時,我們還專門使用一節內容來介紹WebClient這一響應式服務調用的實現工具。
  第7章“測試響應式微服務架構”。本章中,首先介紹了初始化測試環境的準備工作,然后分別給出了測試響應式微服務架構中一系列獨立層組件的方法和示例,即從數據流層出發,分別對基于響應式Mongodb的Repository層、Service層以及Controller層進行測試。
  第8章“響應式微服務架構演進案例分析”。本章作為全書最后一章,通過一個完整的案例分析全面介紹了構建一個響應式微服務系統的各個方面。在介紹該案例時,首先采用了傳統的微服務架構來實現該案例。然后,在傳統微服務架構構建完畢的基礎上,本章重點對如何向響應式微服務架構演進的方法和過程做了具體展開。首先需要更新基礎設施類服務,更為重要的,我們需要完成對數據訪問方式、事件通信方式、服務調用方式的全面升級。這里涉及響應式WebFlux、響應式Mongodb和Redis、響應式Spring Cloud Stream等響應式組件的使用方式和最佳實踐。
  本書面向立志于成為微服務架構師尤其是響應式微服務架構師的服務開發人員,讀者不需要有很深的技術水平,也不限于特定的開發語言,但熟悉Java EE常見技術并掌握一定異步編程模型和分布式架構基本概念有助于更好地理解書中的內容。通過對本書的系統學習,讀者將對響應式微服務架構的技術體系和實現方式有全面且深入的了解,為后續的工作和學習鋪平道路。
  在本書的撰寫過程中,感謝我的家人特別是我的妻子章蘭婷女士在我占用大量晚上和周末時間的情況下,能夠給予極大的支持和理解。感謝以往以及現在公司的同事們,身處在業界領先的公司和團隊中,讓我得到很多學習和成長的機會,沒有大家的幫助,不可能有這本書的誕生。最后,特別感謝電子工業出版社的張春雨編輯,這本書能夠順利出版,離不開他的幫助。
  由于時間倉促,作者水平和經驗有限,書中難免有欠妥和錯誤之處,懇請讀者批評、指正。
  鄭天民
  2019年3月于杭州錢江世紀城

目錄

第1章 直面響應式微服務架構 1

1.1 響應式系統核心概念 1

1.1.1 從傳統編程方法到響應式編程方法 1

1.1.2 響應式宣言與響應式系統 4

1.2 剖析微服務架構 6

1.2.1 分布式系統與微服務架構 6

1.2.2 服務拆分與集成 8

1.2.3 微服務架構的核心組件 11

1.2.4 微服務架構技術體系 13

1.3 構建響應式微服務架構 15

1.3.1 響應式微服務架構設計原則 15

1.3.2 整合響應式編程與微服務架構 18

1.4 全書架構 19

1.5 本章小結 20

第2章 響應式編程模型與Reactor框架 21

2.1 響應式編程模型 21

2.1.1 流 22

2.1.2 背壓 24

2.1.3 響應式流 25

2.2 Reactor框架 28

2.2.1 響應式編程實現技術概述 28

2.2.2 引入Reactor框架 31

2.3 創建Flux和Mono 34

2.3.1 創建Flux 34

2.3.2 創建Mono 37

2.4 Flux和Mono操作符 39

2.4.1 轉換操作符 39

2.4.2 過濾操作符 43

2.4.3 組合操作符 46

2.4.4 條件操作符 49

2.4.5 數學操作符 52

2.4.6 Observable工具操作符 54

2.4.7 日志和調試操作符 56

2.5 Reactor框架中的背壓機制 58

2.6 本章小結 60

第3章 構建響應式RESTful服務 61

3.1 使用Spring Boot 2.0構建微服務 61

3.1.1 Spring Boot基本特性 61

3.1.2 基于Spring Boot的第一個RESTful服務 63

3.1.3 使用Actuator組件強化服務 67

3.2 使用Spring WebFlux構建響應式服務 80

3.2.1 使用Spring Initializer初始化響應式Web應用 80

3.2.2 對比響應式Spring WebFlux與傳統Spring WebMvc 82

3.2.3 使用注解編程模型創建響應式RESTful服務 84

3.2.4 使用函數式編程模型創建響應式RESTful服務 88

3.3 本章小結 93

第4章 構建響應式數據訪問組件 94

4.1 Spring Data數據訪問模型 94

4.1.1 Spring Data抽象 95

4.1.2 集成Spring Data JPA 98

4.1.3 集成Spring Data Redis 100

4.1.4 集成Spring Data Mongodb 103

4.2 響應式數據訪問模型 104

4.2.1 Spring Reactive Data抽象 105

4.2.2 創建響應式數據訪問層組件 107

4.3 響應式Mongodb 108

4.3.1 初始化Reactive Mongodb運行環境 109

4.3.2 創建Reactive Mongodb Repository 112

4.3.3 使用CommandLineRunner初始化Mongodb數據 113

4.3.4 在Service層中調用Reactive MongodbRepository 114

4.4 響應式Redis 117

4.4.1 初始化Reactive Redis運行環境 117

4.4.2 創建Reactive Redis Repository 121

4.4.3 在Service層中調用Reactive Repository 122

4.5 本章小結 123

第5章 構建響應式消息通信組件 124

5.1 消息通信系統簡介 125

5.2 使用Spring Cloud Stream構建消息通信系統 126

5.2.1 Spring Cloud Stream基本架構 126

5.2.2 Spring Cloud Stream中的Binder組件 130

5.2.3 使用Source組件實現消息發布者 135

5.2.4 使用@StreamListener注解實現消息消費者 137

5.3 引入Reactive Spring Cloud Stream實現響應式 消息通信系統 139

5.3.1 Reactive Spring Cloud Stream組件 139

5.3.2 Reactive Spring Cloud Stream示例 141

5.4 本章小結 147

第6章 構建響應式微服務架構 148

6.1 使用Spring Cloud創建響應式微服務架構 148

6.1.1 服務治理 149

6.1.2 負載均衡 154

6.1.3 服務容錯 161

6.1.4 服務網關 166

6.1.5 服務配置 173

6.1.6 服務監控 177

6.2 使用WebClient實現響應式服務調用 182

6.2.1 創建和配置WebClient 182

6.2.2 使用WebClient訪問服務 183

6.3 本章小結 187

第7章 測試響應式微服務架構 188

7.1 初始化測試環境 189

7.1.1 引入spring-boot-starter-test組件 189

7.1.2 解析基礎類測試注解 190

7.1.3 編寫第一個測試用例 191

7.2 測試Reactor組件 192

7.3 測試響應式Repository層組件 194

7.3.1 測試內嵌式Mongodb 194

7.3.2 測試真實MongoDB 197

7.4 測試響應式Service層組件 199

7.5 測試響應式Controller層組件 201

7.6 本章小結 204

第8章 響應式微服務架構演進案例分析 205

8.1 PrescriptionSystem案例簡介 205

8.2 傳統微服務架構實現案例 207

8.2.1 構建基礎設施類服務 207

8.2.2 構建Medicine服務 213

8.2.3 構建Card服務 219

8.2.4 構建Prescription服務 224

8.3 響應式微服務架構演進案例 237

8.3.1 更新基礎設施類服務 237

8.3.2 更新數據訪問方式 241

8.3.3 更新事件通信方式 246

8.4 本章小結 266

參考文獻 267

讀者評論

下載資源

圖書類別

相關博文

  • Spring響應式微服務,面向未來Java技術棧

    Spring響應式微服務,面向未來Java技術棧

    管理員賬號 2019-06-13

    隨著以Dubbo、Spring Cloud 等框架為代表的分布式服務調用和治理工具的大行其道,以及以 Docker 、 Kubernetes 等容器技術的日漸成熟,微服務架構毫無疑問是近年來最熱門的一種服務化架構模式。 微服務相比...

    管理員賬號 2019-06-13
    495 0 0 0

相關圖書

架構解密:從分布式到微服務(第2版)

吳治輝 (作者)

微服務、云原生、Kubernetes、Service Mesh是分布式領域的熱點技術,它們并不是憑空出現的,一定繼承了某些“前輩”的優點。我們不僅要了解這些技術...

 

趣談網絡協議

劉超 (作者)

網絡協議是每個程序員入門的必修課,但是完全掌握網絡協議知識并進行實際應用卻并非易事。在本書中,作者將結合自己從業多年的“泣血”經驗,以通俗易懂、更加貼近日常生活...

¥108.00

大型系統應用架構實戰:部署、容災、性能優化

李彥超 郭東白 陳禹 謝松林 周志偉 桑植 (作者)

本書理論與實戰相結合,以AliExpress 網站為基礎,全面介紹大型系統的總體技術方案、全球區域化部署技術、全球網絡調度技術、性能優化,以及SRE 在AliE...

 

Java微服務測試:基于Arquillian、Hoverfly、AssertJ、JUnit、Selenium與Mockito

Alex Soto Bueno, Jason Porter, Andy Gumbrecht (作者) 劉夢馨 (譯者)

本書從實戰出發,介紹微服務架構所帶來的測試方面的挑戰,以及如何利用新的技術來應對這些挑戰。通過本書,讀者可以學會如何編寫微服務架構下的單元測試、組件測試、集成測...

¥89.00

小團隊構建大網站:中小研發團隊架構實踐

張輝清 楊麗 (作者)

本書結合作者近幾年的工作經驗,總結了一套可直接落地、基于開源、成本低、可快速搭建的中小研發團隊架構實踐方法。本書共5篇22章,開篇是本書的導讀;架構篇是設計思想...

¥69.00

區塊鏈2.0(第2版)

譚磊 (作者)

當人們談論“區塊鏈”的時候,上下文往往是“比特幣”或者其他某種虛擬貨幣。而實際上區塊鏈的應用遠不止于此。本書不僅會為讀者解釋什么是區塊鏈,更重要的是介紹區塊鏈技...

¥49.00
百人牛牛棋牌 6805865097209582773766746766638827361130136117554594655480426965037857723744874188664802907861539 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();