瘋狂 Spring Cloud 微服務架構實戰

楊恩雄

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

商品描述

本書以Spring Cloud為基礎,深入講解微服務開發的相關框架,包括服務管理框架Eureka、負載均衡框架Ribbon、服務客戶端Feign、容錯框架Hystrix、消息框架Stream等。除了介紹這些微服務相關的框架外,在本書的第11章,還介紹瞭如何使用Spring Data框架操作各個主流數據庫(MySQL、MongoDB、Redis)。在第12章,以一個案例為基礎結束本書內容,在該章中講解了模板引擎Thymeleaf,整本書將會為大家提供一整套微服務應用開發的解決方案。本書適合有一定Java開發基礎的技術人員,尤其是正在使用或準備使用微服務構建高並發、大數據應用的技術人員及團隊。

作者簡介

作者從事十多年的Java EE企業應用開發,曾任中企動力系統設計師、中企開源項目經理、數碼辰星科技公司項目經理,參與過多個企業級項目的設計與架構工作。
曾負責辰星“電影票網絡銷售系統”的整體架構,精通Activiti、Drools、ESB等開源技術,在SOA、SaaS、大數據應用、互聯網系統架構方面有著豐富的經驗,曾出版《瘋狂Java實戰演義》 《瘋狂Workflow講義》、《瘋狂Spring Cloud微服務架構實戰》等書籍。

目錄大綱

第1章Spring Cloud概述1 
1.1傳統的應用2 
1.1.1單體應用2 
1.1.2架構演進3 
1.1.3架構要求4 
1.2微服務與Spring Cloud 5 
1.2.1什麼是微服務5 
1.2.2關於Netflix OSS 6 
1.2.3 Spring Cloud與Netflix 6 
1.2.4 Spring Cloud的主要模塊6 
1.3學習方面的準備工作7 
1.3.1下載本書的軟件及源碼7 
1.3.2導入本書的案例7 
1.4本章小結8 

第2章搭建開發環境9 
2.1安裝與配置Maven 10 
2.1.1關於Maven 10 
2.1.2下載與安裝Maven 11 
2.1.3配置遠程倉庫11 
2.2安裝Eclipse 12 
2.2.1 Eclipse版本12 
2.2.2在Eclipse中配置Maven 12 
2.3 Spring Boot 13 
2.3.1 Spring Boot簡介13 
2.3.2新建Maven項目14 
2.3.3編寫啟動類15 
2.3.4編寫控制器16
2.3.5發布REST WebService 17 
2.4 Spring Boot配置文件18 
2.4.1默認配置文件18 
2.4.2指定配置文件位置19 
2.4.3 yml文件19 
2.4.4運行時指定profiles配置20 
2.4.5熱部署20 
2.5 Spring Cloud的版本21 
2.6本章小結21 

第3章微服務發布與調用22 
3.1 Eureka介紹23 
3.1.1關於Eureka 23 
3.1.2 Eureka架構23 
3.1.3服務器端24 
3.1.4服務提供者24 
3.1.5服務調用者24 
3.2第一個Eureka應用24 
3.2.1構建服務器24 
3.2.2服務器註冊開關27 
3.2.3編寫服務提供者27 
3.2.4編寫服務調用者29 
3.2.5程序結構32 
3.3 Eureka集群搭建33 
3.3.1本例集群結構圖33 
3.3.2改造服務器端34 
3.3.3改造服務提供者35 
3.3.4改造服務調用者37 
3.3.5編寫REST客戶端進行測試37 
3.4服務實例的健康自檢38
3.4.1程序結構39 
3.4.2使用Spring Boot Actuator 39 
3.4.3實現應用健康自檢39 
3.4.4服務查詢42 
3.5 Eureka的常用配置44 
3.5.1心跳檢測配置44 
3.5.2註冊表抓取間隔44 
3.5.3配置與使用元數據45 
3.5.4自我保護模式45 
3.6本章小結46 

第4章負載均衡47 
4.1 Ribbon介紹48 
4.1.1 Ribbon簡介48 
4.1.2 Ribbon子模塊48 
4.1.3負載均衡器組件48 
4.2第一個Ribbon程序49 
4.2.1編寫服務49 
4.2.2編寫請求客戶端51 
4.2.3 Ribbon的配置52 
4.3 Ribbon的負載均衡機制53 
4.3.1負載均衡器53 
4.3.2自定義負載規則54 
4.3.3 Ribbon自帶的負載規則56 
4.3.4 Ping機制57 
4.3.5自定義Ping 59 
4.3.6其他配置59 
4.4在Spring Cloud中使用Ribbon 60 
4.4.1準備工作60
4.4.2使用代碼配置Ribbon 61 
4.4.3使用配置文件設置Ribbon 63 
4.4.4 Spring使用Ribbon的API 64 
4.5 RestTemplate負載均衡66 
4.5.1 @LoadBalanced註解概述66 
4.5.2編寫自定義註解以及攔截器66 
4.5.3使用自定義攔截器以及註解68 
4.5.4在控制器中使用RestTemplate 69 
4.6本章小結71 

