zuul

Posted yangyang12138

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于zuul的主要内容,如果未能解决你的问题,请参考以下文章

spring security oauth2认证中心 集成zuul网关的代码分析

zuul入门zuul的过滤器加载

最全面的改造Zuul网关为Spring Cloud Gateway(包含Zuul核心实现和Spring Cloud Gateway核心实现)

Spring Cloud Zuul 综合使用

重定向时向 Zuul 添加标头

Spring Boot + 云 | Zuul 代理 | 404 错误