Spring Cloud 微服務 : 全棧技術與案例解析

尹吉歡

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

商品描述

本書內容共18章,共分為4個部分。第1部分為準備篇,準備篇當中會對微服務以及SpringCloud做一個整體的介紹,同時將SpringCloud的基礎內容進行講解,比如SpringBoot。第2部分為基礎篇,基礎篇當中會對SpringCloud的幾大常用模塊進行講解和簡單使用。第3部分為實戰篇,實戰篇當中會通過對在微服務架構中普遍遇到的問題進行實戰解決講解。第4部分為高級篇,高級篇當中就是對SpringCloud進行一些擴展性的使用,比如API網關怎麽限流,怎麽做灰度發布等。

作者簡介

作者簡介
尹吉歡(YinJiHuan)
Java開發工程師,在Spring Cloud和微服務方面有豐富的經驗。喜歡寫代碼,研究技術,座右銘是“簡單的技術愛好者”。
一直在上海從事Java服務端開發工作,前端也略有涉及。曾就職於魯班軟件,一起唱等互聯網公司,目前就職於房產大數據公司房價網,擔任技術經理,負責公司產品的開發和管理工作。
2016年創辦了自己的技術網站'猿天地',主要提供Java相關技術的分享和視頻課程。主要關注分佈式、高並發、後端服務,目前的重心是微服務。

目錄大綱

目錄·Contents 
前言
第一部分準備篇
第1章Spring Cloud與微服務概述2 
1.1傳統的單體應用2 
1.1.1改進單體應用的架構2 
1.1.2向微服務靠攏3 
1.2什麼是微服務4 
1.2 .1使用微服務架構的優勢和劣勢4 
1.2.2重構前的準備工作5 
1.3什麼是Spring Cloud 5 
1.3.1 Spring Cloud模塊介紹5 
1.3.2 Spring Cloud版本介紹6 
1.4本章小結7 
第2章實戰前的準備工作8 
2.1開發環境的準備8 
2.2 Spring Boot入門9 
2.2.1 Spring Boot簡介9 
2.2.2搭建Spring Boot項目9 
2.2.3編寫第一個REST接口11 
2.2.4讀取配置文件11 
2.2.5 profiles多環境配置13 
2.2.6熱部署13 
2.2.7 actuator監控15 
2.2.8統一異常處理16 
2.2.9異步執行18 
2.2.10隨機端口21
2.3本章小結23 
第二部分基礎篇
第3章Eureka註冊中心26 
3.1 Eureka 26 
3.2使用Eureka編寫註冊中心服務27 
3.3編寫服務提供者29 
3.3.1創建項目註冊到Eureka 29 
3.3.2編寫提供接口30 
3.4編寫服務消費者31 
3.4.1直接調用接口31 
3.4.2通過Eureka來消費接口32 
3.5開啟Eureka認證33 
3.6 Eureka高可用搭建33 
3.6.1高可用原理33 
3.6.2搭建步驟34 
3.7常用配置講解35 
3.7.1關閉自我保護35 
3.7.2自定義Eureka的Instance ID 35 
3.7.3自定義實例跳轉鏈接36 
3.7.4快速移除已經失效的服務信息37 
3.8擴展使用38 
3.8.1 Eureka REST API 38 
3.8.2元數據使用40 
3.8.3 EurekaClient使用41 
3.8.4健康檢查43 
3.8.5服務上下線監控45 
3.9本章小結46 
第4章客戶端負載均衡Ribbon 47
4.1 Ribbon 47 
4.1.1 Ribbon模塊47 
4.1.2 Ribbon使用48 
4.2 RestTemplate結合Ribbon使用49 
4.2.1使用RestTemplate與整合Ribbon 49 
4.2.2 RestTemplate負載均衡示例52 
4.2.3 @LoadBalanced註解原理53 
4.2.4 Ribbon API使用57 
4.2.5 Ribbon飢餓加載58 
4.3負載均衡策略介紹59 
4.4自定義負載策略60 
4.5配置詳解61 
4.5.1常用配置61 
4.5.2代碼配置Ribbon 62 
4.6重試機制63 
4.7本章小結64 
第5章聲明式REST客戶端Feign 65 
5.1使用Feign調用服務接口65 
5.1.1在Spring Cloud中集成Feign 66 
5.1.2使用Feign調用接口66 
5.2自定義Feign的配置67 
5.2.1日誌配置67 
5.2.2契約配置69 
5.2.3 Basic認證配置69 
5.2.4超時時間配置70 
5.2.5客戶端組件配置71
5.2.6 GZIP壓縮配置72 
5.2.7編碼器解碼器配置72 
5.3脫離Spring Cloud使用Feign 73 
5.3.1原生註解方式73 
5.3.2構建Feign對象74 
5.3.3其他配置75 
5.4本章小結76 
第6章Hystrix服務容錯處理77 
6.1 Hystrix 77 
6.1.1 Hystrix的簡單使用77 
6.1.2回退支持78 
6.1.3信號量策略配置79 
6.1.4線程隔離策略配置79 
6.1.5結果緩存80 
6.1.6緩存清除81 
6.1.7合併請求83 
6.2在Spring Cloud中使用Hystrix 84 
6.2.1簡單使用84 
6.2.2配置詳解85 
6.2.3 Feign整合Hystrix服務容錯88 
6.2.4 Feign中禁用Hystrix 90 
6.3 Hystrix監控91 
6.4整合Dashboard查看監控數據92 
6.5 Turbine聚合集群數據94 
6.5.1 Turbine使用94 
6.5.2 context-path導致監控失敗95
6.6本章小結95 
第7章API網關96 
7.1 Zuul簡介96 
7.2使用Zuul構建微服務網關97 
7.2.1簡單使用97 
7.2.2集成Eureka 98 
7.3 Zuul路由配置98 
7.4 Zuul過濾器講解99 
7.4.1過濾器類型100 
7.4.2請求生命週期100 
7.4.3使用過濾器101 
7.4.4過濾器禁用103 
7.4.5過濾器中傳遞數據103 
7.4.6過濾器攔截請求104 
7.4.7過濾器中異常處理106 
7.5 Zuul容錯和回退108 
7.5.1容錯機制108 
7.5.2回退機制109 
7.6 Zuul高可用111 
7.7本章小結111 
第三部分實戰篇
第8章分佈式配置管理114 
8.1自研配置管理框架Smconf簡介114 
8.2 Smconf工作原理115 
8.3 Smconf部署116 
8.3.1 Mongodb安裝116 
8.3.2 Zookeeper安裝117 
8.3.3 Smconf Server部署118
8.4項目中集成Smconf 119 
8.4.1集成Smconf 119 
8.4.2使用Smconf 120 
8.4.3配置更新回調121 
8.5 Smconf詳細使用122 
8.5.1源碼編譯問題122 
8.5.2後台賬號管理122 
8.5.3 REST API 123 
8.6 Smconf源碼解析125 
8.6.1 Client啟動125 
8.6.2啟動加載配置127 
8.6.3配置修改推送原理128 
8.7本章小結129 
第9章Sleuth服務跟踪130 
9.1 Spring Cloud集成Sleuth 130 
9.2整合Logstash 131 
9.2.1 ELK簡介131 
9.2.2輸出JSON格式日誌131 
9.3整合Zipkin 133 
9.3.1創建Zipkin數據收集服務133 
9.3.2項目集成Zipkin發送調用鏈數據134 
9.3