文章目录
Spring Cloud Gateway入门
(1)网关是什么?
网关(Gateway) 就是一个网络连接到另一个网络的“关口”。就是网络关卡。
从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”
(2)SpringCloud的网关是什么?
Spring Cloud Gateway的核心就是一系列的过滤器,可以将客户端的请求转发到不同的微服务。主要作用:过滤和路由。
Spring Cloud Gateway入门
GateWay如何使用
》依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
》配置路由信息
id 路由id,可以任意
uri 代理的服务地址
predicates 路由断言: 可以匹配映射路径
application.properties
# route
spring.cloud.gateway.routes[0].id=demo04_gateway_1001
spring.cloud.gateway.routes[0].uri=lb://demo01-provider-user
spring.cloud.gateway.routes[0].predicates[0]=Path=/**
spring.cloud.gateway.routes[0].filters[0]=PrefixPath=/users
为DemoGateway1001Application添加@EnableEurekaClient注解
》启用
面向服务的路由 uri
(1)面向服务的路由是什么?
配置路由信息时,使用服务的名称来代替 ip+port的配置方式
只需要在配置文件中指定路由路径类似: lb://user-service
(2)代理的服务地址;lb表示从eureka中获取具体服务
(3)注意事项
lb 之后编写的服务名必须要在eureka中注册才能使用
(4)分析
路由配置中uri所用的协议为lb时(以uri: lb://user-service为例),gateway将使用 LoadBalancerClient把user-service通过eureka解析为实际的主机和端口,并进行ribbon负载均衡。
路由前缀处理 filter
(1)路由的前缀
请求地址与微服务的服务地址如果不一致的时候,可以通过配置路径过滤器实现路径前缀的添加和去除。
提供服务的地址:http://127.0.0.1:8001/u