您的位置:首页 > 游戏 > 游戏 > Gateway服务网关

Gateway服务网关

2024/12/23 12:16:04 来源:https://blog.csdn.net/w2144217940/article/details/139297992  浏览:    关键词:Gateway服务网关

什么是服务网关

服务网关 = 路由转发 + 过滤器
1、路由转发:接收一切外界请求,转发到后端的微服务上去;
2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,
这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。

服务网关的基本功能:

在这里插入图片描述

Spring Cloud Gateway 网关的搭建:

1、添加依赖

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.2.2.RELEASE</version>
</dependency>

注意:一定要排除掉 spring-boot-starter-web 依赖,否则启动报错

2、添加配置

首先你要有一个应用名称为httpbin,然后在配置中配置

spring:application:name: gateway-appcloud:gateway:routes:- id: httpbinuri: https://httpbin.orgorder: 1predicates:- Path=/abc/**
#           - Query=id,\d+
#           - Method=GET
#           - Cookie=JSESSIONID,123456
#           - Header=X-Request-Id, \d+filters:##在请求目标uri之前,截取路径上面的占位路径的个数- StripPrefix=1- AddRequestHeader=token,123- AddRequestParameter=color,green- id: nacos-auri: http://127.0.0.1:3777predicates:- Path=/nacos-a/**filters:- StripPrefix=1- AddRequestHeader=token,123- AddResponseHeader=compay,xingqijiu.com

好了,网关项目搭建完成,其实就添加这么一个依赖,再加上配置,就可以验证了.

Spring Cloud Gateway 配置项的说明:

在介绍 Spring Cloud Gateway 的配置项之前,我们先了解几个 Spring Cloud Gateway 的核心术语:
1.路由(route):由ID、目标URI、断言集合和过滤器集合组成。如果聚合断言结果为真,则转发到该路由。
2.断言(Predicate): 参照 Java8 的新特性Predicate,允许开发人员匹配 HTTP 请求中的任何内容,比如请求头、请求参数或请求路径,最后根据匹配结果返回一个布尔值。
在这里插入图片描述
3.过滤器(filter):可以在返回请求之前或之后修改请求和响应的内容
在这里插入图片描述
路由 Route:
Route 主要由 路由id、目标uri、断言集合和过滤器集合组成,那我们简单看看这些属性到底有什么作用。
(1)id:路由标识,要求唯一,名称任意(默认值 uuid,一般不用,需要自定义)
(2)uri:请求最终被转发到的目标地址
(3)order: 路由优先级,数字越小,优先级越高
(4)predicates:断言数组,即判断条件,如果返回值是true,则转发请求到 uri 属性指定的服务中
(5)filters:过滤器数组,在请求传递过程中,对请求做一些修改或对返回做一些修改
断言 Predicate:
在这里插入图片描述
重要的两个断言
在这里插入图片描述

spring:cloud:gateway:routes:- predicates:#PathRoutePredicate- Path: /orderservice/**# QueryRoutePredicate- Query: version,v1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com