SpringCloudGateway的作用:
1.请求是先被应用的网关模块拦截的,网关模块对请求进行鉴权、限流等动作后在把具体的请求转发到当前应用对应的模块进行处理,简而言之:网关负责把请求路由到具体的后端service上。
1.新建一个Springboot项目,pom中新增如下内容
<!--用于gateway,下载spring WebFlux时总是下载不好,采用去网站下载并导入maven仓库的方式,然后重新导入依赖语句即可-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<!--用于被consul发现-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<!--把consul作为配置中心-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<!--actuator是监控系统健康情况的工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.修改bootstrap文件
server:
port: 8090
spring:
application:
name: gateway
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
config:
enabled: true
format: yaml
default-context: ${spring.application.name}
prefix: config
data-key: data
3.在consul中加入配置信息
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: gateway-service #路由唯一id
uri: https://www.baidu.com
predicates:
- Path=/tobaidu/**
- id: gateway-service2
uri: https://www.youkuaiyun.com
predicates:
- Path=/tocsdn/**
test:
name: 1234
4.启动服务(如果终端提示你需要去掉spring-boot-starter-web依赖,则把pom中对应的依赖注释掉即可)
然后访问 localhost:8090/tobaidu 即可跳转到百度页面
同样 访问 localhost:8090/tocsdn 即可跳转到csdn页面