轉載請標明出處:
https://blog.csdn.net/forezp/article/details/79735542
本文出自方志朋的博客
作者簡介
方志朋,畢業於武漢理工大學,CSDN博客專家,專注於微服務、大數據等領域,樂於分享,愛好開源,活躍於各大開源社區。著有《史上最簡單的Spring Cloud教程》,累計訪問量超過了300萬。
購買地址
書籍源碼下載
https://github.com/forezp/springcloud-book
目錄
第1章 微服務簡介
- 1.1 單體架構及其存在的不足
- 1.1.1 單體架構簡介
- 1.1.2 單體架構存在的不足
- 1.1.3 單體架構使用服務器集群及存在的不足
- 1.2 微服務
- 1.2.1 什么是微服務
- 1.2.2 微服務的優勢
- 1.3 微服務的不足
- 1.3.1 微服務的復雜度
- 1.3.2 分布式事務
- 1.3.3 服務的划分
- 1.3.4 服務的部署
- 1.4 微服務和SOA的關系
- 1.5 微服務的設計原則
第2章 Spring Cloud簡介
- 2.1 微服務應該具備的功能
- 2.1.1 服務的注冊與發現
- 2.1.2 服務的負載均衡
- 2.1.3 服務的容錯
- 2.1.4 服務網關
- 2.1.5 服務配置的統一管理
- 2.1.6 服務鏈路追蹤
- 2.2 Spring Cloud
- 2.2.1 簡介
- 2.2.2 常用組件
- 2.2.3 項目一覽表
- 2.3 Dubbo簡介
- 2.4 Spring Cloud與Dubbo比較
- 2.5 Kubernetes簡介
- 2.6 Spring Could與Kubernetes比較
- 2.7 總結
第3章 構建微服務的准備
- 3.1 JDK的安裝
- 3.1.1 JDK的下載和安裝
- 3.1.2 環境變量的配置
- 3.2 IDEA的安裝
- 3.2.1 IDEA的下載
- 3.2.2 用IDEA創建一個Spring Boot工程
- 3.2.3 用IDEA啟動多個Spring Boot工程實例
- 3.3 構建工具Maven的使用
- 3.3.1 Maven簡介
- 3.3.2 Maven的安裝
- 3.3.3 Maven的核心概念
- 3.3.4 編寫Pom文件
- 3.3.5 Maven構建項目的生命周期
- 3.3.6 常用的Maven命令
第4章 開發框架Spring Boot
- 4.1 Spring Boot簡介
- 4.1.1 Spring Boot的特點
- 4.1.2 Spring Boot的優點
- 4.2 用IDEA構建Spring Boot工程
- 4.2.1 項目結構
- 4.2.2 在Spring Boot工程中構建Web
- 4.2.3 Spring Boot的測試
- 4.3 Spring Boot配置文件詳解
- 4.3.1 自定義屬性
- 4.3.2 將配置文件的屬性賦給實體類
- 4.3.3 自定義配置文件
- 4.3.4 多個環境的配置文件
- 4.4 運行狀態監控Actuator
- 4.4.1 查看運行程序的健康狀態
- 4.4.2 查看運行程序的Bean
- 4.4.3 使用Actuator關閉應用程序
- 4.4.4 使用shell連接Actuator
- 4.5 Spring Boot整合JPA
- 4.6 Spring Boot整合Redis
- 4.6.1 Redis簡介
- 4.6.2 Redis的安裝
- 4.6.3 在Spring Boot中使用Redis
- 4.7 Spring Boot整合Swagger2,搭建Restful API在線文檔
第5章 服務注冊和發現Eureka
- 5.1 Eureka簡介
- 5.1.1 什么是Eureka
- 5.1.2 為什么選擇Eureka
- 5.1.3 Eureka的基本架構
- 5.2 編寫Eureka Server
- 5.3 編寫Eureka Client
- 5.4 源碼解析Eureka
- 5.4.1 Eureka的一些概念
- 5.4.2 Eureka的高可用架構
- 5.4.3 Register服務注冊
- 5.4.4 Renew服務續約
- 5.4.5 為什么Eureka Client獲取服務實例這么慢
- 5.4.6 Eureka 的自我保護模式
- 5.5 構建高可用的Eureka Server集群
- 5.6 總結
第6章 負載均衡Ribbon
- 6.1 RestTemplate簡介
- 6.2 Ribbon簡介
- 6.3 使用RestTemplate和Ribbon來消費服務
- 6.4 LoadBalancerClient簡介
- 6.5 源碼解析Ribbon
第7章 聲明式調用Feign
- 7.1 寫一個Feign客戶端
- 7.2 FeignClient詳解
- 7.3 FeignClient的配置
- 7.4 從源碼的角度講解Feign的工作原理
- 7.5 在Feign中使用HttpClient和OkHttp
- 7.6 Feign是如何實現負載均衡的
- 7.7 總結
第8章 熔斷器Hystrix
- 8.1 什么是Hystrix
- 8.2 Hystrix解決了什么問題
- 8.3 Hystrix的設計原則
- 8.4 Hystrix的工作機制
- 8.5 在RestTemplate和Ribbon上使用熔斷器
- 8.6 在Feign上使用熔斷器
- 8.7 使用Hystrix Dashboard監控熔斷器的狀態
- 8.7.1 在RestTemplate中使用Hystrix Dashboar
- 8.7.2 在Feign中使用Hystrix Dashboard
- 8.8 使用Turbine聚合監控
第9章 路由網關Spring Cloud Zuul
- 9.1 為什么需要Zuul
- 9.2 Zuul的工作原理
- 9.3 案例實戰
- 9.3.1 搭建Zuul服務
- 9.3.2 在Zuul上配置API接口的版本號
- 9.3.3 在Zuul上配置熔斷器
- 9.3.4 在Zuul中使用過濾器
- 9.3.5 Zuul的常見使用方式
第10章 配置中心Spring Cloud Config
- 10.1 Config Server從本地讀取配置文件
- 10.1.1 構建Config Server
- 10.1.2 構建Config Client
- 10.2 Config Server從遠程Git倉庫讀取配置文件
- 10.3 構建高可用的Config Server
- 10.3.1 構建Eureka Server
- 10.3.2 改造Config Server
- 10.3.3 改造Config Client
- 10.4 使用Spring Cloud Bus刷新配置
第11章 服務鏈路追蹤Spring Cloud Sleuth
- 11.1 為什么需要Spring Cloud Sleuth
- 11.2 基本術語
- 11.3 案例講解
- 11.3.1 構建Zipkin Server
- 11.3.2 構建User Service
- 11.3.3 構建Gateway Service
- 11.3.4 項目演示
- 11.4 在鏈路數據中添加自定義數據
- 11.5 使用RabbitMQ 傳輸鏈路數據
- 11.6 在MySQL數據庫中存儲鏈路數據
- 11.6.1 使用Http傳輸鏈路數據,並存儲在MySQL數據庫
- 11.6.2 使用RabbitMQ傳輸鏈路數據,並存儲在MySQL數據庫
- 11.7 在ElasticSearch中存儲鏈路數據
- 11.8 用Kibana展示鏈路數據
第12章 微服務監控Spring Boot Admin
- 12.1 使用Spring Boot Admin監控Spring Cloud微服務
- 12.1.1 構建Admin Server
- 12.1.2 構建Admin Client
- 12.2 在Spring Boot Admin中集成Turbine
- 12.2.1 改造Eureka Client
- 12.2.2 另行構建Eureka Client
- 12.2.3 構建Turbine工程
- 12.2.4 在Admin Server中集成Turbine
- 12.3 在Spring Boot Admin中添加安全登錄界面
第13章 Spring Boot Security詳解
- 13.1 Spring Security簡介
- 13.1.1 什么是Spring Security
- 13.1.2 為什么選擇Spring Security
- 13.1.3 Spring Security提供的安全模塊
- 13.2 Spring Boot Security與Spring Security的關系
- 13.3 Spring Boot Security案例詳解
- 13.3.1 構建Spring Boot Security工程
- 13.3.2 配置Spring Security
- 13.3.3 編寫相關界面
- 13.3.4 Spring Security方法級別上的保護
- 13.3.5 從數據庫中讀取用戶的認證信息
- 13.4 總結
第14章 使用Spring Cloud OAuth2保護微服務系統
- 14.1 什么是OAuth2
- 14.2 如何使用Spring OAuth2
- 14.2.1 OAuth2 Provider
- 14.2.2 OAuth2 Client
- 14.3 案例分析
- 14.3.1 編寫Eureka Server
- 14.3.2 編寫Uaa授權服務
- 14.3.3 編寫service-hi資源服務
- 14.4 總結
第15章 使用Spring Security OAuth2和JWT保護微服務系統
- 15.1 JWT簡介
- 15.1.1 什么是JWT
- 15.1.2 JWT的結構
- 15.1.3 JWT的應用場景
- 15.1.4 如何使用JWT
- 15.2 案例分析
- 15.2.1 案例架構設計
- 15.2.2 編寫主Maven工程
- 15.2.3 編寫Eureka Server
- 15.2.4 編寫Uaa授權服務
- 15.2.5 編寫user-service資源服務
- 15.3 總結
第16章 使用Spring Cloud構建微服務綜合案例
- 16.1 案例介紹
- 16.1.1 工程結構
- 16.1.2 使用的技術棧
- 16.1.3 工程架構
- 16.1.4 功能展示
- 16.2 案例詳解
- 16.2.1 准備工作
- 16.2.2 構建主Maven工程
- 16.2.3 構建eureka-server工程
- 16.2.4 構建config-server工程
- 16.2.5 構建zipkin-service工程
- 16.2.6 構建monitoring-service工程
- 16.2.7 構建uaa-service工程
- 16.2.8 構建gateway-service工程
- 16.2.9 構建admin-service工程
- 16.2.10 構建user-service工程
- 16.2.11 構建blog-service工程
- 16.2.12 構建log-service工程
- 16.3 啟動源碼工程
- 16.4 項目演示
- 16.5 總結
掃碼關注公眾號有驚喜
(轉載本站文章請注明作者和出處 方志朋的博客)