Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,用于取代Zuul网关。
基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x
基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x
基于Netty,WebFlux . 由于不是Sevlet容器,不能打成war包, 只支持SpringBoot2.X,不支持1.x
重要的事情说三遍。
网关常见的功能有路由转发、权限校验、限流控制等作用
https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/
创建一个gateWay的工程 artisan-cloud-gateway
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-gatewayartifactId>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-nacos-discoveryartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-actuatorartifactId>
dependency>
dependencies>
写个服务发现的注解(高版本也可以不写),gateway没有注解
server:
port: 8888
#gateway注册到nacos上的服务名称
spring:
application:
name: api-gateway
cloud: #nacos
nacos:
discovery:
server-addr: 1.117.97.88:8848
gateway: #gateway
discovery:
locator:
enabled: false # 是否可以通过微服务的名称直接调用接口 【默认值false, 建议保持false】
enabled: true # 是否开启服务网关
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always # 打开端点详情
分别启动
artisan-cloud-gateway 【8888】
artisan-cloud-gateway-order【8080】
artisan-cloud-gateway-product【8084】
通过网关地址访问订单微服务
启网关拉取nacos的服务 即是否可以通过微服务的名称直接调用接口 【默认值false, 建议保持false】
开启了,容易暴漏后端服务
网关的开启与关闭 ,需要开启
我们简单看下 网关是如何处理这些请求的 ,后面再解读源码