Spring Cloud | Nacos + Spring Cloud Gateway整合示例

本文通过一个实例详细介绍了如何将Spring Cloud Gateway与Nacos整合,涉及网关应用场景、关键概念如路由、断言和过滤器,以及具体项目搭建、配置和测试过程。
摘要由CSDN通过智能技术生成

本篇文章使用一个简单的示例来演示Spring Cloud Gateway的使用方法。

网关的应用场景

网关是所有微服务的门户,我总结了一些网关的常用应用场景。

Spring Cloud Gateway中几个比较重要的概念

  • 路由(Route):它是网关的基本组件,由ID、目标URI、Predicate集合、Filter集合组成。
  • 断言(Predicate):参照Java8的新特性Predicate,允许开发人员匹配HTTP请求中的任何内容,比如头或参数。
  • 过滤器(Filter):可以在返回请求之前或之后修改请求和响应的内容。

断言

断言是Java 8提供的一个函数式接口,它允许接收一个参数并返回一个布尔值,可以用于条件过滤、请求参数的校验。

Spring Cloud Gateway 默认提供了许多断言,这些断言的源码在 org.springframework.cloud.gateway.handler.predicate 包中。这些断言会分别匹配 HTTP 请求的不同属性,并且多个断言可以通过 and 逻辑进行组合。

过滤器

过滤器分为Pre类型的过滤器和Post类型的过滤器。

  • Pre类型的过滤器在请求转发到后端微服务之前执行,在Pre类型过滤器链中可以做鉴权、限流等操作。
  • Post类型的过滤器在请求执行完之后、将结果返回给客户端之前执行。

在 Spring Cloud Gateway 中内置了很多过滤器,过滤器有两种实现,分别是 GatewayFilter 和 GlobalFilter 。 GlobalFilter 会应用到所有的路由上,而 GatewayFilter 只会应用到单个路由或者一个分组的路由上。

环境搭建

搭建项目前需要先启动 Nacos 服务。我比较喜欢使用 Docker 安装、启动 Nacos 。如果你对这种方式感兴趣,可以参考我之前写的一篇文章传送门。

项目结构

项目名称 端口号 说明
jasmine-cloud -- 父工程
jasmine-gateway 9010 网关服务,服务注册到nacos
jasmine-auth 901
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值