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

當加入了spring cloud的zuul後,架構圖大緻如下:
下面我們使用zuul來快速搭建一個官網系統
前往eureka的注冊中心,我們發現該服務已經注冊到該服務中心了。
此時,我們隻需要通路/caclulate/**,該網關服務執行玩自己該做的事情之後,就會轉發到對應的服務(com-spring-caclu)下面去執行目标代碼。
上面配置檔案中,轉發路由的配置是比較常用的一種寫法,也是比較好用的,它不會破壞Hystrix、Ribbon特性,下面還有幾種配置路由的方式可以參考一下:
3.1 指定服務id
3.2 忽略指定服務
3.3 忽略所有服務,隻是有路由指定
3.4 同時配置path和url
3.5 使用正規表達式指定路由規則
3.6 路由字首
3.7 忽略某些路徑
下面我們通過一個示例來示範一下zuul如何來使用
我們隻需要建立一個類來繼承ZuulFilter這個抽象類,并實作其4個抽象方法即可:
下面是一個執行個體代碼:
這個時候,當我們再次通路的時候,如果沒有token這個參數,那麼就會直接傳回,并抛出401狀态碼。