概述
spring cloud gateway提供了一个构建在 Spring 生态系统之上的 API 网关,包括:Spring 5、Spring Boot 2 和 Project Reactor。Spring Cloud Gateway 旨在提供一种简单而有效的方法来路由到 API,并为它们提供横切关注点,例如:安全性、监控/指标和弹性。
1.如何包含Spring Cloud Gateway
<!-- spring cloud alibaba nacos discovery 依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <!--Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. Please remove spring-boot-starter-web dependency.--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- Maven整个生命周期内排除内置容器,排除内置容器导出成war包可以让外部容器运行spring-boot项目--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
2. 词汇表
-
路由:网关的基本构建块。它由 ID、目标 URI、谓词集合和过滤器集合定义。如果聚合谓词为真,则路由匹配。
-
谓词:这是一个Java 8 函数谓词。输入类型是Spring FrameworkServerWebExchange。这使您可以匹配 HTTP 请求中的任何内容,例如标头或参数。
-
FilterGatewayFilter :这些是使用特定工厂构建的实例。在这里,您可以在发送下游请求之前或之后修改请求和响应。
4.配置路由谓词工厂和网关过滤器工厂
有两种配置谓词和过滤器的方法:快捷方式和完全扩展的参数。下面的大多数示例都使用快捷方式。
名称和参数名称将列code
在每个部分的第一句或第二句中。这些参数通常按照快捷方式配置所需的顺序列出。
4.1. 快捷方式配置
快捷方式配置由过滤器名称识别,后跟等号 ( =
),然后是用逗号 ( ) 分隔的参数值,
。
<span style="color:#000000"><span style="background-color:#ffffff"><span style="color:#222222"><code class="language-yaml">spring:
cloud:
gateway:
routes:
- id: after_route
uri: https://example.org
predicates:
- Cookie=mycookie,mycookievalue</code></span></span></span>
前面的示例Cookie
使用两个参数、cookie 名称mycookie
和要匹配的值定义了 Route Predicate Factory mycookievalue
。
4.2. 完全扩展的参数
完全扩展的参数看起来更像是带有名称/值对的标准 yaml 配置。通常,会有一把name
钥匙和一把args
钥匙。args
键是键值对的映射,用于配置谓词或过滤器。
<span style="color:#000000"><span style="background-color:#ffffff"><span style="color:#222222"><code class="language-yaml">spring:
cloud:
gateway:
routes:
- id: after_route
uri: https://example.org
predicates:
- name: Cookie
args:
name: mycookie
regexp: mycookievalue</code></span></span></span>
Cookie
这是上面显示的谓词快捷方式配置的完整配置。
最后
以上就是重要篮球为你收集整理的spring cloud gateway的全部内容,希望文章能够帮你解决spring cloud gateway所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复