SpringCloud開發實戰
小編 2022-09-27 18:09:56

SpringCloud是Spring生態圈之中一項重要的開發技術套件,其所有的設計全部圍繞著RESTful數據傳輸,并且基于RESTful設計實現了良好的結構化管理。在SpringCloud長期發展過程中形成了兩套不同的組合套件,分別是SpringCloudNetflix以及SpringCloudAlibaba,而隨著Netflix組件的逐漸閉源化管理,本套課程將以SpringCloudAlibaba套件為主進行全面且豐富的知識體系講解,同時考慮到了實際應用以及就業環境的需要,又對SpringCloudNetflix中的核心組件進行了詳細分析,在本次課程中所涉及到的知識內容包括如下幾項:
1、 完整的分析了業務中心技術的發展歷史,從業務中心搭建的意義到RPC技術,再到WebService技術的發展歷程;
2、 基于Gradle構建工具實現SpringCloud項目開發;
3、 基于SpringBoot實現了RESTful基礎架構的搭建,并詳細的講解了Swagger文檔工具的作用與實例應用;
4、 基于最新的Nacos 2.x講解了Nacos注冊中心的搭建與使用,并基于Nginx與HAProxy實現了集群服務管理以及gRPC注冊代理支持;
5、 詳細解釋了Nacos中基于AP與CP模式的使用特點,并基于集群環境實現了模式的動態切換處理;
6、 為便于讀者理解微服務的注冊管理,使用了NacosClient講解了Nacos服務實例管理以及配置項的管理操作機制;
7、 講解了Netflix套件中提供的Ribbon服務組件,并通過其實現了REST服務的負載均衡調用處理,同時通過Ribbon源碼詳細解釋了Ribbon的工作原理;
8、 講解了Feign組件的使用,并基于Feign組件實現了遠程接口的映射處理,同時對Feign源代碼進行分析,總結了其工作流程;
9、 講解了Netflix套件中提供的Hystrix組件,并結合了Actuator實現了微服務的性能監控管理;
10、 微服務中為了實現合理的流量保護,提供了Sentinel限流工具,本課程完整的講解了Sentinel的限流實現、原理分析以及配置規則持久化處理操作;
11、 基于SpringCloudGateway實現了微服務路由管理,并詳細的分析了路由謂詞工廠、過濾器以及全局過濾器的使用;
12、 完整的分析了SpringCloudGateway的運行流程,并通過其源代碼解釋了工作原理;
13、 結合Prometheus與Grafana實現了SpringCloudGateway服務監控;
14、 通過實例講解了SpringCloudGateway所提供的動態路由規則配置;
15、 基于JWT實現了微服務完整的認證與授權管理機制;
16、 結合了SpringBootAdmin實現了微服務的監控與管理機制;
17、 實戰分析了Apache RocketMQ消息組件的使用,并通過源碼詳細解釋了其完整的工作原理;
18、 結合RocketMQ提供的事務消息處理機制并結合SETA實現了分布式事務管理與配置;
19、 基于RocketMQ講解了SpringCloudStream工作機制,并且通過其操作實現了SpringCloudConfig配置更新處理;
20、 講解了SpringCloud微服務監控機制,并通過實戰的形式講解了Zipkin、SkyWalking、Sentry組件的使用。
05_SpringCloud開發實戰
https://www.aliyundrive.com/s/PZ8aNJfjWMj
點擊鏈接保存,或者復制本段內容,打開「阿里云盤」APP ,無需下載極速在線查看,視頻原畫倍速播放。

