当前位置:   article > 正文

Spring Cloud | Nacos + Spring Cloud Gateway整合示例_springcloud nacos gateway示例

springcloud nacos gateway示例

本篇文章使用一个简单的示例来演示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
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/945049
推荐阅读
相关标签
  

闽ICP备14008679号