1. 程式人生 > >Spring Cloud---Zuul閘道器篇( 一)-----Zuul請求流程解析(簡化)

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腦圖