0101_【理解】業務中心 業務中心是項目設計開發的靈魂,從最初的MVC設計模式一直到現在的微服務設計架構,全部都是圍繞著業務中心所展開的,在本課程中將會為讀者詳細的闡述業務中心的基本作用。
0102_【理解】RPC技術 良好的項目架構中業務中心是一個獨立的運行單元,由于符合C/S網絡架構,所以就需要有一個技術標準來實現調用,本課程為讀者講解了RPC技術的相關概念。
0103_【理解】EJB技術 EJB是由SUN推出的適合于Java搭建業務中心的核心技術,同時也是現代Java框架設計與開發理論的奠基者,本課程為讀者分析了EJB技術的主要組成結構,并且分析了RMI與EJB技術的關聯,以及EJB技術實現的缺陷。
0104_【理解】WebService 不同平臺的整合需要公共的實現標準,XML的出現提供了通訊標準的統一,隨之提出了WebService技術,本課程為讀者講解了WebService技術的主要特點以及缺陷。
0105_【掌握】RESTful架構 RESTful是一種更加輕量級的數據傳輸結構,可以直接基于HTTP協議完成分布式開發,利用RESTful架構實現的業務中心可以提供高效與簡潔的運行環境,本課程為讀者分析了RESTful架構的產生背景以及實現說明。
0106_【掌握】SpringCloudNetflix技術架構 SpringCloud早期主要基于Netflix組件實現了REST微服務的管理,在本課程中為讀者講解了SpringCloudNetflix架構的組成架構,并分析了各個主要組件的作用。
0107_【掌握】SpringCloudAlibaba技術架構 SpringCloudAlibaba是現在國內最為流行的SpringCloud解決方案,在本課程中為讀者宏觀的講解了SpringCloudAlibaba的技術架構,并分析了其與Netflix技術的區別。
0201_【掌握】RESTful實現簡介 RESTful是微服務實現的理論基礎,在本次的課程中將為讀者介紹本次要實現的服務端的功能,以及為完成本項目中所需要使用到的實現技術。
0202_【掌握】構建SpringCloud項目 SpringCloud的項目搭建將直接通過Gradle工具完成,在本課程中利用實際的操作演示,直接基于IDEA開發工具在基礎的SpringBoot整合之上搭建了SpringCloud項目。
0203_【掌握】REST公共模塊 SpringCloud項目屬于RPC應用,這樣就需要定義服務提供者與消費者之間所可能使用到的公共組件,在本次課程中為讀者講解了數據傳輸類的作用,并且基于Spring所提供的BeanUtils類進行了集合數據拷貝的功能擴展。
0204_【掌握】微服務提供者 微服務的提供者需要實現公共的業務接口,同時也需要對外隱藏接口的實現細節,在本次的課程中由于是圍繞數據庫展開的業務操作,所以基于MyBatisPlus組件實現了數據庫的CRUD處理開發操作。
0205_【掌握】Postman接口測試 微服務創建完成后為了保證其對應的REST接口可以提供正確的服務,往往會進行接口的訪問測試以及壓力測試,而這些功能就可以通過Postman工具來實現,本課程為讀者講解了Postman的下載、安裝以及基本使用。
0206_【掌握】微服務消費者 SpringCloud微服務需要通過SpringBoot來進行調用,本課程將創建一個消費端應用,并通過RestTemplate類所提供的方法實現遠程服務調用。
0207_【掌握】HTTP請求攔截 在客戶端使用Ribbon進行服務調用時,可以對服務的請求進行攔截處理,在本課程中為讀者講解了ClientHttpRequestInterceptor攔截接口的使用,并且通過實例分析了Ribbon攔截器的具體應用。
0208_【理解】Swagger接口描述 為了便于使用者進行微服務接口的調用,那么必然需要有詳細且完善的接口說明文檔,為了便于文檔的開發與維護,Spring引入了Swagger項目,在本課程中為讀者講解了接口文檔的作用,以及Swagger與SpringBoot的快速整合應用。
0209_【理解】REST接口描述 Swagger給出的接口描述文檔可以由用戶進行更加詳細的設置,在本課程中將基于Swagger配置以Swagger注解在代碼中實現接口的完整描述。
0210_【理解】Swagger安全配置 Swagger文檔最終需要暴露給遠程客戶端,而為了保護文檔的安全應該進行有效的安全認證管理,本課程結合SpringSecurity開發框架采用靜態認證信息的方式實現了Swagger的安全保護。
0301_【掌握】注冊中心簡介 微服務的設計需要引入大量的服務節點,而為了便于這些節點的管理與維護就需要采用注冊中心,本課程中為讀者講解了微服務模型管理中的問題以及注冊中心的作用。
0302_【掌握】Nacos技術架構 Nacos是阿里巴巴推出的重要服務組件,在本課程中為讀者講解了Nacos的服務架構整體組成,同時分析了Nacos中實現CP機制的Distro以及RAFT算法作用。
0303_【掌握】獲取Nacos應用組件 Nacos基于Maven開發,同時又是一個開源項目,這樣就可以直接依據Nacos源代碼進行服務編譯,本課程通過實例演示了Nacos組件編譯以及Windows下的組件使用。
0304_【掌握】Linux部署Nacos服務 為了保證注冊中心的穩定運行,一般會將其部署在Linux系統之中,在本課程中將基于虛擬機實現Linux系統的運行以及Nacos服務的部署。
0305_【掌握】Nacos整合MySQL存儲 Nacos依靠關系型數據庫實現配置數據的存儲與同步,在本課程中為讀者講解了Nacos與MySQL數據庫的存儲。
0306_【掌握】Nacos領域模型 Nacos為了便于注冊與配置數據的管理,提出了完整的領域模型,在本課程中將為讀者講解Nacos領域模型中的各個組成,并分析了其設計的目的。
0307_【理解】配置數據管理 Nacos支持有配置數據的管理支持,可以利用Nacos所給出的原生API實現配置數據的發布、修改、刪除以及監聽的相關操作,在本課程中為讀者講解了如何基于Nacos客戶端工具包實現Nacos配置項的管理。
0308_【理解】實例數據管理 Nacos提供了動態實例管理支持,這樣可以及時的獲取到每一個實例節點的狀態,在本課程中將模擬集群節點的應用環境,實現多個節點實例的配置,并且通過具體的操作講解Nacos節點配置監聽的實現。
0309_【掌握】REST訪問配置 為了便于更多的平臺與Nacos整合,在Nacos中提供了REST接口,可以直接基于HTTP協議的形式實現Nacos數據操作,本課程結合了Nacos提供的官方文檔手冊,并通過具體的實例演示了常用接口的使用。
0310_【掌握】微服務注冊 SpringCloud中的微服務需要向Nacos中進行統一的注冊管理,本課程通過具體的操作修改了部門微服務并實現了Nacos服務的注冊操作。
0311_【掌握】配置Nacos注冊信息 Nacos為了規范化服務管理,提供了完整的領域模型,所以微服務的注冊與發布也需要進行歸類管理,本課程將對部門微服務進一步改造,實現注冊數據的有效管理
0312_【掌握】Nacos安全注冊 Nacos是整個微服務的核心組件,里面保存有重要的服務實例數據,所以必須保證安全的微服務注冊,本課程講解了Nacos安全配置啟用以及微服務的安全注冊。
0313_【理解】Nacos自動配置 Nacos與微服務的整合依賴于自動裝配的實現機制,本課程通過nacos-discover依賴庫介紹了與之相關的自動裝配類的功能。
0314_【理解】NacosConfigBootstrapConfiguration Nacos客戶端可以通過ConfigService接口實現Nacos領域模型的操作,而此接口對象的實例創建是由spring-cloud-starter-alibaba-nacos-config依賴所提供的自動配置類實現的,本課程為讀者分析了NacosConfigBootstrapConfiguration配置類的源代碼實現。
0315_【理解】@EnableDiscoveryClient注解 服務與注冊中心的整合需要通過@EnableDiscoveryClient注解完成,在本課程中為讀者分析了該注解的組成結構,并且根據其組成結構分析了導入處理類的實現機制。
0316_【理解】NacosServiceRegistryAutoConfiguration SpringCloud為了便于服務的注冊管理,提供了統一的處理標準,在本課程中將通過Nacos提供的NacosServiceRegistryAutoConfiguration類的源代碼分析服務注冊流程。
0317_【理解】NacosDiscoveryAutoConfiguration Nacos服務除了注冊支持之外還包含有發現處理,所以在SpringCloud項目時就提供了NacosDiscoveryAutoConfiguration發現自動配置類,本課程通過源代碼為讀者分析了NacosDiscoveryAutoConfiguration類的實現結構,并講解了NacosServiceDiscovery工具類中所提供的服務發現方法的作用。
0401_【掌握】微服務集群簡介 為了提高服務的處理性能,生產環境中會大量采用集群設計,在本課程中為讀者分析了微服務集群設計的意義,同時講解了本次要搭建的服務集群架構。
0402_【掌握】Nacos服務集群 Nacos內部直接提供了服務集群的配置支持,在本課程中將通過虛擬機創建三個Nacos服務節點,并通過Nacos配置實現了三個節點的集群關聯。
0403_【掌握】Nacos集群代理 Nacos提供的集群節點,而所有的節點需要一個統一的地址才可以對外提供集群服務,在本課程中將通過Nginx實現Nacos集群代理配置。
0404_【掌握】gRPC注冊服務代理 為便于服務注冊與消費發現處理,可以對gRPC的代理進行統一管理,在本課程中為讀者講解了如何基于HAProxy代理組件實現Nacos節點訪問配置。
0405_【掌握】微服務集群注冊 注冊中心集群處理后就可以保存更多的微服務注冊信息,本課程將基于已有的部門微服務進行改造,并實現了微服務集群的注冊。
0406_【掌握】客戶端服務訪問 Nacos除了實現了微服務數據的管理之外,也提供有客戶端的服務發現管理支持,這樣就可以通過服務的信息配置找到相關的服務節點進行調用,在本課程之中將實現消費端的服務注冊以及服務調用處理。
0407_【掌握】CP與AP模式切換 Nacos集群提供了數據一致性的同步管理,在本課程中為讀者分析了Nacos對于CAP原則的實現,同時分析了CP與AP實現算法,并對與之相關的源代碼進行了分析。
0408_【掌握】Ribbon服務調用 為了進一步解決消費端的服務調用問題,在實際的項目開發中,可以基于Ribbon組件簡化客戶端的調用難度,在本課程中為讀者介紹了Ribbon的主要作用,并且通過具體的操作實現了Ribbon組件的快速應用。
0409_【理解】ServerList實例列表 消費端通過Ribbon實現的微服務調用中需要及時進行Nacos數據更新,所以提供了ServerList內容保存接口,本課程為讀者分析了ServerList接口的主要使用,同時基于NacosServerList類的源代碼進行了Nacos服務數據獲取分析。
0410_【理解】ILoadBalancer負載均衡器 在進行微服務集群構建后,通過Ribbon可以獲取到全部的服務實例數據,那么此時就需要通過一定的算法進行調度,這樣就可以避免某一個節點服務量過大的問題出現,在本課程中為讀者分析了Ribbon負載均衡器的接口標準,同時講解了內部負載均衡器的實現與配置。
0411_【理解】ServerListUpdater服務列表更新 為了進行有效的微服務實例數據維護,在Ribbon提供了服務列表更新接口,在本課程中將為讀者分析ServerListUpdater接口的使用,以及服務更新的操作監聽處理。
0412_【理解】ServerListFilter實例過濾器 服務列表數據可以進行有效過濾處理,這樣可以基于一些特定的條件實現實例的優先調用,本課程為讀者實例講解了ServerListFilter接口的使用,并通過源碼分析了可用區選用閾值以及可用區切換原理。
0413_【掌握】IPing存活檢查 為了便于節點存活狀態的檢查,在Ribbon中提供了IPing接口,本課程為讀者分析了IPing接口的主要組成結構,同時通過源代碼方式分析了Ping操作的偽實現意義。
0414_【掌握】IRule負載均衡算法 Ribbon可以幫助用戶隱藏注冊中心的實例發現處理,同時又提供有一系列的負載均衡算法,幫助用戶更合理的實現微服務集群調用,在本課程中將為讀者講解Ribbon所提供的負載均衡策略以及策略的使用配置。
0415_【掌握】Ribbon負載均衡策略 Ribbon通過其自身完善的負載均衡策略可以實現高效的微服務調用管理,在本課程中為讀者講解了完整的Ribbon負載均衡策略配置實現。
0416_【理解】Ribbon執行分析 Ribbon是基于Starter組件的形式自動裝配到系統之中的,在本課程中將為讀者分析Ribbon配置加載,并結合ILoadBalancer、ServerList、IRule等及核心處理邏輯分析了Ribbon源代碼中的啟動流程。
0417_【理解】Nacos權重優先調用 在基于Nacos服務實例注冊時,提供了權重的配置支持,可以基于權重實現不同實例優先級的調用,在本課程中為讀者講解了微服務權重的作用以及具體實現。
0418_【理解】Nacos集群優先調度 在Nacos領域模型中可以基于集群實現不同機房服務節點的管理,這樣也可以基于集群名稱實現消費端優先調用,本課程為讀者分析了集群調用的意義,并通過代碼進行了該負載均衡算法的實現。
0419_【理解】元數據優先調度 微服務的消費端可能會有多種,而為了便于微服務的版本維護,可以基于元數據的方式進行調度配置,在本課程中為讀者講解了版本優先調度的意義,并通過自定義的負載均衡算法實現了同一版本微服務的優先調度實現。
0420_【掌握】Feign接口轉換 為了便于微服務的調用管理,在SpringCloud套件中提供了Feign組件,利用此組件可以實現遠程REST接口與Java接口的映射訪問,本課程通過一個完整的實例為讀者講解了Feign組件的基本使用以及服務調用操作。
0421_【掌握】Feign轉換日志 Feign在進行轉換時實際上依然采用了HTTP請求與響應處理機制,而為了便于使用者觀察,在Feign組件提供了日志的支持,本課程為讀者講解了如何配置Feign組件的轉換類,并分析了日志的組成結構。
0422_【掌握】Feign連接池 Feign在進行服務通訊時,基于HTTP協議完成,而為了得到最佳的處理性能,需要在項目中進行服務的配置,本課程為讀者講解了Feign的相關配置以及實現意義。
0423_【理解】數據壓縮傳輸 為了可以高效的實現數據的傳輸處理,在Feign組件中提供了數據壓縮的處理支持,本課程為讀者講解了如何在Feign組件中實現HTTP數據壓縮傳輸。
0424_【理解】Feign工作原理 Feign組件為了便于接口映射管理,提供了一系列的處理步驟,本課程為讀者講解了Feign組件的工作原理,并且通過源代碼分析了原生feign組件的構建,并且淺析了在SpringCloud組件中Feign組件的構建管理。
0425_【理解】FeignAutoConfiguration 本程序通過Starter組件的執行流程分析了FeignAutoConfiguration配置類的組成,并依據組成分析了Feign中的動態代理生成機制以及HTTP客戶端的使用選擇。
0426_【理解】FeignRibbonClientAutoConfiguration Feign工作在消費端,所以在設計時充分的利用了Ribbon處理機制實現服務端負載均衡策略,本課程為讀者分析了FeignRibbonClientAutoConfiguration配置類的源代碼結構,以及與Ribbon標準之間的關聯。
0427_【了解】FeignLoadBalancerAutoConfiguration Feign組件內置了負載均衡器,同時在該負載均衡器中又需要提供穩定的服務調用,在本課程中為讀者分析了FeignLoadBalancerAutoConfiguration自動裝配類,同時分析了BlockingLoadBalancerClient阻塞負載均衡器的作用。
0428_【理解】FeignClientsRegistrar 在使用Feign組件時需要通過“@EnableFeignClients”和“@FeignClient”兩個注解進行標記,而在Feign內部會自動進行掃描包的配置與Bean注冊,在本課程中為讀者分析了FeignClientsRegistrar類源代碼的實現。
0429_【了解】Hystrix熔斷機制 Hystrix是由Netflix提供的微服務熔斷處理機制,在本課程中為讀者分析了微服務調用鏈出現的雪崩效應,同時為讀者講解了Hystrix基本概念。
0430_【了解】Hystrix基本使用 為了便于SpringCloud的整合處理,專門提供了Hystrix服務整合組件,在本課程中通過具體的實例代碼代碼講解了Hystrix中的失敗處理支持。
0431_【了解】Feign失敗回退 在進行服務調用時,都會通過Feign進行遠程接口映射,所以在Feign中對Hystrix也有所支持,可以直接通過失敗回退工廠類進行服務降級處理,本課程通過實例講解了如何基于FeignClient實現失敗回退處理。
0432_【了解】HystrixDashboard Hystrix除了提供了熔斷機制外,還提供有Hystrix監控面板支持,在本課程中講解了Hystrix微服務的開啟以及服務面板應用的創建。
0433_【了解】Turbine聚合監控 為了進行微服務的監控統一管理,在SpringCloud中提供了Turbine組件,本課程為讀者講解了統一監控的意義,并講解了Turbine的配置以及服務監控數據獲取。
0434_【了解】Hystrix工作流程 Hystrix所有的操作都被封裝在了HystrixCommand對象實例之中,如果要想清楚Hystri處理遠離,就需要通過HystrixCommand類的源代碼進行觀察,在本課程中通過HystrixCommand類的繼承結構以及核心方法分析了Hystrix的工作流程。
0435_【了解】HystrixAutoConfiguration Hystrix提供了自動裝配處理,而在Hystrix整合時需要進行HystrixCommand切面配置以及度量配置,本課程通過HystrixAutoConfiguration類源代碼以及對應的關聯結構,進行了HystrixCommand流程分析。
0436_【了解】HystrixCircuitBreakerAutoConfiguration Hystrix中的斷路器的啟用是需要結合特定的閾值配置處理,而所有相關的屬性配置是由HystrixCircuitBreakerAutoConfiguration類實現的,本課程為讀者分析了斷路器的自動配置類的作用。
0437_【了解】HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration實現了與Hystrix斷路器處理有關的Bean注冊操作,本課程通過源代碼為讀者分析了此配置器的主要作用,同時分析了Hystrix中線程池與斷路器之間的配置關聯。
0438_【了解】HystrixCircuitBreaker 斷路器的最終實現操作是由HystrixCircuitBreaker接口定義的,在本課程中通過斷路器的源代碼為讀者分析了斷路器的具體實現邏輯。
0439_【了解】AbstractCommand 為了保證資源調度穩定性,在Hystrix中提供了資源隔離機制,本課程基于此概念為讀者分析了AbstractCommand類的核心源代碼。
0501_【理解】Sentinel簡介 SpringCloudAlibaba提供了良好的服務流控管理支持,在本課程中為讀者講解了訪問流控的作用,并介紹了Sentinel組件的功能。
0502_【掌握】Sentinel控制臺 Sentinel是一個開源組件可以直接通過GITHUB進行獲取,本課程為讀者講解了Sentinel組件的下載、組件啟動以及控制臺使用。
0503_【掌握】Sentinel資源資源監控 項目中的微服務如果需要通過Sentinel進行限流保護,則需要引入相關依賴并進行配置實現,在本課程中通過具體的操作實例,為讀者講解了微服務的改造配置,并基于AOP切面實現了Sentinel流量數據的獲取以及限流保護控制。
0504_【理解】實時監控數據 Sentinel為了其它平臺的整合處理,提供了若干個REST數據接口,開發者可以直接通過該接口獲取到Sentinel中流量數據、日志數據,本課程為讀者介紹了這些數據接口的名稱以及接口作用。
0505_【掌握】Sentinel限流保護 Sentinel進行微服務資源保護時,提供了多種限流規則,在本課程中為讀者分析了基礎限流規則的使用,并通過具體的操作演示了服務限流以及內置Fallback執行。
0506_【理解】自定義限流錯誤頁 客戶端請求一旦觸發了Sentinel資源保護規則后都會進行錯誤信息的顯示,開發者可以根據需要自定義錯誤信息,在本課程中將基于application.yml配置實現統一攔截錯誤的顯示以及攔截路徑的配置。
0507_【理解】Fallback失敗回退 Sentinel在與SpringCloud整合時提供了默認的Fallback處理支持,但是考慮到定制化的開發要求,開發者也可以通過@SentinelResource注解實現自定義Fallback操作,本課程通過具體的實例講解了自定義資源Fallback開發實現。
0508_【理解】BlockHandler 為了便于失敗回退的統一管理,在Sentinel中提供了BlockHandler支持,本課程為讀者講解了BlockHandler操作的實現結構,并實現了與控制層方法的關聯配置。
0509_【理解】熱點規則 熱點限流是一種Sentinel獨有的限流機制,可以直接對接口方法中指定參數的訪問進行限流處理,本課程為讀者實例講解了熱點限流操作的實現以及相關配置類的定義。
0510_【掌握】授權規則 黑白名單是進行資源保護的重要組成形式,為此在Sentinel中提供了與之相關的授權規則,本課程為讀者講解了授權規則的設置并分析了RequestOriginParser接口的作用。
0511_【掌握】BlockExceptionHandler Sentinel針對于所有可能出現的限流處理都定義了專屬的異常類型,并且提供了統一的BlockExceptionHandler處理接口,本課程通過實例講解了異常統一處理的實現,并基于異常產生熔斷機制驗證了此規則的使用。
0512_【掌握】集群流控 集群是微服務保持運行高效與穩定的重要架構,在Sentinel設計中也充分的考慮到了集群應用環境,本課程為讀者講解了集群限流的實現機制,并通過具體的TokenServer搭建與配置實例分析了微服務集群管理的實現。
0513_【理解】Sentinel實現分析 Sentinel采用了注解與切面的形式實現了訪問資源的流控統計,而在Sentinel中為了實現所有組件的方便接入提供了Entry類型,本課程為讀者分析了Entry類型的主要作用,并基于Sentinel提供的Demo代碼講解了Entry與限流操作之間的關聯。
0514_【理解】ResourceWrapper Sentinel是根據資源實現的保護規則配置,在本課程中為讀者分析了Sentinel資源名稱的獲取以及Entry與ResourceWrapper之間的關聯操作。
0515_【理解】ProcessorSlot Sentinel基于插槽與插槽鏈的結構實現了數據統計以及限流處理,在本課程中將通過SlorChainBuilder分析Sentinel的處理流程。
0516_【理解】Node Node是Sentinel實現數據統計的標準,并且會與Contexnt、Entry整合在一起應用,本課程為讀者分析了Node接口的繼承結構以及數據統計子類的使用。
0517_【理解】Context Context維護了整個調用鏈的元數據內容,是Entry創建與使用過程中必不可少的一個結構概念,本課程為讀者講解了Context概念,并分析了其對應的核心源代碼。
0518_【理解】Sentinel規則持久化 Sentinel為了便于資源的維護提供了資源持久化的處理方案,在本課程中為讀者分析了默認Sentinel內存配置所帶來的問題,并介紹了Sentinel中的數據持久化實現方案。
0519_【掌握】流控規則持久化 流控規則是Sentinel最核心也是最為常用的一種保護機制,而為了服務限流管理的便利,需要對其進行持久化配置,本課程將基于一個獨立的Nacos服務實現流控規則的配置以及讀取處理。
0520_【掌握】限流規則解析 Sentinel支持有多種限流規則配置,而如果要想獲取全部限流規則的JSON配置,則就必須進行源代碼的解析處理,本課程通過源代碼的組成結構,為讀者分析了全部限流規則持久化配置項的定義結構。
0521_【理解】SentinelDashboard改造 Sentinel源代碼中提供了持久化限流規則可視化的配置支持,在本課程中會通過實例的形式為讀者演示開啟持久化流控配置的實現。
0601_【掌握】SpringCloudGateway簡介 為了更好的進行微服務的管理,同時便于用戶的訪問,在SpringCloud中提供了網關技術,本課程為讀者講解了SpringCloudGateway在微服務管理中的主要作用,并且分析了Zull與SpringCloudGateway的區別。
0602_【掌握】SpringCloudGateway編程起步 SpringCloudGateway基于WebFlux架構開發,可以提供更高效的服務處理性能,本課程為讀者講解了網關在微服務技術中的應用架構,同時基于SpringCloudGateway的基本配置實現了部門微服務的網關代理訪問操作。
0603_【理解】消費端整合SpringCloudGateway 微服務架構中需要提供有SpringBoot消費端處理,本課程基于已有的Feign組件進行修改了,實現了網關調用與服務映射路徑的配置。
0604_【掌握】靜態路由配置 SpringCloudGateway中的路由除了自動根據微服務的名稱進行匹配之外,還可以在application.yml中進行靜態配置,本課程為讀者講解了單一資源的路由以及集群資源的路由訪問配置。
0605_【掌握】RoutePredicateFactory簡介 RoutePredicateFactory(又被稱為路由謂詞工廠)是在網關中實現服務代理轉發的重要前提條件,本課程通過宏觀的概念為讀者分析了內置斷言提供的配置模式,并且基于類結構的形式總結了路由謂詞工廠的功能。
0606_【掌握】內置RoutePredicateFactory子類 在SpringCloudGateway項目中可以直接使用已有的內置路由謂詞工廠類實現網關訪問的執行判斷,本課程通過實例為讀者演示了內置路由謂詞工廠類的使用。
0607_【理解】擴展RoutePredicateFactory子類 項目開發中存在有各類的特殊需要,所以對于網關的訪問也有特殊的要求,為了便于用戶功能的擴展,可以自定義RoutePredicateFactory子類,本課程通過一個時間點訪問的應用講解了自定義路由謂詞工廠類的程序實現。
0608_【掌握】網關過濾簡介 為了便于網關進行自動的請求或響應處理,在網關中提供了過濾工廠的概念,本課程通過實例為讀者簡要說明了過濾工廠的作用并通過一個簡單的配置講解了具體使用。
0609_【掌握】內置網關過濾工廠類 SpringCloudGateway內置了許多的過濾工廠類,在本課程中為讀者分析了過濾工廠類的繼承結構,并介紹了常用的內置過濾工廠類以及使用實例。
0610_【掌握】自定義過濾工廠 SpringCloudGateway支持用戶自定義過濾工廠的配置實現,本次課程為讀者講解了自定義過濾工廠類實現的基本結構,并通過實例開發了一個日志記錄的網關過濾器。
0611_【掌握】全局過濾器簡介 全局過濾器是SpringCloudGateway中的重要組成結構,本課程為讀者分析了全局過濾器的作用,同時基于Actuator為讀者列舉了全部內置的全局過濾器的名稱,并簡要的分析了其繼承結構以及核心過濾器的作用。
0612_【掌握】自定義全局過濾器 SpringCloudGateway中根據全局過濾器實現請求轉發的相關處理操作,本課程通過實例自定義了兩個全局過濾器,并通過Order注解實現了過濾器實現順序的配置。
0613_【掌握】ForwardRoutingFilter ForwardRoutingFitler是網關內部提供的一個內部的路由轉發全局過濾器,本課程為讀者分析了該過濾器的源代碼結構,并且通過實例講解了網關內的路由轉發。
0614_【掌握】Netty全局路由 SpringCloudGateway可以直接實現實現指定資源的路由轉發處理,而這一轉發的操作是基于Netty實現的(NettyRoutingFilter與NettyWriteResponseFilter),本課程為讀者分析了這兩個內置全局過濾器的使用。
0615_【掌握】ReactiveLoadBalancerClientFilter SpringCloudGateway為了提高服務的處理性能,提供了Reactive響應式編程處理支持,本課程為讀者分析了默認負載均衡轉發的實現子類,并且基于依賴庫以及yml配置開啟了ReactiveLoadBalancerClientFilter全局過濾器操作。
0616_【掌握】GatewayMetricsFilter SpringCloudGateway內部提供了網關服務度量監控數據,本課程為讀者展示了監控接口的開啟,并且基于Prometheus與Grafana實現了數據采集與可視化監控顯示。
0617_【理解】SpringCloudGateway自動裝配類 SpringCloudGateway基于Starter自動裝配模式進行服務處理,在本課程中為讀者分析了網關請求代理的完整流程,并基于依賴庫中的spring.factories介紹了裝配類的作用。
0618_【理解】GatewayAutoConfiguration GatewayAutoConfiguration是網關服務配置的核心實現類,在本課程中通過源代碼分析了該類的關聯結構,并講解了其與路由謂詞工廠、網關過濾工廠之間的關聯。
0619_【理解】RouteLocator 網關中需要保存大量的路由信息地址,而所有路由信息的獲取可以通過RouteLocator接口完成,本課程分析了RouteLocator接口的繼承結構,并通過啟動類的源代碼分析了這三個子類內部的關聯。
0620_【理解】FilteringWebHandler 過濾器是網關進行請求和響應處理的關鍵一步,在本課程中通過網關自動配置類分析了FilteringWebHandler類的作用與過濾鏈的形成邏輯。
0621_【理解】RoutePredicateHandlerMapping 網關可以通過application.yml進行路由訪問配置,而路由訪問的斷言匹配處理操作是由RoutePredicateHandlerMapping類實現的,本課程分析了該類的源代碼實現。
0622_【掌握】動態路由簡介 網關是微服務項目架構實現的核心技術,而網關的穩定運行將影響到整個微服務架構的狀態,本課程為讀者分析了靜態網關實現的問題,并分析了動態網關配置實現。
0623_【掌握】動態路由模型 動態路由需要進行配置寫入與更新事件發布,在本課程中將通過一個統一的路由操作類進行動態路由的增加、修改以及刪除操作的實現。
0624_【掌握】動態路由簡介 Nacos是SpringCloudAlibaba實現的核心所在,除了可以承擔起服務注冊與發現支持之外,還提供了配置數據的管理功能,在本課程中將繼續使用Nacos實現網關配置數據持久化管理操作以實現配置的初始化加載與更新加載的實現。
0701_【了解】SpringCloud認證管理簡介 為了有效的進行服務資源的保護,所以就需要進行統一的認證處理,本課程為讀者分析了SpringCloud中的認證處理模式以及各自的特點。
0702_【掌握】JWT工具模塊 由于在整個微服務架構中的各個服務節點都會使用到JWT進行處理,為了便于代碼的統一管理,本次將創建一個公共的開發模塊,并提供JWT的配置與數據處理支持。
0703_【掌握】Token認證服務 JWT是整個的微服務架構安全的核心所在,所以需要搭建統一的Token服務器,本課程為讀者分析了Token服務器的作用,并通過具體的實例講解了Token的創建。
0704_【掌握】JWT授權檢測 考慮到安全性問題,微服務的資源提供者需要進行有效的授權檢測,這樣就可以有效的進行微服務管理,本課程將對已有的微服務進行改造,并對JWT公共模塊進行了修改,基于注解與過濾器的形式實現了微服務資源的授權保護。
0705_【掌握】網關認證過濾 網關是微服務資源的整合關鍵,所以在進行資源代理轉發前都必須進行有效的JWT認證,本課程將通過具體的實例對已有的網關應用進行修改,利用全局過濾器的形式實現了JWT數據結構的校驗處理。
0706_【掌握】消費端獲取JWT 微服務資源最終是通過消費端應用進行調用的,這樣在進行資源調度時就必須進行Token數據的獲取與傳遞,本課程將通過實例講解如何通過CommandLineRunner進行Token獲取,并利用Feign攔截器實現了Token數據的頭信息傳遞操作。
0707_【掌握】SpringBootAdmin服務端 良好的微服務需要有效的監控管理,Spring官方提供了SpringBootAdmin管理工具,即可通過Actuator實現服務監控,本課程通過實例講解了服務監控功能的啟用。
0708_【掌握】SpringBootAdmin安全配置 監控服務可以獲取全部微服務節點數據,這樣就必須進行有效的安全保護,在本課程中會將SpringSecurity與SpringBootAdmin進行結合,實現了用戶認證管理。
0709_【掌握】SpringBootAdmin客戶端接入 SpringBootAdmin中的監控數據需要由各個微服務通過Actuator進行發送,這樣就需要進行監控節點的整合,本課程對已有的微服務架構進行了修改,實現了控制臺的服務狀態監控以及統計信息的展示。
0710_【掌握】微服務離線警告 完善的服務運行離不開警報信息的配置,在SpringCloud集群架構中會存在有大量的微服務節點,如果某一個服務節點出現問題則應該立即通知管理員,這樣就可以通過SpringBootAdmin提供的郵件整合服務進行警報信息的發送
0801_【掌握】RocketMQ簡介 消息組件是在系統開發中較為常見的服務應用,本課程為讀者宏觀的講解了消息組件 的主要作用,同時分析了常見的幾款消息組件的特點與實際應用場景。
0802_【掌握】RocketMQ服務搭建 官方推薦在Linux系統中進行RocketMQ服務部署,在本課程中將為讀者講解RocketMQ的組件獲取、服務安裝與啟動的相關實例操作。
0803_【掌握】ACL訪問控制列表 消息組件在實際項目中需要實現對外進行服務整合的需要,這樣一來為了保證服務的安全就必須進行認證與授權管理,本課程通過實例為讀者講解ACL開啟以及配置。
0804_【理解】RocketMQ控制臺 有服務必有監控已經成為了當代軟件項目設計的核心宗旨,雖然RocketMQ本身提供了強大的消息服務支持,但是為了保證其運行的穩定則需要通過RocketMQExternals開源項目實現監控支持,本課程講解了GITHUB的擴展程序的下載以及服務配置。
0805_【理解】RocketMQ管理命令 RocketMQ提供了mqadmin命令,利用該命令可以直接管理當前消息系統之中的主題、生產者與消費者,本課程通過實例為讀者講解了這一命令的使用。
0806_【理解】Benchmark壓力測試 為了可以準確的得到RocketMQ節點所能夠承受的并發訪問量,可以通過Benchmark提供的工具進行壓力測試,本課程通過實例為讀者講解了Beanchmark所提供的相關壓力測試工具的使用。
0807_【掌握】RocketMQ核心概念 不同的消息組件有各自不同的處理架構,本課程為讀者講解了RocketMQ之中所涉及到的架構概念,并解釋了核心模塊的主要作用。
0808_【理解】Remoting通訊模塊 RocketMQ消息組件中需要基于長連接的模式與NameServer或Broker實現通訊,而這些通訊機制的實現都是基于Netty完成的,本課程為通過對RocketMQ項目中的remoting子模塊的源代碼,分析了Netty通訊的核心處理機制。
0809_【理解】消息結構 消息是RocketMQ之中主要的數據傳輸內容,在本課程中為讀者講解了消息協議的組成結構,并通過消息的類源代碼進行了消息的組成內容以及繼承結構。
0810_【理解】心跳檢查 RocketMQ中除了核心的消息內容之外,還需要定時進行心跳數據的發送,以實現心跳檢查,本課程通過RocketMQ的源代碼分析了心跳機制中的發送與檢查實現。
0811_【掌握】數據存儲 RocketMQ中需要對消息數據進行存儲,本課程為讀者分析了Broker中數據存儲目錄的作用,同時分析了CommitLog與Queue之間的消費處理流程。
0812_【掌握】數據刷盤 數據刷盤是RocketMQ提供的重要存儲性能優化的實現,在本課程中為讀者講解了數據刷盤的兩種處理形式,同時分析了PageCache的作用以及核心源碼解析。
0813_【掌握】RocketMQ集群服務概述 穩定與高效是消息組件最重要的處理保障,RocketMQ可以基于集群服務的方式實現多Broker的節點配置,本課程為讀者分析了Broker集群的四種實現方式,同時給出了本次RocketMQ集群服務搭建所需要的服務主機信息。
0814_【掌握】NameServer集群 NameServer提供了所有服務的映射數據項存儲,是RocketMQ中最為重要的服務組件,本課程將通過虛擬機實現NameServer集群搭建。
0815_【掌握】Broker集群 Broker是最終實現消息處理的核心單元,在本次課程中將通過九臺服務器實現三組Broker分片集群,并通過具體的配置步驟實現了服務的搭建以及控制臺改造。
0816_【掌握】RocketMQClient基本使用 RocketMQ應用服務搭建完成之后,在實際生產環境下,需要通過程序來實現生產端與消費端,本課程通過Apache官方給出rocketmq相關依賴實現了消息服務的調用。
0817_【掌握】消息生產模式 RocketMQ中提供了三種不同的消息生產模式,在本課程中將為讀者詳細的解釋這三種生產模式的特點以及具體實現。
0818_【掌握】消費模式 RocketMQ的消費端提供有兩種消費模式,在本課程中將為讀者講解這兩種消費模式的工作原理以及具體的代碼實現。
0819_【掌握】業務標簽 為了可以實現更加詳細的子業務消息的處理邏輯,可以基于消息主題實現進一步的劃分,所以在RocketMQ中提供了Tag的概念,本課程為讀者詳細解釋了RocketMQ中Topic、Group、Tag彼此之間的關聯,并且通過實例演示了Tag的使用。
0820_【掌握】消息識別碼 為進一步實現業務消息的標記,在RocketMQ中提供了KEYS識別碼的功能,本課程為讀者分析了KEYS識別碼的作用以及具體應用。
0821_【理解】Namespace Namespace是一種基于命名空間實現消息分類管理的操作機制,本課程為讀者講解了NameSpace的作用,以及如何通過代碼實現生產者與消費者的Namespace定義。
0822_【掌握】消息廣播 消息廣播可以使不同的消費者收取到相同的消息數據,在本課程中將通過具體的應用實例為讀者講解消息廣播與分組之間的關聯。
0823_【掌握】消息排序 RocketMQ中的消息生產與消費都依賴于消息隊列(MessageQueue),為了實現消息的順序處理,在RocketMQ中提供了順序消費的支持,在本課程中將通過具體的實例分析為讀者講解MessageQueueSelector與MessageListenerOrderly接口使用。
0824_【掌握】延遲消息 為了實現合理的業務與消息之間的關聯,在RocketMQ中支持了延遲消息的功能,本課程為讀者講解了延遲消息設計的存在的意義,同時通過具體的實例講解了延遲消息的開發以及Broker相關的配置項作用。
0825_【掌握】消息過濾 在RocketMQ中可以通過tag實現不同子業務的消息邏輯處理,而除了此機制外還提供了更加靈活的SQL92消息過濾,本課程為讀者分析了SQL92標準過濾的作用,同時講解了MessageSelector實現SQL92過濾的程序實現。
0826_【掌握】消息批處理 面對大規模消息量生產的應用環境,為了提高傳輸效率可以通過批量消息的方式進行處理,本課程為讀者分析了批量消息的設計意義,并通過具體代碼進行了操作實現。
0827_【掌握】日志消息處理 雖然RocketMQ沒有提供像Kafka那樣卓越的日志采集性能,但是在一些日志量較小的環境下,也可以與已有的日志組件整合,實現日志采集的功能,本課程通過具體的實例講解了Logback日志的采集處理。
0828_【掌握】事務消息簡介 RocketMQ提供了事務消息處理的機制,而這機制可以有效的解決分布式狀態下的事務處理問題,本課程為讀者分析了分布式事務的實現意義,并通過具體的操作演示了事務消息的執行與回調檢查。
0901_【理解】SpringCloudStream簡介 SpringCloudStream是一種事件驅動型的設計框架,可以輕松的以標準的結構實現微服務業務的整合處理,本課程從傳統的消息組件操作問題分析,講解了消息驅動型微服務框架的主要作用,并分析了其核心的組成架構。
0902_【理解】SCS消息生產者 SpringCloudStream提供了統一的生產者消息處理規范,在本課程中將為讀者講解了基于RocketMQ的SCS生產端服務配置,并通過具體的代碼實現了消息發送處理。
0903_【理解】SCS消息消費者 SpringCloudStream消息消費者依然采用監聽的形式實現消息數據的接收,在本課程中將基于RocketMQ實現消費端的配置與消息接收。
0904_【理解】消費過濾 雖然SpringCloudStream采用了更加標準的方式實現了消息驅動的通信模型,但是不同的消息組件有其自身的消息分類,在本課程中將對已有的代碼進行改造,使其可以同時多個不同的消費通道,并實現不同消息的過濾。
0905_【了解】SpringCloudConfig簡介 SpringCloudConfig提供了一種動態配置的解決方案,本課程為讀者分析了這種動態配置處理的主要作用,并基于GitLab實現了服務倉庫的構建。
0906_【了解】SpringCloudConfig服務端 SpringCloudConfig服務端需要與GITLab或GITHub實現連接,這樣才可以實現配置抓取,本課程通過具體的實現操作,講解了配置服務器的搭建以及SSH連接配置。
0907_【了解】SpringCloudConfig客戶端 配置服務端的提供是為了便于實現GITLab倉庫中的配置抓取,在本次課程中將創建一個配置客戶端微服務,并通過微服務名稱實現配置項的抓取。
0908_【了解】SpringCloudBus 使用SpringCloudConfig的核心目的在于可以動態的實現配置項的加載,而這一功能就需要基于SpringCloudBus并結合消息組件的模式完成,本課程在已有的RocketMQ服務的基礎之上實現了配置的動態刷新操作。
0909_【掌握】SpringCloudConfig整合Nacos SpringCloudAlibaba針對于SpringCloudConfig提供了更加簡化的處理機制,在本課程中將為讀者分析傳統的SpringCloudConfig存在的缺陷,并且通過具體的代碼實現了基于Nacos的配置動態管理操作。
0910_【掌握】Seata分布式事務簡介 分布式的業務中心如果要實現統一的事務調度,則必須基于二階段提交的模式來完成,在本課程中為讀者分析了分布式事務與微服務之間的關聯,同時通過具體的案例分析了Seata業務層分布式事務處理的特點、實現流程以及實現分類。
0911_【掌握】雇員微服務 如果要想實現完整的分布式事務處理,則必須啟用新的微服務提供者,在本課程中將依據已有的部門業務模型,搭建雇員微服務以構成分布式事務實現場景。
0912_【掌握】Seata服務安裝與配置 Seata是公布在Github上的一套完整開源項目,本次將通過github為讀者演示組件的獲取操作,并且依據實例演示了Seata的配置,以及與Nacos的集成。
0913_【掌握】AT模式 Seata提供了AT模式實現了與傳統XA模式的對接,在本課程中將為讀者分析AT模式的操作特點,并且通過完成的代碼實現了AT模式下的分布式事務管理。
0914_【掌握】TCC模式 TCC模式是AT模式的手工化實現,可以獲得較高的處理性能,本課程為讀者分析了TCC模式的實現流程,并通過具體的代碼實現了TCC分布式事務。
0915_【理解】Saga模式 Saga是一種跨平臺的解決方案,可以很好的解決異構系統的分布式事務處理問題,在本章將為讀者講解Saga的主要作用、Saga狀態機設計器的服務構建、并結合Seata模擬實現分布式事務的處理。
1001_【了解】SpringCloudSleuth簡介 SpringCloudSleuth是SpringCloud內置的鏈路跟蹤解決方案,本課程為讀者分析了鏈路跟蹤的設計意義,并且通過實例講解了SpringCloudSleuth的基本使用。
1002_【了解】搭建Zipkin服務 Zipkin是由Twtter公布的開源項目,同時在GITHub中也提供了項目源代碼,本課程通過具體的操作實例為讀者講解了Zipkin的項目打包與服務部署操作。
1003_【了解】微服務日志采集 Zipkin作為數據采集服務,開啟后就需要由不同的微服務進行日志數據的發送,在本課程中將對已有的微服務進行修改,使其實現與zipkin服務對接操作。
1004_【了解】Zipkin數據持久化 Zipkin的內部為了便于持久化存儲提供了MySQL的解決方案,本課程將對已有的zipkin采集服務進行修改,使其可以實現基于MySQL鏈路數據存儲支持。
1005_【理解】Skywalking簡介 SkyWalking是當前項目開發中使用最多的全鏈路跟蹤組件,本課程中為讀者介紹了zipkin所帶來的問題,同時介紹了SkyWalking組件的使用特點。
1006_【理解】SkyWalking服務安裝與配置 SkyWalking官方站點提供了完整的工具組件包,本課程將為讀者講解組件的獲取,同時講解了Skywalking與ElasticSearch存儲的整合配置。
1007_【理解】微服務接入 SkyWalking為了實現無侵入的接入模式,提供了探針的接入策略,本課程在已有的SKyWalking應用的基礎之上實現了鏈路數據的發送以及可視化顯示處理。
1008_【了解】Sentry服務簡介 為了進行及時的錯誤排查,就需要對微服務中的異常進行記錄,所以在項目開發中開發者可以基于Sentry實現錯誤統計,本課程為讀者講解了Sentry的主要作用。
1009_【了解】Sentry服務接入 Sentry的數據主要來自于項目應用,本課程將對之前的SpringCloud項目應用進行改造,使其可以將錯誤數據發送到Sentry應用之中。
1010_【了解】Sentry錯誤警報 為了可以及時的進行錯誤處理,在Sentry還提供了預警機制的配置,本課程為讀者演示了Sentry預警機制的配置與觸發操作。