Spring Cloud---Zuul網關篇( 一)-----Zuul請求流程解析(簡化)

前述:Spring Zuul是Spring微服務的網關,作爲微服務的入口,用來統一管理請求。Zuul不是把網關的所有事情都做了,而是暴露了當前請求的整個過程生命週期的處理。實際網關的實現邏輯還是需要我們自己處理,在解析完Zuul後我會提供一個網關限流的方案實例,並對其做擴展,以爲大家在實現的時候做參考。

說在前:我認爲相比直接上代碼怎麼實現網關限流來說,先了解原理更有助於我們理解與使用

一、環境描述

解析原理使用查看的的Zuul版本是: Spring Cloud  1.5.4 

二、請求處理流程解析

1)Zuul架構圖

  (摘自:https://blog.csdn.net/forezp/article/details/76211680 ,這篇文章的源碼解析還不錯,可以閱覽下)

                                         zuul.png

 

網上的源碼解析文章很多,我這裏就不多做說明了。我這裏主要是想儘可能簡單、清楚的描述請求的處理流程,在開始之前有必要說明幾個關鍵的類:

  • ServletWrappingController :該類的是Spring MVC中的請求封裝控制器,負責將請求轉給指定的servlet處理。
  • ZuulController:Zuul中提供的繼承ServletWrappingController的子類,用將請求轉到ZuulServlet處理
  • ZuulServlet:Zuul網關中網絡請求處理器
  • ZuulRunner:將HttpServletRequest添加到請求的上下文中
  • FilterProcessor:集中處理各生命週期的過濾器
  • FilterLoader:存儲和加載過濾器的地方

下面就是我整理的請求處理流程:

                

上圖只說明了Zuul在處理請求的流程,讓大家知道我們的自定義的過濾器是在何時以及如何被執行的。Zuul其他的部分後面的文章會敘述。

三、Zuul腦圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章