【Spring Cloud】Zuul 路由网关:什么是 Zuul,为什么要使用,路由功能的项目实战

前言:本文的 Zuul 路由网关 主要技术内容学习自教程视频:https://www.bilibili.com/video/BV1jJ411S7xr?p=17,此教程非常通俗易懂且有质量,也希望更多人能够支持这样高质量的UP,我在学习时收获很多,因视频形式不易复习回顾,因此加了一部分自己的见解并整理成图文博客的形式。

1 什么是 Zuul

Zuul 包含了对请求的路由过滤两个最主要的功能,外加代理功能:

  • 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础
  • 过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础

Zuul 和 Eureka 进行整合,将 Zuul 自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获得其他微服务的消息,也即以后的访问微服务都是通过 Zuul 跳转后获得

2 为什么要使用 Zuul

网关可以对外暴露聚合API,屏蔽内部微服务的微小变动,保持整个系统的稳定性。还可以做负载均衡,统一鉴权,协议转换,监控监测等一系列功能。

3 项目实战:路由功能

3.1 项目的基本构建与实现

1、新建 Module 模块 springcloud-zuul-gateway-9527 ,pom 文件添加 Eureka 和 Zuul 的配置

<!--Zuul-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
    <version>1.4.7.RELEASE</version>
</dependency>

<!--Eureka相关-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.7.RELEASE</version>
</dependency>

2、application.yaml 配置

在这里插入图片描述

3、hosts 修改(这步骤可有可无,教程的作者是想更真实地从表面上模拟分布式项目的的发生)
在这里插入图片描述
4、主启动类
在这里插入图片描述
5、启动项目,测试
在这里插入图片描述
在这里插入图片描述

3.2 出现问题-1

http://myzuul.com:9527/springcloud-provider-dept/dept/get/2 这样去访问的话,就暴露了我们真实微服务的名称,该怎么处理呢? 接下来的内容就是围绕这个问题的解决而出现的。

修改 springcloud-zuul-gateway-9527 工程,yml 配置增加 Zuul 路由映射
在这里插入图片描述
在这里插入图片描述

3.3 出现问题-2

现在访问原路径依旧可以访问!这不是我们所希望的,而我们希望只能通过配置后的 url 访问,接下来是这个问题的解决。

在这里插入图片描述

3.4 出现问题-3

上面的例子中,我们只写了一个 serviceId,那要是有多个需要隐藏,怎么办呢? 下面是这个问题的解决。
在这里插入图片描述

3.5 补充

同时,我们也可以给各微服务的访问请求加上公共的 url 前缀
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spring Cloud Zuul是一个基于Netflix Zuul构建的微服务,它可以作为微服务架构中的入口,提供路由、负载均衡、安全认证、限流等功能使用Spring Cloud Zuul可以简化微服务架构中的服务发现和调用,提高系统的可靠性和可扩展性。同时,Spring Cloud Zuul还支持自定义过滤器,可以在请求和响应的处理过程中添加自定义的逻辑,实现更加灵活的业务处理。 ### 回答2: Spring Cloud Zuul是一个基于Netflix的开源项目,它是一个路由和服务的边缘代理,可以对外提供API服务。它可以完成请求的转发以及路由功能,更重要的是可以提供以下功能:负载均衡、安全验证、监控、熔断器等。 在微服务架构中,系统一般由多个服务构成,每个服务都有自己的端口号、IP地址,服务之间有许多的调用,管理这些服务是复杂的。为了解决这个问题,Zuul统一了微服务架构中的API入口。 在Spring Cloud技术栈中,Zuul使用非常灵活,我们可以通过使用Zuul进行请求路由和负载均衡,这样可以让请求更高效地到达目的地,也可以更好地进行服务治理。 Zuul还可以提供安全性和监控功能。通过Zuul,我们可以使用Spring Security来实现OAuth2认证和授权,保证服务之间的数据安全。Zuul还可以通过监控微服务在每个环节的处理时间、请求总数等指标,及时发现问题并进行优化。 Zuul还提供了熔断器功能,可以在微服务故障时防止雪崩效应,提高了系统的可靠性。总之,Spring Cloud Zuul是一个非常优秀的微服务API,在微服务架构中,它的作用相当于一个入口脚本,为其它微服务提供了统一的访问接口,简化了微服务的管理,提高了系统的可维护性和可靠性。 ### 回答3: SpringCloud是一个非常流行的微服务框架,其中的Zuul组件充当了一个API的角色。它作为微服务中的门户,管理着所有的请求和响应,并将它们传递到后端的微服务中。Zuul提供了诸如路由、负载均衡、认证等丰富的功能,极大地简化了微服务的开发过程。 Zuul的核心功能路由。它将请求根据配置信息分发到后端的不同微服务,实现微服务的隔离和管理。Zuul支持四种不同的路由方式:简单路由、基于服务Id的路由、基于URL的路由、基于Path的路由。简单路由即将所有的请求都路由到同一个微服务中,适用于测试和开发环境;基于服务Id的路由将请求按照服务名称进行路由,适用于生产环境中的多个微服务之间进行访问;基于URL的路由允许根据URL中的参数进行路由,适用于多环境下的微服务访问;基于Path的路由将请求按照径进行路由,适用于微服务之间的版本控制。 除了路由Zuul还提供了过滤器的功能,基于过滤器可对微服务请求进行细粒度的控制和限制。Zuul提供了四种不同的过滤器类型:Pre过滤器、Routing过滤器、Post过滤器和Error过滤器。Pre过滤器用于请求处理之前进行逻辑处理,如鉴权、登录验证等;Routing过滤器用于请求分发到微服务之前进行一些处理,如限流、性能监控等;Post过滤器用于请求处理完毕后进行处理,如结果处理、数据转换等;Error过滤器用于出现错误时进行处理,如异常处理、恢复等。 总的来说,SpringCloudZuul组件是非常重要的,它充当了微服务的入口和出口,向外部提供了一致的API。其集成了多种负载均衡算法,可以寻找服务的最优化方案。同时,它借助了一系列的过滤器和限流策略,保证了微服务的安全性和可靠性。对于做微服务的场景,SpringCloudZuul组件是必不可少的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超周到的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值