聊一下SpringCloud Zuul的核心构造

简介: SpringCloud Zuul提供了微服务系统中的网关功能,今天的目的就是来看一下Spring Cloud Zuul的基本构成和配置。

Zuul提供而来哪些网关功能


  1. Zuul组件给微服务架构提供了统一的API入口,并且根据不同过滤器处理API,最后传到后端业务。
  2. Zuul组件主要还是提供了过滤机制、动态路由的功能。
  3. Zuul组件还提供了效验过滤、服务聚合、服务容错等等的功能。
  4. 因为Zuul自动集成了Ribbon和Hystrix,所以Zuul组件生来就自带负载均衡和服务容错的能力。


Zuul的工作核心是什么?


如果问Zuul的工作核心是什么?那肯定会得到异口同声的答案,那就是过滤器,Zuul内部代码实现了多种过滤器类型,以支持网关工作。


Zuul提供了哪些类型的过滤器类型


pre : 可以在请求被路由之前被调用。

此过滤器类型更适用于身份认证的场景,当认证成功后,放进行下一步的操作。


route : 在路由请求时被调用。

适用于灰度发布场景,在将要访问路由的时候同时去做一些自定义的逻辑,以满足相应的奇奇怪怪的需求。


post : 在 routeerror 过滤器之后被调用。

此类过滤器将请求路由到达具体的服务之后执行。比较适用于需要添加响应头,记录响应日志等应用场景。


error : 处理请求时发生错误时被调用。

在执行过程中发送错误时会进入 error 过滤器,可以用来统一记录错误信息,以便于后期解决问题。


Zuul有哪些重点配置


我们直接在Spring Cloud Zuul模块中引入相关jar包,当然需要使用@EnableZuulProxy注解修饰Application类了。


配置Zuul访问api路径:

zuul.routes.eureka-application-service.path=/api/**

配置Zuul服务名称:

zuul.routes.eureka-application-service.serviceId=service-zuul-name

配置可忽略服务:

zuul.ignored-services=service-1

配置Zuul路由前缀路径:

zuul.prefix=/zuul
目录
相关文章
|
7月前
|
消息中间件 NoSQL Java
Spring Cloud项目实战Spring Cloud视频教程 含源码
Spring Cloud项目实战Spring Cloud视频教程 含源码
106 1
|
7月前
|
监控 Java API
Spring cloud Hystrix 、Dashboard、API(zuul)相关报错
Spring cloud Hystrix 、Dashboard、API(zuul)相关报错
75 2
|
3月前
|
负载均衡 Java 网络架构
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
138 5
|
2月前
|
负载均衡 Java API
【Spring Cloud生态】Spring Cloud Gateway基本配置
【Spring Cloud生态】Spring Cloud Gateway基本配置
44 0
|
4月前
|
Java Spring
【Azure Spring Cloud】Spring Cloud Azure 4.0 调用Key Vault遇见认证错误 AADSTS90002: Tenant not found.
【Azure Spring Cloud】Spring Cloud Azure 4.0 调用Key Vault遇见认证错误 AADSTS90002: Tenant not found.
|
4月前
|
Java Spring 容器
【Azure Spring Cloud】在Azure Spring Apps上看见 App Memory Usage 和 jvm.menory.use 的指标的疑问及OOM
【Azure Spring Cloud】在Azure Spring Apps上看见 App Memory Usage 和 jvm.menory.use 的指标的疑问及OOM
|
4月前
|
存储 Java Spring
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
|
4月前
|
SQL Java 数据库连接
【Azure Spring Cloud】Azure Spring Cloud connect to SQL using MSI
【Azure Spring Cloud】Azure Spring Cloud connect to SQL using MSI
|
4月前
|
Java 开发工具 Spring
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
|
4月前
|
NoSQL Java Redis
【Azure Spring Cloud】Java Spring Cloud 应用部署到Azure上后,发现大量的 java.lang.NullPointerException: null at io.lettuce.core.protocol.CommandHandler.writeSingleCommand(CommandHandler.java:426) at ... 异常
【Azure Spring Cloud】Java Spring Cloud 应用部署到Azure上后,发现大量的 java.lang.NullPointerException: null at io.lettuce.core.protocol.CommandHandler.writeSingleCommand(CommandHandler.java:426) at ... 异常