第5章REST客戶端Feign 72 
5.1 REST客戶端73 
5.1.1使用CXF調用REST服務73 
5.1.2使用Restlet調用REST服務74 
5.1.3 Feign框架介紹75 
5.1.4第一個Feign程序76 
5.1.5請求參數與返回對象77 
5.2使用Feign 78 
5.2.1編碼器79 
5.2.2解碼器80 
5.2.3 XML的編碼與解碼80 
5.2.4自定義編碼器與解碼器83 
5.2.5自定義Feign客戶端83 
5.2.6使用第三方註解85 
5.2.7 Feign解析第三方註解86 
5.2.8請求攔截器89 
5.2.9接口日誌89
5.3在Spring Cloud中使用Feign 90 
5.3.1 Spring Cloud整合Feign 91 
5.3.2 Feign負載均衡93 
5.3.3默認配置93 
5.3.4自定義配置94 
5.3.5可選配置97 
5.3.6壓縮配置98 
5.4本章小結98 

第6章Spring Cloud的保護機制99 
6.1概述100 
6.1.1實際問題100 
6.1.2傳統的解決方式101 
6.1.3集群容錯框架Hystrix 101 
6.1.4 Hystrix的功能102 
6.2第一個Hystrix程序103 
6.2.1準備工作103 
6.2.2客戶端使用Hystrix 103 
6.2.3調用錯誤服務105 
6.2.4 Hystrix的運作流程106 
6.3 Hystrix的使用108 
6.3.1命令執行108 
6.3.2屬性配置110 
6.3.3回退111 
6.3.4回退的模式112 
6.3.5斷路器開啟113 
6.3.6斷路器關閉116 
6.3.7隔離機制118 
6.3.8合併請求121
6.3.9請求緩存125 
6.4在Spring Cloud中使用Hystrix 127 
6.4.1整合Hystrix 128 
6.4.2命令配置130 
6.4.3默認配置131 
6.4.4緩存註解132 
6.4.5合併請求註解134 
6.4.6 Feign與Hystrix整合136 
6.4.7 Hystrix監控140 
6.5本章小結142 

第7章微服務集群網關143 
7.1 Zuul框架介紹144 
7.1.1關於Zuul 144 
7.1.2 Zuul的功能144 
7.2在Web項目中使用Zuul 145 
7.2.1 Web項目整合Zuul 145 
7.2.2測試路由功能145 
7.2.3過濾器運行機制147 
7.3在微服務集群中初試Zuul 148 
7.3.1集群搭建149 
7.3.2路由到集群服務150 
7.3.3 Zuul Http客戶端153 
7.4路由配置153 
7.4.1簡單路由154 
7.4.2跳轉路由155 
7.4.3 Ribbon路由155 
7.4.4自定義路由規則156 
7.4.5忽略路由157
7.5 Zuul的其他配置157 
7.5.1請求頭配置157 
7.5.2路由端點158 
7.5.3 Zuul與Hystrix 158 
7.5.4在Zuul中預加載Ribbon 161 
7.6 Zuul功能進階161 
7.6.1過濾器優先級161 
7.6.2自定義過濾器162 
7.6.3動態加載過濾器163 
7.6.4禁用過濾器165 
7.6.5請求上下文166 
7.6.6 @EnableZuulServer註解168 
7.6.7 error過濾器169 
7.6.8動態路由171 
7.7本章小結172 

第8章微服務與消息驅動173 
8.1 Spring Cloud Stream介紹174 
8.1.1關於Stream框架174 
8.1.2 Stream框架的組成部分174 
8.1.3消息代理中間件174 
8.2 RabbitMQ框架175 
8.2.1 RabbitMQ和AMQP 175 
8.2.2下載與運行176 
8.2.3編寫生產者177 
8.2.4編寫消費者179 
8.2.5交換器、綁定與隊列180 
8.3 Apache Kafka框架181
8.3.1關於Kafka 181 
8.3.2運行Kafka服務器182 
8.3.3編寫生產者182 
8.3.4編寫消費者184 
8.3.5消費者組185 
8.4開發消息微服務185 
8.4.1準備工作186 
8.4.2編寫生產者187 
8.4.3編寫消費者188 
8.4.4更換綁定器189 
8.4.5 Sink、Source與Processor 190 
8.4.6消費者組191 
8.5本章小結192 

第9章集群配置中心193 
9.1概述194 
9.1. 1關於Spring Cloud Config 194 
9.1.2應用結構195 
9.1.3引導程序簡介195 
9.1.4搭建SVN環境196 
9.2構建第一個例子196 
9.2.1創建服務器196 
9.2.2配置SVN倉庫197 
9.2.3創建客戶端199 
9.2.4從客戶端讀取SVN配置200 
9.2.5目錄配置總結201 
9.2.6刷新配置202 
9.2.7刷新Bean 203 
9.3配置的加密和解密205 
9.3.1為服務器安裝JCE 205
9.3.2加密和解密端點205 
9.3.3 SVN存儲加密數據206 
9.3.4非對稱加密20