1、新建項目,命名 api-geteway:
2、依賴選擇 Eureka Discovery 和 Zuul:
下一步完成。
3、將application.properties 改爲 application.yml ,然後配置如下:
spring:
application:
name: api-gateway
eureka:
client:
service-url:
default-Zone: http://localhost:8761/eureka
server:
port: 9000
記得啓動類添加 @EnableZuulProxy
4、分別啓動Eureka和api-gateway成功後,可以看到api-geteway 已註冊到Eureka:
5、創建測試項目zuultest1,配置及Controller寫一個測試api如下:
啓動後,訪問http://localhost:9000/zuultest1/test1 即可看到已路由成功:
地址的 zuultest1 表示註冊至eureka 的服務名,test1 表示api路徑。
6、可以自定義路由,如下配置:
zuul:
routes:
#自定義路由名稱,可隨意命名
test:
#自定義路由路徑,此爲自定義訪問路徑
path: /test/**
#自定義路由指向的服務Id
serviceId: zuultest1
訪問 http://localhost:9000/test/test1 即可。
#簡潔寫法(服務Id: 自定義訪問路徑)
zuultest1: /testsimple/**
7、路由排除:
ignored-patterns:
- /testsimple/test1
則訪問http://localhost:9000/testsimple/test1 時,就排除這個路徑報404了:
完全配置:
zuul:
routes:
#自定義路由名稱
#test:
#自定義路由路徑
#path: /test/**
#自定義路由指向的服務Id
#serviceId: zuultest1
#簡潔寫法
zuultest1: /testsimple/**
ignored-patterns:
- /testsimple/test1
注意此時訪問 http://localhost:9000/zuultest1/test1 還是可以訪問的,因爲上面的 testsimple 是自定義的路由,通過serviceId還是可以訪問的,所以需要把 serviceId的路由也排除:
ignored-patterns:
- /testsimple/test1
- /zuultest1/test1