
## 一、筆者的初衷:Spring Cloud實戰項目融合知識點的講解
筆者在決定寫這部文檔的時候,規劃了很久,也很猶豫。Spring Cloud組件更迭都很頻繁,更不用說版本的更迭。我給自己提了兩個要求:
* 要求一:文檔內涵蓋Spring Cloud 組件從第一代以netflix為核心,到第二代alibaba及其它第三方進行組件替換的核心過程。也就是說**既講老組件,又講新組件**。
* 要求二:在這個文檔完成后,**既要覆蓋知識點,又要形成一個實戰的項目**。
不得不說這真的很難,但經過認真的規劃,長時間的準備,章節順序反復的修正,一版又一版的代碼順序調整,**我終于做到了!**
* 針對要求一:我將本文檔的代碼形成了兩大核心分支及若干其他分支。參見:[《模塊與代碼分支說明》](http://www.hmoore.net/hanxt/springcloud/1718535),
* 針對要求二:我在dongbb項目(單體應用)的基礎上,將[dongbb項目](http://www.hmoore.net/hanxt/vue-spring/content)通過服務拆分構建成dongbb-cloud項目。核心的權限管理模塊都是從dongbb遷移過來的,并在此基礎上進行服務拆分,及分布式微服務架構的構建。提升了項目的擴展性和面對高并發、高可用場景的能力!
## 二、規劃大綱
本文檔的核心內容是講一步一步的記錄:基于Spring cloud架構的微服務項目dongbb-cloud的實現過程。所以,**本文檔絕不是我開發好一個微服務系統(含核心權限管理)教你如何使用及如何搭建。** 而是我去教你:我是一步一步如何將一個單體應用的系統,拆分為微服務,在此的基礎上講解知識點,并實現服務注冊發現、配置集中管理、網關與安全認證等等內容。我記錄的**是系統開發過程,更是知識點的講解**。

以上的腦圖展現了我們文檔的內容規劃大綱,也展現了Spring Cloud社區的核心組件目前的狀態。(未來還會補充)
* 綠色圖標:文檔中會做詳細的講解,基本上是Spring Cloud第二代新組件及一些核心組件。
* 黃色圖標:Spring Cloud 第一代組件,我們也還是會詳細的去講,因為很多的公司還在用,或者其很有學習的價值。但這部分內容隨著時間的推移,不遠的將來會退出社區核心生態圈!
* 紅色圖標:我們就不再去講了,基本是一些被淘汰的、沒有價值的組件或者新版本研發擱淺狀態的一些組件。
* 綠色部分:社區新推出的新版或新特性,但是在國內比較少有應用,或者因為太新不是很成熟,我們暫且不講!根據應用形式逐步補充!
## 三、所以
本文檔對應的dongbb-cloud項目是在[dongbb前后端分離RBAC權限管理系統](http://www.hmoore.net/hanxt/vue-spring/content)基礎上升級的Spring Cloud微服務版本。到目前為止,筆者已經寫過這樣的幾本書(建議按照箭頭的方向進行學習,如果基礎好可以跳過基礎部分,直接學習后面的內容):
* 前端基礎Vue : [vue深入淺出系列](http://www.hmoore.net/hanxt/vuejs2/content)
* 后端基礎Spring Boot:[手摸手教你學Spring Boot2.0](http://www.hmoore.net/hanxt/springboot2/content)
* 權限管理:[Spring Security-JWT-OAuth2一本通](http://www.hmoore.net/hanxt/springsecurity/content)
* 前后端分離應用:[【實戰開發】DongBB-前后端分離RBAC權限管理系統](http://www.hmoore.net/hanxt/vue-spring/content)

藍色部分集中于知識點的講解,綠色部分更著重于實戰與架構。
## 字母哥鐵粉
字母哥鐵粉請加這個群:[字母哥鐵粉超級福利群](http://www.zimug.com/other/%e5%ad%97%e6%af%8d%e5%93%a5%e8%b6%85%e7%ba%a7vip%e7%a6%8f%e5%88%a9%e7%be%a4-%e5%8a%a0%e5%85%a5%e6%96%b9%e6%b3%95/.html)
## 技術交流
* 加QQ群:300139299。
* 我可能一天只看一次加“好友消息”,所以加群之后不要著急,加群的時候注明來源,否則不會通過!
- 文檔內容簡介(一定要看)
- 筆者的其他作品推薦
- vue深入淺出系列
- 手摸手教你學SpringBoot2.0
- Spring Security-JWT-OAuth2一本通
- 實戰前后端分離RBAC權限管理系統
- 模塊與代碼分支說明
- dongbb-cloud項目核心架構
- 微服務架構進化論
- SpringBoot與Cloud選型兼容
- Spring Cloud組件的選型
- 單體應用拆分微服務
- 單體應用與微服務對比
- 微服務設計拆分原則
- 新建父工程及子模塊框架
- 通用微服務初始化模塊構建
- 持久層模塊單獨拆分
- 拆分rbac權限管理微服務
- Hello-microservice
- 構建eureka服務注冊中心
- 向服務注冊中心注冊服務
- 第一個微服務調用
- 遠程服務調用
- HttpClient遠程服務調用
- RestTemplate遠程服務調用
- RestTemplate多實例負載均衡
- Ribbon調用流程源碼解析
- Ribbon負載均衡策略源碼解析
- Ribbon重試機制與饑餓加載
- Ribbon自定義負載均衡策略
- Feign與OpenFeign
- Feign設計原理源碼解析
- Feign請求壓縮與超時等配置
- 服務注冊與發現
- 白話服務注冊與發現
- DiscoveryClient服務發現
- Eureka集群環境構建(linux)
- Eureka集群多網卡環境ip設置
- Eureka集群服務注冊與安全認證
- Eureka自我保護與健康檢查
- 主流服務注冊中心對比(含nacos)
- zookeeper概念及功能簡介
- zookeeper-linux集群安裝
- zookeeper服務注冊與發現
- consul概念及功能介紹
- consul-linux集群安裝
- consul服務注冊與發現
- 通用-auatator導致401問題
- 分布式配置中心-apollo
- 服務配置中心概念及使用場景
- apollo概念功能簡介
- apollo架構詳解
- apollo分布式部署之Portal
- apollo分布式部署之環境區分
- apollo項目權限管理實戰
- apollo-java客戶端基礎
- apollo與SpringCloud服務集成
- apollo實例配置熱更新
- apollo命名空間與集群
- apollo灰度發布(日志熱更新為例)
- SpringCloudConfig配置中心
- config-git配置文件倉庫
- config配置中心搭建與測試
- config客戶端基礎
- config配置安全認證
- config客戶端配置刷新
- config配置中心高可用
- BUS消息總線
- bus消息總線簡介
- docker安裝rabbitMQ
- 基于rabbitMQ的消息總線
- bus實現批量配置刷新
- alibaba-nacos
- nacos介紹與單機部署
- nacos集群部署方式(linux)
- nacos服務注冊與發現
- nacos服務注冊中心詳解
- nacos客戶端配置加載
- nacos客戶端配置刷新
- nacos服務配置隔離與共享
- nacos配置Beta發布
- 服務熔斷降級hystrix
- 服務降級&熔斷&限流
- Hystrix集成并實現服務熔斷
- Jemter模擬觸發服務熔斷
- Hystrix服務降級fallback
- Hystrix結合Feign服務降級
- 遠程服務調用異常傳遞的問題
- Hystrix-Feign異常攔截與處理
- Hystrix-DashBoard單服務監控
- Hystrix-dashboard集群監控
- 分布式系統流量衛兵sentinel
- sentinel簡介與安裝
- 客戶端集成與實時監控
- 實戰流控規則-QPS限流
- 實戰流控規則-線程數限流
- 實戰流控規則-關聯限流
- 實戰流控規則-鏈路限流
- 實戰流控效果-WarmUp
- 實戰流控效果-勻速排隊
- BlockException處理
- 實戰熔斷降級-RT
- 實戰熔斷降級-異常數與比例
- DegradeException處理
- 注解與異常的歸納總結
- Feign降級及異常傳遞攔截
- 動態規則nacos集中存儲
- 熱點參數限流
- 系統自適應限流
- 微服務網關-GateWay
- 還有必要學習Zuul么?
- 簡介與非阻塞異步IO模型
- GateWay概念與流程
- 新建一個GateWay項目
- 通用Predicate的使用
- 自定義PredicateFactory
- 編碼方式構建靜態路由
- Filter過濾器介紹與使用
- 自定義過濾器Filter
- 網關請求轉發負載均衡
- 結合nacos實現動態路由配置
- 整合Sentinel實現資源限流
- 跨域訪問配置
- 網關層面全局異常處理
- 微服務網關安全認證-JWT篇
- Gateway-JWT認證鑒權流程
- 登錄認證JWT令牌頒發
- 全局過濾器實現JWT鑒權
- 微服務自身內部的權限管理
- 微服務安全認證-OAuth篇(撰寫中)