zuul
1.概述
是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
2.过滤器
Zuul大部分功能都是通过过滤器来实现的。Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期。
(1) PRE:这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。
(2) ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfilx Ribbon请求微服务。
(3) POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。
(4) ERROR:在其他阶段发生错误时执行该过滤器。
3.配置
重写指定微服务的访问路径,这表示将rest-demo微服务的地址映射到/rest/**路径。
zuul:
routes:
test-demo: /test/**
忽略指定微服务
zuul:
ignored-services: rest-demo,xxx-service
忽略所有微服务,只路由指定微服务
zuul:
ignored-services: *
routes:
rest-demo: /rest/**
指定path和URL
zuul:
routes:
route-name:
url: http://localhost:8000/
path: /rest/**
即指定path和URL,又保留Zuul的Hystrix、Ribbon特性
zuul:
routes:
route-name: #路由别名,无其他意义,与例1效果一致
service-id: rest-demo
path: /rest/**
ribbon:
eureka:
enable: false #为Ribbon禁用Eureka
rest-demo:
ribbon:
listOfServers: localhost:9000,localhost:9001