天天看點

spring cloud的網關服務Zuul

微服務架構講究系統的高内聚性,即隻做該系統該做的事情,而其他的事情可以通過網關去做。spring cloud的zuul可以快速的搭建一個網關系統,其主要功能如下:

spring cloud的網關服務Zuul

當加入了spring cloud的zuul後,架構圖大緻如下:

spring cloud的網關服務Zuul

下面我們使用zuul來快速搭建一個官網系統

前往eureka的注冊中心,我們發現該服務已經注冊到該服務中心了。

此時,我們隻需要通路/caclulate/**,該網關服務執行玩自己該做的事情之後,就會轉發到對應的服務(com-spring-caclu)下面去執行目标代碼。

上面配置檔案中,轉發路由的配置是比較常用的一種寫法,也是比較好用的,它不會破壞Hystrix、Ribbon特性,下面還有幾種配置路由的方式可以參考一下:

3.1 指定服務id

spring cloud的網關服務Zuul

3.2 忽略指定服務

spring cloud的網關服務Zuul

3.3 忽略所有服務,隻是有路由指定

spring cloud的網關服務Zuul

3.4 同時配置path和url

spring cloud的網關服務Zuul

3.5 使用正規表達式指定路由規則

spring cloud的網關服務Zuul

3.6 路由字首

spring cloud的網關服務Zuul

3.7 忽略某些路徑

spring cloud的網關服務Zuul

下面我們通過一個示例來示範一下zuul如何來使用

我們隻需要建立一個類來繼承ZuulFilter這個抽象類,并實作其4個抽象方法即可:

下面是一個執行個體代碼:

這個時候,當我們再次通路的時候,如果沒有token這個參數,那麼就會直接傳回,并抛出401狀态碼。