Gateway网关搭建简述
01 pom依赖
引入gateway网关和nacos服务发现依赖
spring-cloud-starter-gateway
spring-cloud-starter-alibaba-nacos-discovery
02启动类
启动类GatewayApplication,及上面@SpringBootApplication和@EnableDiscoveryClient注解
03添加配置文件
spring.application.name 网关模块名称
server.port 端口号
spring.cloud.nacos.discovery.server-addr:nacos地址
--.gateway.routes 路由
--.routes.id路由标识 uri要求转发的地址 predicates 断言 (满足什么条件可以转发)
04过滤器
4.1Gateway的过滤器会对请求或响应进行拦截,完成一些通用操作。在Gateway中,Filter的生效位置有两个
PRE:这种过滤器在请求被路由之前调用,可利用这种过滤器实现身份验证、在集群中选择请求的微服务,记录调试信息等。
POST:这种过滤器在路由到微服务以后执行,可用来响应添加标准的HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。
4.2自定义全局过滤器
gateway包下filter包下自定义**Filter类实现GlobalFilter,与Ordered
重写getOrder (用于执行顺序排序)和filter方法
filter方法中可用exchange.getRequest().getQueryParams().getFirst("token")获取请求头进行token校验return chain.filter(exchange)或return exchange.getResponse().setComplete()放行代码。