Gateway
1 创建gateway项目
1.1 pom文件引入依赖
(注意:排除gateway内置web依赖 或 项目内不引入web依赖)
<!-- 引入gateway网关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 支持负载均衡 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!-- 本地缓存 -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.8.8</version>
</dependency>
2 重点核心配置(敲黑板)
- 路由:就是满足 断言+过滤器 后请求到的服务地址
- 断言:当设置的断言规则为真时,访问路由地址 uri,否则不予通过
- 过滤器:访问完整的服务地址 url(这里是完整的接口服务)时,对请求加过滤条件,进行请求处理
2.1 断言
2.1.1 配置文件(参考path断言)(Nacos配置:服务发现地址)
spring:
application:
name: GATEWAY-SERVER
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
discovery:
locator:
enabled: true
routes:
- id: gateway_order
uri: lb://ORDER-SERVER
predicates:
- Path=/order/create/**
- id: gateway_order_copy
uri: lb://ORDER-SERVER-COPY
predicates:
- Path=/order/timeOut/**
- Path断言:当路径中含有 /order/create/ 时,转发到服务 uri:lb://ORDER-SERVER-COPY (这里是调用的服务名称可换成服务的地址:http://127.0.0.1:8899), 实际完整的路径是:http://127.0.0.1:8899/order/create/
(聪明如你,举一反三,知道每种断言的作用,了解其规则,就可以按照以上的套路进行配置,本人太懒,其他的断言规则看心情补充)
2.2 过滤器
懒,不写了
2.3
懒死了