天天看點

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

哈喽各位同學們大家好呀,今天是開發者學院中課程“Spring Cloud微服務架構設計與開發實戰”的章節三的“Spring Cloud Gateway實戰接入Nacos服務”幹貨總結~這是Spring Cloud 課程的最後一課時,一起學習新課程吧!

課程連結以及圖譜位址小編已經為大家指路了,搭配學習效果更佳👇

課程名稱:Spring Cloud Gateway實戰接入Nacos服務

課程位址:

https://developer.aliyun.com/learning/course/60/detail/1093

圖譜名稱:Alibaba Java 技術圖譜

圖譜位址:

https://developer.aliyun.com/graph/java

Spring Cloud Gateway實戰接入Nacos服務

各位同學大家好,咱們繼續講解Spring Cloud微服務架構實戰系列課程,繼續實戰Gateway項,Gateway是官方出品的網管工具,接入Nacos注冊中心進行內建。目前Nacos國内很多大型公司在用,作為一個分布式資料中心,能夠做注冊和服務發現治理,還可以做統一配置服務。 

Gateway為什麼要和Nacos做內建,因為這兩2個都非常優秀,是黃金搭檔,Nacos本身不僅支援Spring Cloud,還支援double,GO語言等一些分布式架構來做統一的注冊和治理中心。 

  1. Spring Cloud Gateway網關 

Spring Cloud Gateway新特性 

1. 基于Spring 5,Project Reactor和Spring Boot 2.0建構 

2. 能夠比對任何請求路由。 

3. 特定路由專用Predicate謂詞和過濾器Filter特。 

4. 內建Hystrix斷路器。 

5. 內建Spring Cloud DiscoveryClient 

6. 易于編寫謂詞和過濾器 

7. 請求速率限制 

8. 路徑重寫 

9. 非阻塞API,響應式API,高并發 

   Spring Cloud Gateway 可以和內建微服務的項目直接改造進行內建,但是和Nacos進行搭配需要注意下,因為Nacos有內建模式和單點模式。關于如何進行操作可以回看之前講解過的Nacos實戰。如果起不來可能是環境、配置檔案等出現問題。 

  1. Spring Cloud Gateway實戰內建 Nacos 
開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

改造Spring Cloud Gateway具體怎麼操作?簡單一點的話,就是之間的Gateway項目進行重構,更新,去支援Nacos服務。之前的微服也需要進行重構,去支援Nacos中心服務。隻有2個對接成功之後,才可以做後續的工作。 

Nacos本身開發用戶端的依賴,用戶端項目去內建它,需要具備和Nacos通信的功能。現在Spring Cloud微服架構,不僅可以用麥飛的,Spring Cloud官方的,還有阿裡巴巴的,是以架構設計有個多個選擇, 而且各個架構在不斷的疊代。有更多的優秀的解決方案去落地你的項目。 

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

Spring Cloud Gateway在內建Nacos時,可能出現一些錯誤,目前還是存在Bug的,後續官方會進行修複,需要注意下相關的配置。 

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)
開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

大家把微服務項目改造完成以後挂接到Gateway上進行一下測試,流程給跑通,進行測試下。 

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

項目進行改造需要把依賴加進去,是Nacos中心的一個對接。 

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

啟動Nacos服務在win10 、Linux、MAC腳本會不太一樣。目前截圖界面是單點模式,叢集模式可以在生成模式進行。 

本地可以弄一個Nacos配置檔案,這樣子配置資料不會丢失,即使重新開機了也不會丢失。 

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

圖(1) 

上圖(1)顯示重新開機是出現一個Bug,自動服務注冊的時候出現2個,由于這個項目是從早期的Spring Cloud移植過來的,隻要删除下圖(2)依賴,在重新開機就可以正常運作。 

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

圖(2) 

如配置正常是可以在Nacos檢視Spring Cloud Gateway,如見圖3 

開發者學堂課程幹貨總結——Spring Cloud微服務架構設計與開發實戰(三十一)

圖3 

後續的微服務改造也是同理的,配置檔案進行修改,增加Nacos依賴。 

希望大家在實戰過程中去思考,之前講的那些設計模式和原理。如:Gateway如何監控背景的微服務,誰來執行,多長時間拉一次服務清單,在調用的過程中有沒有High Strikes這種現成詞的概念,有沒有連結池的概念,這裡面都會影響到後面的性能問題。 

底層的機制中,Europe預設是30秒,實際淘汰一個服務實際是90秒,Europe本身也有服務過期的機制,過期了會從服務清單中删除掉。 

微服務架構師本身不像傳統的一些簡單的架構隻需要做三層或者五層的改動,而是更多的不同架構,并且考慮問題需要綜合全面的。微服務架構裡面有許多許多的架構和方案,并且每個架構方案的話都需要你自己實際去實戰配代碼。微服務架構含金量十足,作為分布式架構裡面,是一個巅峰,裡面包含了幾十種設計模式、幾十種架構,而且還在不斷的疊代進行更新。這裡面就需要我們在不斷的去學習,逼着大家不斷的去進步,是個考驗,是個挑戰,但是同時也是一個很好的機遇。